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.