Changes for page XWiki Upgrade Services

Last modified by Agnease on 2026/05/25 16:11

From version 9.2
edited by Agnease
on 2026/05/22 14:09
Change comment: There is no comment for this version
To version 1.2
edited by Agnease
on 2026/05/01 12:16
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -XWiki Upgrade Services
1 +xwiki-upgrades
Content
... ... @@ -1,290 +1,398 @@
1 1  {{velocity}}
2 -#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 -{{html clean="false"}}
2 + #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 + {{html clean="false"}}
4 4  
5 - ## PAGE HEADER
6 - <section class="hero hero-centered service-hero" aria-labelledby="hero-title">
5 + ## HERO
6 + <section class="hero hero-centered" aria-labelledby="hero-title">
7 7   <div class="container hero-inner">
8 - <div class="hero-kicker">
9 - <i class="fa fa-refresh" aria-hidden="true"></i>
10 - XWiki upgrade services
11 - </div>
8 + <h1 id="hero-title">XWiki Upgrades</h1>
9 + <p class="lead">Safe, planned upgrades for production XWiki platforms.</p>
12 12  
13 - <h1 id="hero-title">Safe XWiki LTS upgrades for production environments</h1>
11 + <ul class="benefits">
12 + <li>Latest LTS versions</li>
13 + <li>Security fixes</li>
14 + <li>Extension checks</li>
15 + <li>Minimal downtime</li>
16 + <li>Rollback planning</li>
17 + </ul>
14 14  
15 - <p class="lead">
16 - Keep your XWiki instance secure, stable and compatible with a planned upgrade path, clear validation steps
17 - and reduced operational risk, even when it includes custom extensions, authentication integrations,
18 - business-critical pages, workflows, scripts, rights configurations and production constraints.
19 - </p>
20 -
21 - <div class="hero-actions">
22 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a>
23 - <a class="btn btn-secondary" href="#upgrade-process">See the upgrade approach</a>
19 + <div class="hero-cta">
20 + <a href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment">Request an upgrade assessment</a>
24 24   </div>
25 25   </div>
26 26   </section>
27 27  
28 - ## WHY UPGRADES MATTER
29 - <section aria-labelledby="why-upgrade-title">
25 + ## INTRO
26 + <section aria-labelledby="intro-title">
30 30   <div class="container">
31 - <h2 id="why-upgrade-title">Why regular XWiki upgrades matter</h2>
28 + <h2 id="intro-title">Upgrade XWiki with confidence</h2>
29 + <p class="lead">
30 + Agnease helps organizations upgrade XWiki instances with a focus on security, stability,
31 + compatibility, and predictable execution.
32 + </p>
32 32  
33 - <p class="section-intro">
34 - An outdated XWiki instance can become harder to maintain over time. Security fixes, browser compatibility,
35 - extension updates, platform changes and infrastructure requirements continue to evolve, while older versions
36 - become more difficult and risky to upgrade.
34 + <p>
35 + Whether your instance is one version behind or several years outdated, an XWiki upgrade should be treated
36 + as a controlled technical operation, not a simple version change. The upgrade may affect installed
37 + extensions, custom developments, authentication, PDF export, database behavior, scripts, and the
38 + application server environment.
37 37   </p>
38 38  
39 - <div class="pathways">
40 - <article class="pathway-card">
41 - <div class="pathway-icon">
42 - <i class="fa fa-shield" aria-hidden="true"></i>
43 - </div>
44 - <h3>Reduce security exposure</h3>
45 - <p>
46 - Staying close to supported XWiki versions helps reduce exposure to known vulnerabilities and missing fixes.
47 - </p>
48 - <ul>
49 - <li>Review current version exposure</li>
50 - <li>Plan upgrade to a supported version</li>
51 - <li>Validate security-sensitive features</li>
52 - </ul>
53 - </article>
41 + <p>
42 + The goal is to keep your platform secure, stable, maintainable, and ready for future improvements
43 + while reducing the risk of unexpected downtime or failed production upgrades.
44 + </p>
45 + </div>
46 + </section>
54 54  
55 - <article class="pathway-card">
56 - <div class="pathway-icon">
57 - <i class="fa fa-cogs" aria-hidden="true"></i>
58 - </div>
59 - <h3>Preserve compatibility</h3>
60 - <p>
61 - Extensions, custom applications, authentication systems and infrastructure components need to remain compatible.
62 - </p>
63 - <ul>
64 - <li>Check installed extensions</li>
65 - <li>Review custom code and scripts</li>
66 - <li>Validate integrations after upgrade</li>
67 - </ul>
68 - </article>
48 + ## WHY UPGRADE
49 + #set ($whyUpgradeData = [{
50 + 'title': 'Security fixes',
51 + 'icon': 'shield',
52 + 'content': 'Older versions may miss important fixes that were introduced in later XWiki releases.'
53 + },{
54 + 'title': 'Stability improvements',
55 + 'icon': 'check-square-o',
56 + 'content': 'Regular upgrades reduce accumulated bugs and keep the platform easier to maintain.'
57 + },{
58 + 'title': 'Compatibility',
59 + 'icon': 'plug',
60 + 'content': 'Modern integrations, authentication systems, Java versions, databases, and application servers require careful compatibility planning.'
61 + },{
62 + 'title': 'Lower future risk',
63 + 'icon': 'line-chart',
64 + 'content': 'Frequent smaller upgrades are usually safer and more predictable than large delayed migrations.'
65 + }])
69 69  
70 - <article class="pathway-card">
71 - <div class="pathway-icon">
72 - <i class="fa fa-line-chart" aria-hidden="true"></i>
73 - </div>
74 - <h3>Improve maintainability</h3>
75 - <p>
76 - Smaller, regular upgrades are usually easier to control than large jumps after years of accumulated changes.
77 - </p>
78 - <ul>
79 - <li>Avoid long upgrade gaps</li>
80 - <li>Document the current platform state</li>
81 - <li>Prepare future upgrade cycles</li>
82 - </ul>
83 - </article>
67 + <section aria-labelledby="why-upgrade-title">
68 + <div class="container">
69 + <h2 id="why-upgrade-title">Why XWiki upgrades matter</h2>
70 + <p class="lead">Regular upgrades help keep your XWiki platform secure, reliable, and easier to evolve.</p>
71 +
72 + <div class="widgets">
73 + #foreach ($entry in $whyUpgradeData)
74 + <article class="widget">
75 + <div class="icon" aria-hidden="true">
76 + <i class="fa fa-$entry.icon"></i>
77 + <h4>$entry.title</h4>
78 + </div>
79 + <p>$entry.content</p>
80 + </article>
81 + #end
84 84   </div>
85 85   </div>
86 86   </section>
87 87  
88 - ## COMMON SITUATIONS
89 - <section class="services" aria-labelledby="situations-title">
90 - <div class="container">
91 - <h2 id="situations-title">Common situations we handle</h2>
86 + ## WHEN TO UPGRADE
87 + #set ($whenToUpgradeData = [{
88 + 'title': 'Your XWiki version is old',
89 + 'icon': 'clock-o',
90 + 'content': 'If your current version is more than one year old, the upgrade gap may already be significant.'
91 + },{
92 + 'title': 'You are not on the latest LTS',
93 + 'icon': 'refresh',
94 + 'content': 'Production instances should normally stay close to the latest suitable Long Term Support version.'
95 + },{
96 + 'title': 'You use custom extensions',
97 + 'icon': 'cogs',
98 + 'content': 'Custom applications, scripts, macros, UI extensions, or Java components should be reviewed before upgrading.'
99 + },{
100 + 'title': 'Authentication is critical',
101 + 'icon': 'key',
102 + 'content': 'LDAP, Active Directory, OpenID Connect, SAML, or MFA integrations need careful validation during upgrades.'
103 + },{
104 + 'title': 'Your wiki supports business processes',
105 + 'icon': 'sitemap',
106 + 'content': 'Instances used for intranets, procedures, documentation, approvals, or workflows deserve controlled upgrade planning.'
107 + },{
108 + 'title': 'You are preparing infrastructure changes',
109 + 'icon': 'server',
110 + 'content': 'Java, Tomcat, Docker, database, or operating system changes can make upgrade planning more important.'
111 + }])
92 92  
93 - <p class="section-intro">
94 - XWiki upgrades are often simple in clean environments, but production instances usually include additional
95 - constraints that need to be understood before touching the live system.
113 + <section class="services" aria-labelledby="when-title">
114 + <div class="container">
115 + <h2 id="when-title">When should you consider an upgrade?</h2>
116 + <p class="lead">
117 + An upgrade is recommended when your XWiki instance is becoming outdated, exposed, or harder to maintain.
96 96   </p>
97 97  
98 98   <div class="services-grid">
99 - <article class="service">
100 - <div class="service-icon" aria-hidden="true">
101 - <i class="fa fa-clock-o"></i>
102 - </div>
103 - <div class="service-body">
104 - <h4>Old XWiki versions</h4>
105 - <p>
106 - Instances that have not been upgraded for several months or years and require a careful upgrade path.
107 - </p>
108 - </div>
109 - </article>
121 + #foreach ($entry in $whenToUpgradeData)
122 + <article class="service">
123 + <div class="service-icon">
124 + <i class="fa fa-$entry.icon" aria-hidden="true"></i>
125 + </div>
126 + <div class="service-body">
127 + <h4>$entry.title</h4>
128 + <p>$entry.content</p>
129 + </div>
130 + </article>
131 + #end
132 + </div>
133 + </div>
134 + </section>
110 110  
111 - <article class="service">
112 - <div class="service-icon" aria-hidden="true">
113 - <i class="fa fa-puzzle-piece"></i>
114 - </div>
115 - <div class="service-body">
116 - <h4>Custom extensions and scripts</h4>
117 - <p>
118 - Wikis with custom applications, Velocity scripts, macros, UI extensions, rights logic or business workflows.
119 - </p>
120 - </div>
121 - </article>
136 + ## WHAT AGNEASE HANDLES
137 + #set ($upgradeScopeData = [{
138 + 'title': 'Assessment & planning',
139 + 'icon': 'search',
140 + 'content': 'Review the current version, environment, extensions, customizations, and target upgrade path.',
141 + 'items': [
142 + 'Current version and environment review',
143 + 'Recommended target version',
144 + 'Release notes and compatibility analysis'
145 + ]
146 + },{
147 + 'title': 'Extension & customization review',
148 + 'icon': 'puzzle-piece',
149 + 'content': 'Identify risks related to installed extensions, custom code, scripts, templates, and integrations.',
150 + 'items': [
151 + 'Installed extension review',
152 + 'Custom code impact analysis',
153 + 'Authentication and integration checks'
154 + ]
155 + },{
156 + 'title': 'Staging upgrade',
157 + 'icon': 'flask',
158 + 'content': 'Test the upgrade before production when a staging environment is available.',
159 + 'items': [
160 + 'Backup and restore validation',
161 + 'Upgrade execution in test environment',
162 + 'Troubleshooting and issue fixing'
163 + ]
164 + },{
165 + 'title': 'Production rollout',
166 + 'icon': 'rocket',
167 + 'content': 'Execute or guide the production upgrade with a clear plan and validation steps.',
168 + 'items': [
169 + 'Downtime and rollback planning',
170 + 'Production upgrade execution',
171 + 'Post-upgrade verification'
172 + ]
173 + }])
122 122  
123 - <article class="service">
124 - <div class="service-icon" aria-hidden="true">
125 - <i class="fa fa-lock"></i>
126 - </div>
127 - <div class="service-body">
128 - <h4>Authentication integrations</h4>
129 - <p>
130 - LDAP, Active Directory, SSO, OIDC, SAML, MFA or custom login setups that must keep working after upgrade.
131 - </p>
132 - </div>
133 - </article>
175 + <section class="services" aria-labelledby="scope-title">
176 + <div class="container">
177 + <h2 id="scope-title">What Agnease handles</h2>
178 + <p class="lead">
179 + Upgrade support can cover the full process, from assessment to production rollout.
180 + </p>
134 134  
135 - <article class="service">
136 - <div class="service-icon" aria-hidden="true">
137 - <i class="fa fa-server"></i>
138 - </div>
139 - <div class="service-body">
140 - <h4>Infrastructure changes</h4>
141 - <p>
142 - Java, Tomcat, database, Docker, filesystem, reverse proxy or hosting changes required by newer versions.
143 - </p>
144 - </div>
145 - </article>
146 -
147 - <article class="service">
148 - <div class="service-icon" aria-hidden="true">
149 - <i class="fa fa-file-pdf-o"></i>
150 - </div>
151 - <div class="service-body">
152 - <h4>Business-critical features</h4>
153 - <p>
154 - PDF exports, dashboards, structured data, templates, permissions, notifications and workflows that need validation.
155 - </p>
156 - </div>
157 - </article>
158 -
159 - <article class="service">
160 - <div class="service-icon" aria-hidden="true">
161 - <i class="fa fa-warning"></i>
162 - </div>
163 - <div class="service-body">
164 - <h4>Low-downtime rollout</h4>
165 - <p>
166 - Upgrade planning with backups, testing, rollback options and a controlled production deployment window.
167 - </p>
168 - </div>
169 - </article>
182 + <div class="services-grid">
183 + #foreach ($entry in $upgradeScopeData)
184 + <article class="service">
185 + <div class="service-icon">
186 + <i class="fa fa-$entry.icon" aria-hidden="true"></i>
187 + </div>
188 + <div class="service-body">
189 + <h4>$entry.title</h4>
190 + <p>$entry.content</p>
191 + <ul>
192 + #foreach ($item in $entry.items)
193 + <li>$item</li>
194 + #end
195 + </ul>
196 + </div>
197 + </article>
198 + #end
170 170   </div>
171 171   </div>
172 172   </section>
173 173  
174 174   ## PROCESS
175 - <section id="upgrade-process" class="split-section" aria-labelledby="process-title">
204 + #set ($processData = [{
205 + 'title': '1. Initial review',
206 + 'icon': 'info-circle',
207 + 'content': 'We review your current XWiki version, hosting environment, installed extensions, customizations, authentication setup, and known issues.'
208 + },{
209 + 'title': '2. Upgrade path',
210 + 'icon': 'map-signs',
211 + 'content': 'We identify the recommended target version and whether the upgrade should be direct, staged, or combined with infrastructure changes.'
212 + },{
213 + 'title': '3. Compatibility checks',
214 + 'icon': 'check',
215 + 'content': 'We review release notes, extensions, custom developments, authentication integrations, PDF export, and other sensitive areas.'
216 + },{
217 + 'title': '4. Backup and rollback plan',
218 + 'icon': 'database',
219 + 'content': 'Before production work, the database, permanent directory, application files, and configuration backup strategy should be clear.'
220 + },{
221 + 'title': '5. Staging validation',
222 + 'icon': 'desktop',
223 + 'content': 'Whenever possible, the upgrade is tested in a staging environment to validate key pages, extensions, permissions, and workflows.'
224 + },{
225 + 'title': '6. Production upgrade',
226 + 'icon': 'upload',
227 + 'content': 'The production upgrade is executed according to the agreed plan, with attention to downtime, rollback options, and validation.'
228 + }])
229 +
230 + <section class="services" aria-labelledby="process-title">
176 176   <div class="container">
177 - <div class="split-grid">
178 - <div class="split-copy">
179 - <h2 id="process-title">A practical upgrade approach</h2>
232 + <h2 id="process-title">A structured upgrade process</h2>
233 + <p class="lead">
234 + The process is designed to reduce surprises and keep the platform operational.
235 + </p>
180 180  
181 - <p>
182 - The goal is not only to install a newer version. The goal is to move your XWiki instance forward
183 - while protecting the data, configuration, customizations and business processes that already depend on it.
184 - </p>
237 + <div class="services-grid">
238 + #foreach ($entry in $processData)
239 + <article class="service">
240 + <div class="service-icon">
241 + <i class="fa fa-$entry.icon" aria-hidden="true"></i>
242 + </div>
243 + <div class="service-body">
244 + <h4>$entry.title</h4>
245 + <p>$entry.content</p>
246 + </div>
247 + </article>
248 + #end
249 + </div>
250 + </div>
251 + </section>
185 185  
186 - <p>
187 - The upgrade is always prepared outside production first, using a staging environment or a temporary clone
188 - of the live instance. This allows compatibility issues, extension problems, authentication changes and
189 - custom features to be validated before the controlled production rollout.
190 - </p>
191 - </div>
253 + ## COMMON SCENARIOS
254 + #set ($scenariosData = [{
255 + 'title': 'Regular LTS upgrade',
256 + 'icon': 'calendar-check-o',
257 + 'content': 'For organizations that upgrade regularly and want to stay aligned with the latest stable XWiki release line.'
258 + },{
259 + 'title': 'Delayed upgrade',
260 + 'icon': 'exclamation-triangle',
261 + 'content': 'For instances that have not been upgraded for one or more years and need a more careful compatibility review.'
262 + },{
263 + 'title': 'Major platform transition',
264 + 'icon': 'random',
265 + 'content': 'For upgrades that also involve Java, Tomcat, Docker, database, or operating system changes.'
266 + },{
267 + 'title': 'Custom application upgrade',
268 + 'icon': 'code',
269 + 'content': 'For XWiki instances with custom workflows, scripts, macros, PDF templates, or Java extensions.'
270 + },{
271 + 'title': 'Authentication-sensitive upgrade',
272 + 'icon': 'lock',
273 + 'content': 'For platforms using LDAP, Active Directory, OpenID Connect, SAML, MFA, or other authentication integrations.'
274 + },{
275 + 'title': 'Failed upgrade recovery',
276 + 'icon': 'ambulance',
277 + 'content': 'For organizations that already attempted an upgrade and encountered startup errors, broken extensions, or rendering issues.'
278 + }])
192 192  
193 - <ol class="process-list">
194 - <li>
195 - <strong>Review the current instance</strong>
196 - Version, extensions, database, filesystem, authentication, custom code, logs and infrastructure constraints.
197 - </li>
198 - <li>
199 - <strong>Define the upgrade path</strong>
200 - Target version, intermediate steps if needed, compatibility risks, expected downtime and rollback options.
201 - </li>
202 - <li>
203 - <strong>Prepare and validate</strong>
204 - Backups, test upgrade when needed, extension checks and validation of critical XWiki features.
205 - </li>
206 - <li>
207 - <strong>Upgrade production</strong>
208 - Controlled execution, post-upgrade checks, issue resolution and confirmation that key features still work.
209 - </li>
210 - <li>
211 - <strong>Document next steps</strong>
212 - Upgrade notes, observed risks, remaining recommendations and future maintenance guidance.
213 - </li>
214 - </ol>
280 + <section class="services" aria-labelledby="scenarios-title">
281 + <div class="container">
282 + <h2 id="scenarios-title">Common upgrade scenarios</h2>
283 + <p class="lead">
284 + Agnease can help with both routine upgrades and complex migration situations.
285 + </p>
286 +
287 + <div class="services-grid">
288 + #foreach ($entry in $scenariosData)
289 + <article class="service">
290 + <div class="service-icon">
291 + <i class="fa fa-$entry.icon" aria-hidden="true"></i>
292 + </div>
293 + <div class="service-body">
294 + <h4>$entry.title</h4>
295 + <p>$entry.content</p>
296 + </div>
297 + </article>
298 + #end
215 215   </div>
216 216   </div>
217 217   </section>
218 218  
219 - ## DELIVERABLES
220 - <section aria-labelledby="deliverables-title">
303 + ## PLATFORM NOTE
304 + <section aria-labelledby="platform-title">
221 221   <div class="container">
222 - <h2 id="deliverables-title">What you can expect</h2>
223 -
224 - <p class="section-intro">
225 - The exact scope depends on your XWiki version, hosting setup and customizations, but an upgrade engagement
226 - usually includes a clear technical review, a controlled upgrade plan and post-upgrade validation.
306 + <h2 id="platform-title">Major version upgrades require planning</h2>
307 + <p class="lead">
308 + Some XWiki upgrades also require infrastructure-level preparation.
227 227   </p>
228 228  
229 229   <div class="widgets">
230 230   <article class="widget">
231 231   <div class="icon" aria-hidden="true">
232 - <i class="fa fa-search"></i>
233 - <h4>Upgrade review</h4>
314 + <i class="fa fa-server"></i>
315 + <h4>Application server compatibility</h4>
234 234   </div>
235 235   <p>
236 - Review of the current version, installed extensions, customizations, authentication and hosting constraints.
318 + Major XWiki versions may introduce changes that affect Java, Tomcat, Docker images,
319 + database drivers, or deployment configuration. These changes should be reviewed before production rollout.
237 237   </p>
238 238   </article>
239 239  
240 240   <article class="widget">
241 241   <div class="icon" aria-hidden="true">
242 - <i class="fa fa-map"></i>
243 - <h4>Upgrade plan</h4>
325 + <i class="fa fa-plug"></i>
326 + <h4>Extension compatibility</h4>
244 244   </div>
245 245   <p>
246 - Recommended target version, risk areas, validation checklist, downtime expectations and rollback approach.
329 + Installed extensions and custom applications should be checked against the target version,
330 + especially when the instance contains business-specific workflows or integrations.
247 247   </p>
248 248   </article>
249 249  
250 250   <article class="widget">
251 251   <div class="icon" aria-hidden="true">
252 - <i class="fa fa-check-circle"></i>
253 - <h4>Post-upgrade validation</h4>
336 + <i class="fa fa-shield"></i>
337 + <h4>Security and stability</h4>
254 254   </div>
255 255   <p>
256 - Verification of key pages, rights, authentication, extensions, jobs, PDFs, dashboards and custom applications.
340 + Staying close to the recommended LTS version helps reduce exposure to known issues and keeps
341 + the platform easier to maintain over time.
257 257   </p>
258 258   </article>
344 + </div>
345 + </div>
346 + </section>
259 259  
348 + ## ASSESSMENT CTA
349 + <section class="cta-section" aria-labelledby="assessment-title">
350 + <div class="container">
351 + <h2 id="assessment-title">Request an XWiki upgrade assessment</h2>
352 + <p class="lead">
353 + Not sure how far your instance is from the recommended version?
354 + </p>
355 +
356 + <p class="text-center">
357 + Send your current XWiki version and a short description of your setup.
358 + Agnease will review the situation and provide a practical upgrade recommendation.
359 + </p>
360 +
361 + <div class="widgets">
260 260   <article class="widget">
261 261   <div class="icon" aria-hidden="true">
262 - <i class="fa fa-file-text-o"></i>
263 - <h4>Upgrade notes</h4>
364 + <i class="fa fa-list"></i>
365 + <h4>The assessment can include</h4>
264 264   </div>
265 265   <p>
266 - Practical documentation of the performed work, important decisions and recommended follow-up actions.
368 + Recommended target version, estimated upgrade effort, security and stability reasons to upgrade,
369 + infrastructure considerations, extension risks, customization risks, and suggested next steps.
267 267   </p>
268 268   </article>
269 269   </div>
373 +
374 + <p class="text-center contact-inline">
375 + <a href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment">Request an upgrade assessment</a>
376 + </p>
270 270   </div>
271 271   </section>
272 272  
273 - ## CTA
274 - <section class="cta-section" aria-labelledby="cta-title">
380 + ## RELATED SERVICES
381 + <section aria-labelledby="related-title">
275 275   <div class="container">
276 - <div class="cta-panel">
277 - <h2 id="cta-title">Planning an XWiki upgrade?</h2>
383 + <h2 id="related-title">Related Agnease services</h2>
384 + <p class="lead">
385 + XWiki upgrades are often connected to maintenance, security, development, and integration work.
386 + </p>
278 278  
279 - <p>
280 - Send your current XWiki version, target version if known, hosting setup and any custom extensions or integrations
281 - that may affect the upgrade. A short description is enough to start with.
282 - </p>
283 -
284 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a>
285 - </div>
388 + <ul class="benefits">
389 + <li>Maintenance & support</li>
390 + <li>Security review</li>
391 + <li>Custom development</li>
392 + <li>Integrations</li>
393 + <li>Migrations</li>
394 + </ul>
286 286   </div>
287 287   </section>
288 -
289 289  {{/html}}
290 290  {{/velocity}}
Agnease.Code.SEODetailsClass[0]
metaDescription
... ... @@ -1,1 +1,0 @@
1 -Safe XWiki upgrade services for production instances, including LTS upgrade planning, extension compatibility, backups, rollback strategy and validation.
metaTitle
... ... @@ -1,1 +1,0 @@
1 -Safe XWiki Upgrade Services for Production Instances | Agnease