Wiki source code of Versioning

Last modified by Eleni Cojocariu on 2026/02/04 15:25

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 == Documentation Perspective ==
6
7 * Documentation must be written from the perspective of the latest version.
8 * Differences between the latest version and the LTS or other supported versions should be documented secondarily using the, using the [[##~~{~~{version}}## macro>>doc:xwiki:documentation.extensions.user.documentation.version-macro.WebHome]], along with the ##before## parameter.
9 * The documentation content should always reflect the current UI, behavior, and features.
10
11 == The "Version" Macro ==
12
13 When documentation depends on specific versions of XWiki or on a released extension, you must indicate this using the [[##~~{~~{version}}## macro>>xwiki:DocApp.Code.VersionMacro]].
14
15 * For XWiki itself, specify [[versions more recent or equal to the LTS version>>xwiki:Main.Support||anchor="HCommunitySupport"]], as long as that version is within the currently supported [[LTS cycle>>xwiki:Main.Support||anchor="HCommunitySupport"]].
16 * For extensions, specify the released version.
17
18 Example result:
19
20 {{gallery}}
21 image:version-macro-before.png
22 image:version-macro-since.png
23 {{/gallery}}
24
25 This helps readers know if the information applies to their XWiki instance.
26
27 Note: When the versions referenced in a ##~{~{version}}## macro are no longer within the supported LTS cycle, those version markers must be [[removed>>||anchor="HRemovingOldDocumentation"]].
28
29 == Documenting a New Feature ==
30
31 When documenting something that did not exist before:
32
33 * Use the ##~{~{version}}## macro, along with the ##since## parameter. Readers need to know if it exists in their version. For example:(((
34 {{code language="none"}}
35 {{version since="16.10.6, 17.3.0RC1"}}
36 The Realtime edit actions were included.
37 {{/version}}
38 {{/code}}
39 )))
40
41 == Documenting UI Changes or Modified Behavior ==
42
43 When describing something that existed before, but works differently now:
44
45 * Write the latest behavior normally (no macro).
46 * Use the ##before## parameter to describe the previous behavior. For example:(((
47 {{code language="none"}}
48 The tab uses the "Language" terminology ({{version before="16.10.12"}}Previously, the tab was using the "Locale" terminology{{/version}}).
49 {{/code}}
50 )))
51 ** Note: Some UI changes may not be relevant enough to justify a version macro for showing the old UI. For example:
52 *** No text was added or modified.
53 *** The behavior remains the same.
54 *** The UI element that changed is located in the same area.
55 In such cases, adding a version macro with the ##before## parameter would only clutter the page with information that is not really helpful for readers.
56
57 == Removing Old Documentation ==
58
59 The xwiki.org community only [[supports the LTS and beyond>>xwiki:Main.Support||anchor="HCommunitySupport"]]. Thus, the documentation on xwiki.org should be kept aligned and focus exclusively on supported versions.
60
61 Documentation gardening therefore involves:
62
63 * Removing documentation and [[versions macros>>||anchor="HAffectedVersions"]] for versions older than the current [[LTS cycle>>dev:Community.VersioningAndReleasePractices.WebHome||anchor="HReleaseCyclesandReleaseStrategy"]].
64 * Remove mentions of old XWiki versions by removing the [[versions macros>>||anchor="HAffectedVersions"]] around valid content. This avoids the xwiki.org documentation to be littered with references to old (not supported) versions of XWiki.

Get Connected