Shorewall Release Model
Tom
Eastep
2004
2005
2006
2007
Thomas M. Eastep
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
1.2 or any later version published by the Free Software Foundation; with
no Invariant Sections, with no Front-Cover, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
GNU Free Documentation
License
.
Shorewall Releases
Releases have a three-level identification
x.y.z (e.g., 2.0.3).
The first two levels (x.y) designate the
Major Release Number (e.g., 2.0).
The third level (z) designates the
Minor Release Number.
Even numbered major releases (e.g., 1.4, 2.0, 2.2, ...) are
Stable Releases. No major new features are
added to stable releases and new minor releases of a stable release
will only contain bug fixes and simple low-risk enhancements.
Installing a new minor release for the major release that you are
currently running involves no migration issues unless you want to take
advantage of an enhancement (for example, if you are running 1.4.10
and I release 1.4.11, your current configuration is 100% compatible
with the new release).
Support is available through the Mailing List
for the two most recent Stable Releases.
Odd numbered major releases (e.g., 2.1, 2.3, ...) are
Development Releases. Development releases are
where new functionality is introduced. Documentation for new features
will be available but it may not be up to the standards of the stable
release documentation. Sites running Development Releases should be
prepared to play an active role in testing new features. Bug fixes and
problem resolution for the development release take a back seat to
support of the stable releases. Problem reports for the current
development release should be sent to the Shorewall Development
Mailing List.
When the level of functionality of the current development
release is judged adequate, the Beta period for
a new Stable release will begin. Beta releases have identifications of
the form x.y.0-BetaN where
x.y is the number of the next Stable Release and
N=1,2,3... . Betas are expected to occur roughly
once per year. Beta releases may contain new functionality not present
in the previous beta release (e.g., 2.2.0-Beta4 may contain
functionality not present in 2.2.0-Beta3). When I'm confident that the
current Beta release is stable, I will release the first
Release Candidate. Release candidates have
identifications of the form x.y.0-RCn where
x.y is the number of the next Stable Release and
n=1,2,3... . Release candidates contain no new
functionality -- they only contain bug fixes. When the stability of
the current release candidate is judged to be sufficient then that
release candidate will be released as the new stable release (e.g.,
2.2.0). At that time, the new stable release and the prior stable
release are those that are supported.
What does it mean for a major release to be
supported? It means that I will answer
questions about the release and that if a bug is found, I will fix the
bug and include the fix in the next minor release.
Between minor releases, bug fixes will continue to be made
available through the Errata page for
each major release.
Additionally, bug fixes may be made available in the form of a
patch release. Patch releases have four-level
identifications (e.g., 4.0.6.1); the first three identify the minor
release and the fourth identifies the patch level.
We are currently waiving the two major release rule and are
supporting three major releases — the currently-supported major releases
are 3.2.x, 3.4.x and 4.0.x.
Old Release Model
This release model described above was adopted on 2004-07-03 and
modified 2004-07-21. Prior to 2004-07-03, a different release model was
followed. Highlights of that model were:
Releases were numbered in a manner similar to the current
release model.
Major new functionality was added in minor releases of the
current major release. There was no concept of Stable vs Development
major releases.
Bug fix only releases were always against the last minor release
of a major release and had identifications of the form
x.y.zX (e.g., 2.0.3c) where
X=1,b,c,... . Consequently, if a user required a
bug fix but was not running the last minor release of the associated
major release then it might be necessary to accept major new
functionality along with the bug fix.