I'm starting this as a fresh page, since it's pretty much entirely a rewrite.
I'm starting this as a fresh page, since it's pretty much entirely a rewrite.
== Goals ==
## Goals
There are 4 questions we need to answer, from just a Tor development POV, ignoring all bundling issues for now:
There are 4 questions we need to answer, from just a Tor development POV, ignoring all bundling issues for now:
* Which Tor versions do we support?
* Which Tor versions do we support?
...
@@ -34,19 +34,19 @@ Bundler goals:
...
@@ -34,19 +34,19 @@ Bundler goals:
* Bundlers want to make bundles that people actually use.
* Bundlers want to make bundles that people actually use.
* Bundlers want to know in advance which bundles they'll have to build.
* Bundlers want to know in advance which bundles they'll have to build.
== Tor version policy ==
## Tor version policy
A tor version is of the form x.y.z.w-status. The x.y.z part (such as 0.2.2) is a "release series".
A tor version is of the form x.y.z.w-status. The x.y.z part (such as 0.2.2) is a "release series".
A release series can be in one of 4 states: '''Alpha''', '''Latest''', '''Legacy''', or '''Obsolete'''.
A release series can be in one of 4 states: **Alpha**, **Latest**, **Legacy**, or **Obsolete**.
* The current '''alpha''' series is 0.2.3.x. New features and bugfixes go into the alpha series. There is only one alpha series at a time.
* The current **alpha** series is 0.2.3.x. New features and bugfixes go into the alpha series. There is only one alpha series at a time.
* The '''latest''' series is the most recent series in feature freeze or later. It gets every bugfix that seems likely to improve user experience, given a reasonable cost in time and risk. It does not get new features, except under exceptional circumstances. The current '''latest''' series is 0.2.2.x.
* The **latest** series is the most recent series in feature freeze or later. It gets every bugfix that seems likely to improve user experience, given a reasonable cost in time and risk. It does not get new features, except under exceptional circumstances. The current **latest** series is 0.2.2.x.
* Older supported series are '''legacy'''. They only get those bugfixes that are needed for a secure, stable, well-behaved network. Currently, 0.2.1.x is legacy.
* Older supported series are **legacy**. They only get those bugfixes that are needed for a secure, stable, well-behaved network. Currently, 0.2.1.x is legacy.
*'''Obsolete''' releases are older still. They get no bugfixes at all. Tor 0.2.0.x and earlier are obsolete.
***Obsolete** releases are older still. They get no bugfixes at all. Tor 0.2.0.x and earlier are obsolete.
''Discussion'': The designation "latest" encompasses everything from the first alpha in which the feature freeze is declared, through the earlier stable releases in the series. Note that, in practice, the first "stable" release in a given series does not mark the point at which the series more stable than the one before. A conservative user typically waits for a few stable versions to come out before upgrading.
_Discussion_: The designation "latest" encompasses everything from the first alpha in which the feature freeze is declared, through the earlier stable releases in the series. Note that, in practice, the first "stable" release in a given series does not mark the point at which the series more stable than the one before. A conservative user typically waits for a few stable versions to come out before upgrading.
=== How long is a series supported? ===
### How long is a series supported?
Here is what we do in practice:
Here is what we do in practice:
* In practice, we have tended to support a series for about 2 years after it is declared stable. To make Debian happy with putting Tor in with its more nonvolatile packages, we would probably need to say "3 years". I do not know if we can.
* In practice, we have tended to support a series for about 2 years after it is declared stable. To make Debian happy with putting Tor in with its more nonvolatile packages, we would probably need to say "3 years". I do not know if we can.
...
@@ -59,14 +59,14 @@ Proposed policy, option 2:
...
@@ -59,14 +59,14 @@ Proposed policy, option 2:
For M==2 and N==2, these policies tend to work out to about the same result. The first one gives more predictability to distributors; the second one makes life easier for developers.
For M==2 and N==2, these policies tend to work out to about the same result. The first one gives more predictability to distributors; the second one makes life easier for developers.
=== What do we build bundles of? ===
### What do we build bundles of?
We do not need to build bundles for all non-obsolete series. The most important series to build branches for are:
We do not need to build bundles for all non-obsolete series. The most important series to build branches for are:
* The latest series.
* The latest series.
* The most stable legacy series.
* The most stable legacy series.
* The alpha series.
* The alpha series.
=== What about operating system support? ===
### What about operating system support?
There are three reasons to support an operating system:
There are three reasons to support an operating system:
* Because our developers are productive coding on/for them
* Because our developers are productive coding on/for them
...
@@ -86,7 +86,7 @@ For non-OSX commercial unixes, our support tends to be "give us a patch when we
...
@@ -86,7 +86,7 @@ For non-OSX commercial unixes, our support tends to be "give us a patch when we
Our main open questions on OS support are: when may we drop support for a Windows release or an OSX release? Our previous policy has been: "approximately never" or "only when unavoidable" or "if we do it by accident and nobody complains, that's cool". I suggest that instead we come up with some better criteria, and actually consider dropping Windows 98.
Our main open questions on OS support are: when may we drop support for a Windows release or an OSX release? Our previous policy has been: "approximately never" or "only when unavoidable" or "if we do it by accident and nobody complains, that's cool". I suggest that instead we come up with some better criteria, and actually consider dropping Windows 98.
=== What about library support? ===
### What about library support?
Tor's required libraries are libevent, openssl, and zlib.
Tor's required libraries are libevent, openssl, and zlib.