(Adopted 18 Feb 2021)
Kinds of releases
Every Tor release series can be in one of 6 states:
- alpha: a release series under destabilizing feature development.
- release candidate (rc): approaching stability.
- stable: the most recent series that is recommended for general use.
- oldstable: still suitable for general use, but a more recent stable release exists.
- long-term support (LTS) only: intended for use by distributors that require a series that receives only minimal patches over time.
Once a release becomes "stable", any previous "stable" release becomes "oldstable". The release will remain "oldstable" for 3 months, or until 9 months after it was originally stable: whichever comes last.
After a release series is no longer "oldstable", it typically becomes "unsupported" -- some releases, however, become "LTS only". We announce in advance which releases are planned for LTS. Once a release is LTS, we commit to trying to keep it as LTS for some interval of time: typically a few years.
Levels of support
In unsupported release series:
- No changes are made.
- No new versions are released.
- Nothing is promised.
In all supported release series:
- We update data that is required or recommended for connecting to the Tor network, including authority lists, fallback directory lists, and geoip configuration.
Additionally, in LTS-only releases:
- We fix security bugs that cause vulnerabilities.
- We apply simple patches if they are needed to keep the release functional on the network. (That is, if the alternative to applying the patch is to make one or more use-cases unsupported.)
- We apply simple patches if they are needed to keep the release maintainable. (That is, if our ability to maintain the release would be blocked by not merging the patch.) [Added 25 Feb 2021]
- We don't make other changes.
Additionally, in oldstable releases:
- All patches allowed in LTS-only releases are permitted.
- Stability fixes are also allowed.
- Relays, clients, and onion services are supported on the network: fixes to keep them working on the network are allowed.
- Dirauths may be supported on the network.
- Other fixes may or may not be backported.
Additionally, in stable and rc releases:
- All patches allowed in LTS-only releases and oldstable releases are permitted.
- All kinds of fixes are allowed.
- Dirauths will be supported on the network.
Additionally, in alpha releases:
- All kinds of changes are allowed, not just fixes.
Implications of these support policies
For testing purposes, people should make sure that "alpha" and "rc" releases meet their needs, so that bugs can be fixed before those releases are officially stable. Because many kinds of changes are allowed in "alpha" and "rc" releases, those releases are where most bugs will be encountered.
In general, users and packagers should try to distribute the "stable" release whenever possible. The "oldstable" status exists so that users and packagers have a grace period in which to migrate from one supported release series to the next.
The LTS-only status is intended to minimize the amount of change to the release over time. Because of that restriction, we cannot promise that an LTS-only release will remain useful or permitted as a client, relay, or onion service on the main Tor network. We will not break an LTS-only release gratuitously (that is, without a good reason) but we can't make commitments beyond that.
Above we describe circumstances when a release is "supported". Even in supported releases, however, some 'unstable' features may not receive fixes, either because they are less mature than the rest of Tor, because there are relatively few users who need them, or for some other reason.
Examples of unstable features are:
- Enabling Rust support.
- Enabling NSS support.
- Embedding Tor in another binary.
- Running on unsupported platforms (Tier 3 or lower).
Depending on complexity and resources, we may apply fixes to these unstable features in the "stable" series only, or even restrict such fixes to "alpha" and "rc" series.
The above policy is our intent, but not a promise. We'll make a solid effort to follow it.