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

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

Summary

Details

Page properties
Content
... ... @@ -216,50 +216,40 @@
216 216  
217 217   <h2 id="custom-development-faq">XWiki custom development FAQ</h2>
218 218  
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>
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>
227 227  
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>
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>
236 236  
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>
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>
245 245  
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>
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>
254 254  
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>
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>
263 263  
264 264   <div class="resource-note">
265 265   <p>