Changes for page xwiki-upgrades

Last modified by Alex Cotiugă on 2026/05/12 12:41

From version 1.3
edited by Alex Cotiugă
on 2026/05/01 12:16
Change comment: There is no comment for this version
To version 1.4
edited by Alex Cotiugă
on 2026/05/01 12:20
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,21 +1,20 @@
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 - ## HERO
6 - <section class="hero hero-centered" aria-labelledby="hero-title">
5 + ## COMPACT HERO
6 + <section class="hero hero-centered service-hero" aria-labelledby="hero-title">
7 7   <div class="container hero-inner">
8 8   <h1 id="hero-title">XWiki Upgrades</h1>
9 - <p class="lead">Safe, planned upgrades for production XWiki platforms.</p>
10 -
9 + <p class="lead">
10 + Safe, planned upgrades for production XWiki instances.
11 + </p>
11 11   <ul class="benefits">
12 - <li>Latest LTS versions</li>
13 + <li>Latest LTS</li>
13 13   <li>Security fixes</li>
14 14   <li>Extension checks</li>
15 15   <li>Minimal downtime</li>
16 - <li>Rollback planning</li>
17 17   </ul>
18 -
19 19   <div class="hero-cta">
20 20   <a href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment">Request an upgrade assessment</a>
21 21   </div>
... ... @@ -22,55 +22,26 @@
22 22   </div>
23 23   </section>
24 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',
24 + ## VALUE CARDS
25 + #set ($upgradeCards = [{
26 + 'title': 'Stay secure',
51 51   'icon': 'shield',
52 - 'content': 'Older versions may miss important fixes that were introduced in later XWiki releases.'
28 + 'content': 'Reduce exposure to known vulnerabilities fixed in newer XWiki versions.'
53 53   },{
54 - 'title': 'Stability improvements',
55 - 'icon': 'check-square-o',
56 - 'content': 'Regular upgrades reduce accumulated bugs and keep the platform easier to maintain.'
30 + 'title': 'Upgrade safely',
31 + 'icon': 'refresh',
32 + 'content': 'Plan the upgrade with backups, validation, rollback options, and minimal downtime.'
57 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.'
34 + 'title': 'Avoid compatibility surprises',
35 + 'icon': 'puzzle-piece',
36 + 'content': 'Review extensions, custom code, authentication, PDF export, and infrastructure before production.'
65 65   }])
66 66  
67 - <section aria-labelledby="why-upgrade-title">
39 + <section class="compact-section" aria-labelledby="why-title">
68 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)
41 + <h2 id="why-title">Keep your XWiki platform current and reliable</h2>
42 + <div class="widgets compact-widgets">
43 + #foreach ($entry in $upgradeCards)
74 74   <article class="widget">
75 75   <div class="icon" aria-hidden="true">
76 76   <i class="fa fa-$entry.icon"></i>
... ... @@ -83,294 +83,55 @@
83 83   </div>
84 84   </section>
85 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">
56 + ## TWO COLUMN SUMMARY
57 + <section class="services compact-section" aria-labelledby="summary-title">
114 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>
59 + <h2 id="summary-title">Upgrade support for real XWiki environments</h2>
119 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>
61 + <div class="services-grid compact-grid">
62 + <article class="service">
63 + <div class="service-icon">
64 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
316 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>
66 + <div class="service-body">
67 + <h4>When to consider an upgrade</h4>
68 + <ul>
69 + <li>Your instance is not on the latest suitable LTS version</li>
70 + <li>Your current version is more than one year old</li>
71 + <li>You use custom extensions, scripts, or workflows</li>
72 + <li>You rely on LDAP, SSO, OIDC, SAML, or MFA</li>
73 + <li>You want to reduce security and maintenance risk</li>
74 + </ul>
327 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 332   </article>
333 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>
78 + <article class="service">
79 + <div class="service-icon">
80 + <i class="fa fa-check-square-o" aria-hidden="true"></i>
338 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>
82 + <div class="service-body">
83 + <h4>What Agnease handles</h4>
84 + <ul>
85 + <li>Current version and environment review</li>
86 + <li>Recommended target version</li>
87 + <li>Extension and customization checks</li>
88 + <li>Backup, staging, and rollback planning</li>
89 + <li>Production upgrade and post-upgrade validation</li>
90 + </ul>
91 + </div>
343 343   </article>
344 344   </div>
345 345   </div>
346 346   </section>
347 347  
348 - ## ASSESSMENT CTA
349 - <section class="cta-section" aria-labelledby="assessment-title">
97 + ## FINAL CTA
98 + <section class="cta-section compact-cta" aria-labelledby="assessment-title">
350 350   <div class="container">
351 351   <h2 id="assessment-title">Request an XWiki upgrade assessment</h2>
352 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 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.
103 + Agnease will recommend the target version, estimated effort, and key risks to review.
359 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 374   <p class="text-center contact-inline">
375 375   <a href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment">Request an upgrade assessment</a>
376 376   </p>
... ... @@ -377,22 +377,5 @@
377 377   </div>
378 378   </section>
379 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 397  {{/html}}
398 398  {{/velocity}}