Versions and Compatibility
XTS is released with version numbers of the form 0.MINOR.PATCH, for
example 0.1.2. The leading zero says that the layout language is still
being shaped and may change between minor versions.
What a version number tells you
- PATCH (
0.1.1to0.1.2): bug fixes only. A layout that worked with0.1.1produces the same document with0.1.2, apart from the bug that was fixed. - MINOR (
0.1to0.2): new commands, attributes and functions, and changes in behavior. A minor release may change line breaks or page breaks of an existing layout, and it may remove features that were marked as deprecated in the previous minor release.
Every change that you can notice in a layout is listed in the changelog, including the ones that alter the output of existing layouts. Read it before you update XTS in a production setup, then run your own comparison tests.
Deprecation
A command, attribute or function that is going to be removed is first marked as deprecated: it keeps working for one minor release and XTS writes a warning that names the replacement. The next minor release removes it and the layout stops with an error. The changelog entry for the deprecation says which release removes the feature.
Declaring the version in the layout
The <Layout> element accepts a version attribute with the XTS
version the layout was written for:
<Layout xmlns="urn:speedata.de/2021/xts/en"
xmlns:sd="urn:speedata.de/2021/xtsfunctions/en"
version="0.1">XTS compares the parts from the left with its own version, so 0.1 is
satisfied by 0.1.0, 0.1.5 and 0.2.0. A layout that asks for a newer
version than the running XTS stops with an error instead of producing a
document that silently lacks the features the layout relies on. An older
version passes, so the attribute records the minimum, not an exact match.
Development builds of XTS accept every version.
Finding the version
xts versionprints the version of the binary. The releases page lists every release with its changes.