Last modified by Agnease on 2026/05/26 11:00

From version 12.1
edited by Agnease
on 2026/05/26 10:35
Change comment: There is no comment for this version
To version 12.3
edited by Agnease
on 2026/05/26 10:51
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -176,6 +176,15 @@
176 176   </p>
177 177   </div>
178 178  
179 + <div class="resource-inline-cta">
180 + <p>
181 + <strong>Not sure how risky your current XWiki version is?</strong>
182 + A short technical review can clarify the upgrade path, extension compatibility,
183 + custom code risks and validation needs before production is touched.
184 + </p>
185 + <a class="btn btn-secondary" href="$xwiki.getURL('contact.WebHome')">Request a quick review</a>
186 + </div>
187 +
179 179   <h2 id="practical-checklist">XWiki custom development checklist</h2>
180 180  
181 181   <p>
... ... @@ -207,40 +207,50 @@
207 207  
208 208   <h2 id="custom-development-faq">XWiki custom development FAQ</h2>
209 209  
210 - <h3>Does custom development make XWiki harder to upgrade?</h3>
211 - <p>
212 - Not automatically. Custom development becomes harder to upgrade when it is undocumented, mixed with regular
213 - content, applied directly in production or missing from the upgrade validation plan. Well-organized custom work
214 - can remain maintainable across upgrades.
215 - </p>
219 + <details class="resource-faq-item" open>
220 + <summary>Does custom development make XWiki harder to upgrade?</summary>
221 + <p>
222 + Not automatically. Custom development becomes harder to upgrade when it is undocumented, mixed with regular
223 + content, applied directly in production or missing from the upgrade validation plan. Well-organized custom work
224 + can remain maintainable across upgrades.
225 + </p>
226 + </details>
216 216  
217 - <h3>Where should XWiki custom code be stored?</h3>
218 - <p>
219 - Custom wiki pages, scripts, templates and configuration should usually be kept in dedicated technical spaces.
220 - Code and important assets should also be tracked in a source control system, such as Git, so changes are not
221 - stored only in the production wiki.
222 - </p>
228 + <details class="resource-faq-item">
229 + <summary>Where should XWiki custom code be stored?</summary>
230 + <p>
231 + Custom wiki pages, scripts, templates and configuration should usually be kept in dedicated technical spaces.
232 + Code and important assets should also be tracked in a source control system, such as Git, so changes are not
233 + stored only in the production wiki.
234 + </p>
235 + </details>
223 223  
224 - <h3>When should an XWiki customization become an extension?</h3>
225 - <p>
226 - Packaging a customization as an extension is useful when the feature becomes complex, reusable, business-critical
227 - or shared across multiple instances. Java components, event listeners, scheduled jobs and integrations often
228 - benefit from an extension-based approach.
229 - </p>
237 + <details class="resource-faq-item">
238 + <summary>When should an XWiki customization become an extension?</summary>
239 + <p>
240 + Packaging a customization as an extension is useful when the feature becomes complex, reusable, business-critical
241 + or shared across multiple instances. Java components, event listeners, scheduled jobs and integrations often
242 + benefit from an extension-based approach.
243 + </p>
244 + </details>
230 230  
231 - <h3>What should be tested after an XWiki upgrade?</h3>
232 - <p>
233 - Besides standard pages, the validation should include custom dashboards, templates, macros, workflows,
234 - permissions, notifications, PDF exports, scheduled jobs, integrations and any custom applications used by the
235 - organization.
236 - </p>
246 + <details class="resource-faq-item">
247 + <summary>What should be tested after an XWiki upgrade?</summary>
248 + <p>
249 + Besides standard pages, the validation should include custom dashboards, templates, macros, workflows,
250 + permissions, notifications, PDF exports, scheduled jobs, integrations and any custom applications used by the
251 + organization.
252 + </p>
253 + </details>
237 237  
238 - <h3>Why should configuration be kept outside custom code?</h3>
239 - <p>
240 - Values such as group names, target spaces, external URLs, email recipients and workflow settings can change over
241 - time. Keeping them in configuration pages or preference objects makes custom features easier to adapt without
242 - changing the implementation.
243 - </p>
255 + <details class="resource-faq-item">
256 + <summary>Why should configuration be kept outside custom code?</summary>
257 + <p>
258 + Values such as group names, target spaces, external URLs, email recipients and workflow settings can change over
259 + time. Keeping them in configuration pages or preference objects makes custom features easier to adapt without
260 + changing the implementation.
261 + </p>
262 + </details>
244 244  
245 245   <div class="resource-note">
246 246   <p>