Changes for page Why You Should Upgrade XWiki Regularly for Security and Stability
Last modified by Agnease on 2026/05/26 10:58
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,174 +1,168 @@ 1 -/* ========== Resource / Article Pages ========== */ 1 +{{velocity}} 2 +#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 +{{html clean="false"}} 2 2 3 -.resource-page { 4 - padding-top: 34px; 5 -} 5 + <section class="resource-header" aria-labelledby="hero-title"> 6 + <div class="container"> 7 + <div class="text-center"> 8 + <div class="resource-kicker"> 9 + <i class="fa fa-refresh" aria-hidden="true"></i> 10 + XWiki upgrade guidance 11 + </div> 12 + </div> 6 6 7 -.resource-header { 8 - padding: 40px 0 30px; 9 - border-top: none; 10 - background: 11 - radial-gradient(42rem 14rem at 50% 0%, @brand-bg 0%, transparent 70%); 14 + <h1 id="hero-title">Why upgrading your XWiki instance should be a regular priority</h1> 12 12 13 - .resource-kicker { 14 - display: inline-flex; 15 - align-items: center; 16 - gap: 8px; 17 - color: @brand; 18 - background: fade(@brand, 8%); 19 - border: 1px solid fade(@brand, 18%); 20 - border-radius: 999px; 21 - padding: 6px 12px; 22 - margin-bottom: 14px; 23 - font-size: 13px; 24 - font-weight: 700; 25 - } 16 + <p class="resource-summary"> 17 + A working XWiki instance can still become outdated, harder to maintain and exposed to avoidable risks 18 + when upgrades are postponed for too long. 19 + </p> 20 + </div> 21 + </section> 26 26 27 - h1 { 28 - max-width: 820px; 29 - margin: 0 auto 14px; 30 - text-align: center; 31 - line-height: 1.18; 32 - } 23 + <section class="resource-page"> 24 + <div class="container"> 25 + <div class="resource-layout"> 33 33 34 - .resource-summary { 35 - max-width: 780px; 36 - margin: 0 auto; 37 - color: @muted; 38 - text-align: center; 39 - font-size: 18px; 40 - line-height: 1.55; 41 - } 42 -} 27 + <article class="resource-content"> 43 43 44 -.resource-layout { 45 - display: grid; 46 - grid-template-columns: minmax(0, 760px) 280px; 47 - gap: 42px; 48 - max-width: 1080px; 49 - margin: 0 auto; 50 - align-items: start; 51 -} 29 + <p> 30 + Many XWiki instances continue to run for years with only small visible problems. This can create the 31 + impression that upgrades are optional, especially when users can still log in, search, edit pages and 32 + access the content they need. 33 + </p> 52 52 53 -.resource-content { 54 - color: @text; 55 - font-size: 16px; 56 - line-height: 1.68; 35 + <p> 36 + The real risk is that technical debt accumulates quietly. Security fixes, extension compatibility, 37 + authentication behavior, infrastructure requirements and custom code assumptions continue to evolve. 38 + The longer an instance remains behind, the more difficult the next upgrade becomes. 39 + </p> 57 57 58 - h2 { 59 - text-align: left; 60 - margin: 34px 0 12px; 61 - line-height: 1.28; 62 - } 41 + <div class="resource-note"> 42 + <p> 43 + <strong>The main point:</strong> regular upgrades are not only about new features. They reduce security 44 + exposure, compatibility risk and long-term maintenance cost. 45 + </p> 46 + </div> 63 63 64 - h3 { 65 - margin: 24px 0 8px; 66 - line-height: 1.3; 67 - } 48 + <h2 id="why-it-matters">Why regular XWiki upgrades matter</h2> 68 68 69 - p { 70 - margin: 0 0 16px; 71 - } 50 + <h3>1. Security fixes accumulate over time</h3> 51 + <p> 52 + Older versions may miss security-related fixes already available in newer releases. Once security issues 53 + become publicly known, running an old version can become a more predictable risk. 54 + </p> 72 72 73 - ul,74 - ol {75 - margin:0018px;76 - pa dding-left:22px;77 - }56 + <p> 57 + This does not mean every old instance is immediately exposed in the same way. The real impact depends on 58 + your configuration, installed extensions, access model, authentication setup and whether the instance is 59 + public or private. But staying close to supported versions makes security maintenance more manageable. 60 + </p> 78 78 79 - li { 80 - margin: 6px 0; 81 - } 62 + <h3>2. Large upgrade gaps are harder to control</h3> 63 + <p> 64 + A small, regular upgrade is usually easier to validate than a large jump after several years. Large gaps 65 + mean more release notes, more compatibility changes, more extension checks and more uncertainty around 66 + custom code. 67 + </p> 82 82 83 - strong { 84 - color: @text; 85 - } 86 -} 69 + <h3>3. Extensions and customizations can become fragile</h3> 70 + <p> 71 + XWiki instances often include installed extensions, custom Velocity scripts, macros, templates, sheets, 72 + UI extensions, Java components or business-specific applications. These elements need to be reviewed when 73 + planning an upgrade. 74 + </p> 87 87 88 -.resource-note { 89 - border-left: 4px solid @brand; 90 - background: @brand-bg; 91 - padding: 16px 18px; 92 - margin: 22px 0; 93 - border-radius: 0 @radius @radius 0; 76 + <h3>4. Infrastructure requirements evolve</h3> 77 + <p> 78 + XWiki upgrades can involve more than the application itself. Java, Tomcat, the database, Docker images, 79 + reverse proxy configuration, PDF export services and authentication integrations may also need attention. 80 + </p> 94 94 95 - p:last-child { 96 - margin-bottom: 0; 97 - } 98 -} 82 + <h3>5. Business-critical features need validation</h3> 83 + <p> 84 + A successful upgrade is not only one where the server starts. Users usually depend on login, permissions, 85 + search, dashboards, PDF exports, workflows, notifications, custom applications and important pages. These 86 + should be part of the validation plan. 87 + </p> 99 99 100 -.resource-checklist { 101 - margin: 18px 0 24px; 102 - padding: 0; 103 - list-style: none; 89 + <h2 id="upgrade-checklist">Practical checklist before planning an upgrade</h2> 104 104 105 - li { 106 - position: relative; 107 - padding: 10px 0 10px 34px; 108 - border-bottom: 1px solid @line; 91 + <ul class="resource-checklist"> 92 + <li>Identify the current XWiki version and the target version.</li> 93 + <li>Check whether intermediate upgrade steps are needed.</li> 94 + <li>List installed extensions and verify compatibility with the target version.</li> 95 + <li>Identify custom code: Velocity scripts, macros, sheets, templates, UI extensions and Java components.</li> 96 + <li>Review authentication: LDAP, Active Directory, SSO, OIDC, SAML or MFA.</li> 97 + <li>Prepare a staging environment or temporary clone of production.</li> 98 + <li>Validate backups and clarify rollback expectations.</li> 99 + <li>Test important pages, dashboards, permissions, search, jobs, exports and custom workflows.</li> 100 + <li>Document the steps, issues found and follow-up recommendations.</li> 101 + </ul> 109 109 110 - &:before { 111 - content: "\f00c"; 112 - font-family: FontAwesome; 113 - position: absolute; 114 - left: 0; 115 - top: 11px; 116 - color: @brand; 117 - } 118 - } 119 -} 103 + <h2 id="safe-process">A safer upgrade process</h2> 120 120 121 -.resource-sidebar { 122 - position: sticky; 123 - top: 96px; 124 - border: 1px solid @line; 125 - border-radius: @radius; 126 - padding: 18px; 127 - background: #fff; 128 - box-shadow: @shadow-sm; 105 + <p> 106 + Production should not be the first place where the upgrade is tested. The safest approach is to rehearse 107 + the upgrade on staging or a temporary clone, resolve compatibility issues there, then perform the production 108 + upgrade with a clear plan. 109 + </p> 129 129 130 - h4 { 131 - margin: 0 0 10px; 132 - } 111 + <ol> 112 + <li><strong>Prepare a clone:</strong> copy the relevant database, filesystem and configuration.</li> 113 + <li><strong>Run the upgrade outside production:</strong> record the steps and issues found.</li> 114 + <li><strong>Validate critical features:</strong> login, rights, search, PDFs, workflows, dashboards and integrations.</li> 115 + <li><strong>Plan the production window:</strong> backups, downtime, rollback and communication.</li> 116 + <li><strong>Document the result:</strong> keep notes for the next upgrade cycle.</li> 117 + </ol> 133 133 134 - ul { 135 - margin: 0; 136 - padding-left: 18px; 137 - color: @muted; 138 - } 119 + <h2 id="common-mistakes">Common mistakes to avoid</h2> 139 139 140 - li { 141 - margin: 8px 0; 142 - } 121 + <ul> 122 + <li><strong>Upgrading directly in production.</strong> Compatibility issues should be discovered before users are affected.</li> 123 + <li><strong>Checking only public pages.</strong> Authentication, restricted spaces and admin features also need validation.</li> 124 + <li><strong>Ignoring custom code.</strong> Custom scripts and extensions often create the real upgrade complexity.</li> 125 + <li><strong>Skipping backup validation.</strong> A backup is useful only if restore expectations are understood.</li> 126 + <li><strong>Keeping no upgrade notes.</strong> Without notes, the next maintenance cycle starts again from uncertainty.</li> 127 + </ul> 143 143 144 - a { 145 - color: @brand; 146 - font-weight: 600; 147 - } 148 -} 129 + <h2 id="upgrade-rhythm">How often should XWiki be upgraded?</h2> 149 149 150 -.resource-cta { 151 - margin-top: 36px; 152 - padding: 22px; 153 - border: 1px solid fade(@brand, 20%); 154 - border-radius: @radius; 155 - background: @brand-bg; 131 + <p> 132 + For many organizations, a practical rhythm is to stay aligned with the current Long Term Support version 133 + and plan upgrades regularly rather than waiting for a major problem. Some environments can upgrade more 134 + frequently, while heavily customized instances may require more planning. 135 + </p> 156 156 157 - h3 { 158 - margin-top: 0; 159 - } 137 + <p> 138 + The important part is not only the exact frequency. It is having an upgrade process that is repeatable: 139 + review, staging validation, production rollout, documentation and follow-up. 140 + </p> 160 160 161 - p { 162 - color: @muted; 163 - } 164 -} 142 + <div class="resource-cta"> 143 + <h3>Need help planning an XWiki upgrade?</h3> 144 + <p> 145 + If your XWiki instance is outdated, customized or business-critical, the safest next step is to review 146 + the current version, extensions, infrastructure and validation needs before planning the production upgrade. 147 + </p> 148 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a> 149 + </div> 165 165 166 -@media (max-width: 900px) { 167 - .resource-layout { 168 - grid-template-columns: 1fr; 169 - } 151 + </article> 170 170 171 - .resource-sidebar { 172 - position: static; 173 - } 174 -} 153 + <aside class="resource-sidebar" aria-label="Page summary"> 154 + <h4>In this guide</h4> 155 + <ul> 156 + <li><a href="#why-it-matters">Why upgrades matter</a></li> 157 + <li><a href="#upgrade-checklist">Upgrade checklist</a></li> 158 + <li><a href="#safe-process">Safe process</a></li> 159 + <li><a href="#common-mistakes">Common mistakes</a></li> 160 + <li><a href="#upgrade-rhythm">Upgrade rhythm</a></li> 161 + </ul> 162 + </aside> 163 + 164 + </div> 165 + </div> 166 + </section> 167 +{{/html}} 168 +{{/velocity}}