Versions.txt revision 1276
1056N/AX.Org Version Numbering Schemes
1056N/A
1056N/AThe XFree86 Project, Inc
1056N/A
1056N/AUpdated for X.Org by Keith Packard, Kevin E. Martin, and Alan Coopersmith
1056N/A
1056N/ANovember 2010
1056N/A
1056N/AX.Org has adopted the same basic numbering scheme used by the XFree86 Project,
1056N/AInc. for their releases. The actual numbers are different, but the basic scheme
1056N/Ais the same. This document reflects the policy that X.Org uses.
1056N/A
1056N/A━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1056N/A
1056N/ATable of Contents
1056N/A
1056N/AModule Versions
1276N/AReleases, Development Streams, and Branches
1056N/ACurrent Version Numbering Scheme
1056N/A
1056N/A Development Branch
1056N/A Stable Branch
1056N/A
1056N/AFinding the X.Org X Server Version From a Client
1056N/A
1056N/AModule Versions
1056N/A
1056N/AStarting with the X11R7.0 release, each module has its own version number. For
1056N/Athose without a natural starting point, the version numbers started at 1.0. For
1056N/Ainstance, the X11R7.0 release included the xorg-server 1.0 module. As modules
1056N/Aare released independently from the rest of the window system, the module
1056N/Aversion is the most accurate source of version information. For instance, there
1056N/Aare many X server releases in a year, but generally only one window system
1056N/Arelease, so an X server version number such as 1.7.7 is more informative than
1056N/Athe X11R7.5 version for the window system “katamari” release.
1056N/A
1056N/AUnfortunately, up through the X server 1.3 release, the X server used the
1056N/AWindow System version when reporting its version number in log files, the
1056N/A-version option, and the connection setup string (displayed by xdpyinfo). This
1056N/Awas corrected with X server 1.3, which caused the visible version number string
1056N/Ato appear to jump backwards from 7.2 to 1.3.
1056N/A
1276N/AReleases, Development Streams, and Branches
1056N/A
1056N/AX.Org has two release branches for the X server software, and several other
1056N/Amodules with active ongoing development. First is the trunk of the git
1056N/Arepository. This is the main development stream, where all new work and work
1056N/Afor future releases is done.
1056N/A
1056N/ASecond is the stable bugfix branch for the latest full release. It is created
1056N/Aaround the time of the release. The branch will be named for the release
1056N/Aversion, such as “server-1.9-branch” for the X server 1.9.x series of releases.
1056N/AFixes for bugs found in the release will be added to this branch (as well as
1056N/Athe trunk), and updates to this release (if any) will be cut from this branch.
1056N/ASimilar stable branches are present for previous full releases.
1056N/A
1056N/AThe X.Org Foundation is planning to make full releases from the main
1056N/Adevelopment stream at regular intervals in the 6-12 month range. The feature
1056N/Afreezes for these releases will usually be 2-3 months before the release dates.
1056N/AThis general plan is a goal, not a binding commitment. The actual release
1056N/Aintervals and dates will depend to a large degree on the resource available to
1056N/AX.Org. Update/bugfix releases will be made on an as-required basis, depending
1056N/Aalso on the availability of resources, and will generally be limited to serious
1056N/Abug and security fixes. New features will not usually be added in update
1056N/Areleases.
1056N/A
1056N/AAside from actual releases, snapshots of the active release branches are tagged
1056N/Ain the git repository from time to time. Each such snapshot has an identifiable
1056N/Aversion number.
1056N/A
1056N/ACurrent Version Numbering Scheme
1056N/A
1056N/AStarting with the main development branch after X11R6.7, the X.Org versions are
1056N/Anumbered according to the scheme outlined here.
1056N/A
1056N/AThe version numbering format is M.m.P.s, where M is the major version number, m
1056N/Ais the minor version number, P is the patch level, and s is the snapshot
1056N/Anumber. Full releases have P set to zero, and it is incremented for each
1056N/Asubsequent bug fix release on the post-release stable branch. The snapshot
1056N/Anumber s is present only for between-release snapshots of the development and
1056N/Astable branches.
1056N/A
1056N/ADevelopment Branch
1056N/A
1056N/AImmediately after forming a release stable branch, the patch level number for
1056N/Athe main development branch is bumped to 99, and the snapshot number is reset.
1056N/AThe snapshot number is incremented for each tagged development snapshot. The
1056N/Agit tag for snapshots is “xorg-server-M.m.P.s”. When the development branch
1056N/Aenters feature freeze, the snapshot number is bumped to 900. A stable branch
1056N/Amay be created for the next full release at any time after the feature freeze.
1056N/AWhen it is, the branch is called “server-M.m-branch”. The snapshot number is
1056N/Aincremented from there until the release is finalised. Each of these snapshots
1056N/Ais a “release candidate”. When the release is finalised, the minor version is
1056N/Aincremented, the patch level is set to zero, and the snapshot number removed.
1056N/A
1056N/AHere's an example which shows the version number sequence for the development
1056N/Aleading up to version 1.8:
1056N/A
1056N/A1.7.99.1 The first snapshot of the pre-1.8 development branch.
1056N/A
1056N/A1.7.99.23 The twenty-third snapshot of the pre-1.8 development branch.
1056N/A
1056N/A1.7.99.900 The start of the 1.8 feature freeze.
1056N/A
1056N/A1.7.99.903 The third 1.8 release candidate.
1056N/A
1056N/A1.8.0 The 1.8 release.
1056N/A
1056N/A1.8.99.1 The first pre-1.9 development snapshot, which is the first main
1056N/A branch snapshot after creating the 1.8 stable branch.
1056N/A
1056N/AStable Branch
1056N/A
1056N/AAfter a full release, the stable branch for the release will be maintained with
1056N/Abug fixes and important updates until the next full release. Any snapshots on
1056N/Athis branch are considered “release candidates,” which is indicated by setting
1056N/As to a number above 900. The snapshot number is incremented for each release
1056N/Acandidate until the update release is finalised. The patch level value (P) is
1056N/Aincremented for each update release.
1056N/A
1056N/AHere's an example which shows a version number sequence for a 1.8.x stable
1056N/Abranch:
1056N/A
1056N/A1.8.0 The 1.8 release.
1056N/A
1056N/A1.8.0.901 The first pre 1.8.1 snapshot.
1056N/A
1276N/A1.8.0.903 The third pre 1.8.1 snapshot, also known as the third 1.8.1 release
1276N/A candidate.
1056N/A
1056N/A1.8.1 The 1.8.1 release.
1056N/A
1056N/A1.8.1.901 The first pre 1.8.2 snapshot.
1056N/A
1056N/A1.8.2 The 1.8.2 release.
1056N/A
1056N/AFinding the X.Org X Server Version From a Client
1056N/A
1056N/AThe X.Org X servers report a VendorRelease value that matches the X.Org version
1056N/Anumber. There have been some cases of releases where this value wasn't set
1056N/Acorrectly. The rules for interpreting this value as well as the known
1056N/Aexceptions are outlined here.
1056N/A
1056N/AAs noted above, the version reported by VendorRelease changed from the window
1056N/Asystem version to the X server version starting in the xorg-server 1.3 release.
1056N/A
1056N/AFor all X.Org development and release versions using this numbering scheme, the
1056N/AVendorRelease value is MMmmPPsss. That is, version M.m.P.s has VendorRelease
1056N/Aset to M * 10000000 + m * 100000 + P * 1000 + s.
1056N/A
1056N/AThe following is a code fragment taken from xdpyinfo.c that shows how the
1056N/AVendorRelease information can be interpreted.
1056N/A
1056N/A if (strstr(ServerVendor(dpy), "X.Org")) {
1056N/A int vendrel = VendorRelease(dpy);
1056N/A
1056N/A printf("X.Org version: ");
1056N/A printf("%d.%d.%d", vendrel / 10000000,
1056N/A (vendrel / 100000) % 100,
1056N/A (vendrel / 1000) % 100);
1056N/A if (vendrel % 1000) {
1056N/A printf(".%d", vendrel % 1000);
1056N/A }
1056N/A }
1056N/A