Versioning
Table of Contents
Since version 2.45 xkeyboard-config switched to a versioning scheme to enable parallel installation of multiple versions, in a directoty tree independent of X11 files.
Introduction
Until version 2.44 our installed files were not versioned, so only one version of xkeyboard-config could be installed at a time.
We plan to introduce breaking changes to the rules and keymap file formats to fix long-standing issues. To ensure backward compatibility, in version 2.45 we are switching to versioned install directories and files, in order to enable multiple versions of xkeyboard-config to be installed in parallel.
Version scheme
Since we do not expect the formats to evolve frequently, the version scheme is simple:
- The file format version uses a single number and increments by 1.
- The major version of the xkeyboard-config project denotes the file format version of both rules and keymap files.
- The version scheme starts at the current major version: 2.
- The version defines a range of XKB compilers that it is compatible with.
- Everytime we introduce a breaking change in the file formats, we bump the major version of xkeyboard-config and define the corresponding supported XKB compilers range.
Policy
TODO: This a work in progress!
- What denotes the dataset formats?
-
A xkeyboard-config format is defined by the range of Xorg xkbcomp and libxkbcommon versions that can compile it.
So whenever we start to use a feature that does not compile with an older xkbcommon, we have to bump the format version.
- When do we introduce a new format?
-
Shiny new syntax will not justify a format bump, only features that actually:
- improve xkeyboard-config maintenance
- improve end-users use cases
- fix bugs or strong limitations
- How long do we support a format?
-
- v1: Until we drop support for X11 (not planned yet)
Supported XKB compilers
XKB compiler | xkeyboard-config format version |
---|---|
2 | |
all versions |
|
all versions, using |