Wiki source code of xwiki-upgrades

Version 1.2 by Alex Cotiugă on 2026/05/01 12:16

Hide last authors
Alex Cotiugă 1.2 1 {{velocity}}
2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 {{html clean="false"}}
4
5 ## HERO
6 <section class="hero hero-centered" aria-labelledby="hero-title">
7 <div class="container hero-inner">
8 <h1 id="hero-title">XWiki Upgrades</h1>
9 <p class="lead">Safe, planned upgrades for production XWiki platforms.</p>
10
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>
18
19 <div class="hero-cta">
20 <a href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment">Request an upgrade assessment</a>
21 </div>
22 </div>
23 </section>
24
25 ## INTRO
26 <section aria-labelledby="intro-title">
27 <div class="container">
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>
33
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.
39 </p>
40
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>
47
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 }])
66
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
82 </div>
83 </div>
84 </section>
85
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 }])
112
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.
118 </p>
119
120 <div class="services-grid">
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>
135
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 }])
174
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>
181
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
199 </div>
200 </div>
201 </section>
202
203 ## PROCESS
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">
231 <div class="container">
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>
236
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>
252
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 }])
279
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
299 </div>
300 </div>
301 </section>
302
303 ## PLATFORM NOTE
304 <section aria-labelledby="platform-title">
305 <div class="container">
306 <h2 id="platform-title">Major version upgrades require planning</h2>
307 <p class="lead">
308 Some XWiki upgrades also require infrastructure-level preparation.
309 </p>
310
311 <div class="widgets">
312 <article class="widget">
313 <div class="icon" aria-hidden="true">
314 <i class="fa fa-server"></i>
315 <h4>Application server compatibility</h4>
316 </div>
317 <p>
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.
320 </p>
321 </article>
322
323 <article class="widget">
324 <div class="icon" aria-hidden="true">
325 <i class="fa fa-plug"></i>
326 <h4>Extension compatibility</h4>
327 </div>
328 <p>
329 Installed extensions and custom applications should be checked against the target version,
330 especially when the instance contains business-specific workflows or integrations.
331 </p>
332 </article>
333
334 <article class="widget">
335 <div class="icon" aria-hidden="true">
336 <i class="fa fa-shield"></i>
337 <h4>Security and stability</h4>
338 </div>
339 <p>
340 Staying close to the recommended LTS version helps reduce exposure to known issues and keeps
341 the platform easier to maintain over time.
342 </p>
343 </article>
344 </div>
345 </div>
346 </section>
347
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">
362 <article class="widget">
363 <div class="icon" aria-hidden="true">
364 <i class="fa fa-list"></i>
365 <h4>The assessment can include</h4>
366 </div>
367 <p>
368 Recommended target version, estimated upgrade effort, security and stability reasons to upgrade,
369 infrastructure considerations, extension risks, customization risks, and suggested next steps.
370 </p>
371 </article>
372 </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>
377 </div>
378 </section>
379
380 ## RELATED SERVICES
381 <section aria-labelledby="related-title">
382 <div class="container">
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>
387
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>
395 </div>
396 </section>
397 {{/html}}
398 {{/velocity}}