Last modified by Alex Cotiuga on 2026/07/03 15:51

From version 12.2
edited by Alex Cotiuga
on 2026/05/26 10:49
Change comment: There is no comment for this version
To version 13.2
edited by Alex Cotiuga
on 2026/07/03 15:51
Change comment: There is no comment for this version

Summary

Details

Page properties
Default language
... ... @@ -1,1 +1,0 @@
1 -en
Hidden
... ... @@ -1,1 +1,1 @@
1 -false
1 +true
Content
... ... @@ -110,6 +110,15 @@
110 110   for related checks around permissions, authentication, extensions, infrastructure and operational practices.
111 111   </p>
112 112  
113 + <div class="resource-inline-cta">
114 + <p>
115 + <strong>Unsure how maintainable your XWiki customizations are?</strong>
116 + A customization review can help identify hidden scripts, undocumented logic,
117 + upgrade risks and features that should be documented, cleaned up or packaged properly.
118 + </p>
119 + <a class="btn btn-secondary" href="$xwiki.getURL('contact.WebHome')">Request a customization review</a>
120 + </div>
121 +
113 113   <h2 id="safe-model">A safer model for XWiki custom work</h2>
114 114  
115 115   <h3>1. Keep custom code separate from standard XWiki pages</h3>
... ... @@ -216,40 +216,50 @@
216 216  
217 217   <h2 id="custom-development-faq">XWiki custom development FAQ</h2>
218 218  
219 - <h3>Does custom development make XWiki harder to upgrade?</h3>
220 - <p>
221 - Not automatically. Custom development becomes harder to upgrade when it is undocumented, mixed with regular
222 - content, applied directly in production or missing from the upgrade validation plan. Well-organized custom work
223 - can remain maintainable across upgrades.
224 - </p>
228 + <details class="resource-faq-item" open>
229 + <summary>Does custom development make XWiki harder to upgrade?</summary>
230 + <p>
231 + Not automatically. Custom development becomes harder to upgrade when it is undocumented, mixed with regular
232 + content, applied directly in production or missing from the upgrade validation plan. Well-organized custom work
233 + can remain maintainable across upgrades.
234 + </p>
235 + </details>
225 225  
226 - <h3>Where should XWiki custom code be stored?</h3>
227 - <p>
228 - Custom wiki pages, scripts, templates and configuration should usually be kept in dedicated technical spaces.
229 - Code and important assets should also be tracked in a source control system, such as Git, so changes are not
230 - stored only in the production wiki.
231 - </p>
237 + <details class="resource-faq-item">
238 + <summary>Where should XWiki custom code be stored?</summary>
239 + <p>
240 + Custom wiki pages, scripts, templates and configuration should usually be kept in dedicated technical spaces.
241 + Code and important assets should also be tracked in a source control system, such as Git, so changes are not
242 + stored only in the production wiki.
243 + </p>
244 + </details>
232 232  
233 - <h3>When should an XWiki customization become an extension?</h3>
234 - <p>
235 - Packaging a customization as an extension is useful when the feature becomes complex, reusable, business-critical
236 - or shared across multiple instances. Java components, event listeners, scheduled jobs and integrations often
237 - benefit from an extension-based approach.
238 - </p>
246 + <details class="resource-faq-item">
247 + <summary>When should an XWiki customization become an extension?</summary>
248 + <p>
249 + Packaging a customization as an extension is useful when the feature becomes complex, reusable, business-critical
250 + or shared across multiple instances. Java components, event listeners, scheduled jobs and integrations often
251 + benefit from an extension-based approach.
252 + </p>
253 + </details>
239 239  
240 - <h3>What should be tested after an XWiki upgrade?</h3>
241 - <p>
242 - Besides standard pages, the validation should include custom dashboards, templates, macros, workflows,
243 - permissions, notifications, PDF exports, scheduled jobs, integrations and any custom applications used by the
244 - organization.
245 - </p>
255 + <details class="resource-faq-item">
256 + <summary>What should be tested after an XWiki upgrade?</summary>
257 + <p>
258 + Besides standard pages, the validation should include custom dashboards, templates, macros, workflows,
259 + permissions, notifications, PDF exports, scheduled jobs, integrations and any custom applications used by the
260 + organization.
261 + </p>
262 + </details>
246 246  
247 - <h3>Why should configuration be kept outside custom code?</h3>
248 - <p>
249 - Values such as group names, target spaces, external URLs, email recipients and workflow settings can change over
250 - time. Keeping them in configuration pages or preference objects makes custom features easier to adapt without
251 - changing the implementation.
252 - </p>
264 + <details class="resource-faq-item">
265 + <summary>Why should configuration be kept outside custom code?</summary>
266 + <p>
267 + Values such as group names, target spaces, external URLs, email recipients and workflow settings can change over
268 + time. Keeping them in configuration pages or preference objects makes custom features easier to adapt without
269 + changing the implementation.
270 + </p>
271 + </details>
253 253  
254 254   <div class="resource-note">
255 255   <p>
... ... @@ -259,22 +259,25 @@
259 259   <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">why regular XWiki upgrades matter</a>
260 260   </p>
261 261   </div>
262 -
263 - <div class="resource-cta">
264 - <h3>Need help reviewing XWiki customizations?</h3>
265 - <p>
266 - If your XWiki instance includes custom scripts, dashboards, workflows, templates, integrations or Java
267 - extensions, a customization review can help identify what is safe, what needs documentation and what should be
268 - tested before the next upgrade.
269 - </p>
270 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a customization review</a>
271 - </div>
272 -
273 273   </article>
274 274   </div>
275 275   </div>
276 276   </section>
277 277  
286 + <section class="cta-section" aria-labelledby="xwiki-custom-development-cta-title">
287 + <div class="container">
288 + <div class="cta-panel">
289 + <h2 id="xwiki-custom-development-cta-title">Need help reviewing XWiki customizations?</h2>
290 + <p>
291 + If your XWiki instance includes custom scripts, dashboards, workflows, templates, integrations or Java
292 + extensions, a customization review can help identify what is safe, what needs documentation and what should be
293 + tested before the next upgrade.
294 + </p>
295 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a customization review</a>
296 + </div>
297 + </div>
298 + </section>
299 +
278 278   <script type="application/ld+json">
279 279   {
280 280   "@context": "https://schema.org",