From BZFlagWiki
Revision as of 06:45, 21 November 2007 by Learner (Talk | contribs)

Jump to: navigation, search

BZFlag has undergone several different numbering schemes over the years (decades) that can be roughly categorized as follows: the 1.7 alphabet soup series, the 1.10 through 2.0 series, and the "new" triplet system currently in place. The information in follwoing regarding BZFlag's versioning scheme pertains to the "new" triplet system currently in use.

Ever since the unreleased 1.9 development revision, BZFlag has been using a MAJOR.MINOR.PATCH version numbering scheme that is familiar to many open source software projects. In this triplet version numbering scheme, the MAJOR number implies predominant backwards software compatibility; the MINOR number represents feature additions and enhancements; and the PATCH number is iterated releases of that given MAJOR.MINOR version. Each number in that triplet is independent and is not necessarily just a single digit for each either (e.g., 2.10 is not the same as 2.1.0 nor 2.0.10). For brevity, releases since 2.0 can generally be referred to only using the MAJOR.MINOR revision, leaving the PATCH version number off for brevity.

In order to "encourage" upgrades and facilitate making enhancements and bug fixes to the game, BZFlag's developers (intentionally) break the game protocol from time to time where new clients are released that will not work with previous releases. Starting with BZFlag version 2.0, the MAJOR number in BZFlag's versioning triplet represents backwards-compatibility. That is to say that all clients with a version number starting with a 2 will (only) work with others of that 2 series.

Development of a new MAJOR version of BZFlag occurs as the previous MAJOR version number's 99th MINOR revision. (e.g., 2.99 becomes 3.0, 3.99 becomes 4.0) The 99th development revision is necessarily treated special and generally not compatible with anything but itself.

As compatible releases and enhancements are made to the game, they are released with an even-numbered MINOR version number (e.g. 3.0 or 2.2 or 3.2.6 etc). Versions of the game with an odd-numbered MINOR version number represents development-only versions that should not be used by non-developers under any circumstances (i.e., you're on your own, no support or guarantees are offered). Again, revisions with an odd second number represent developer revisions and those with an even second number are the public revisions.

The PATCH number in the version triplet counts publicly posted revisions for a given MAJOR.MINOR version. Since the BZFlag developers do intentionally provide (pre-release, alpha, beta) versions the game before a final post is made, those releases merely have the PATCH number incremented. Basically, the PATCH number can be looked at as how many times files have been publicly posted for a given MAJOR.MINOR version.

Labels and comments that a given release is an RC (Release Candidate) version or that it's a beta or an alpha release are merely inteded to describe the stability of a given version but are not part of the version itself. Lower patch numbers on a developer revision (where the MINOR number is an odd-number) tend to imply less stability whereas higher patch numbers tend to imply greater stability. On non-developer releases, the number is generally only incremented and reposted if there was something deficient with the version already posted.

Revision number examples

2.99.0 is a developer revision that will become the next 3.0 major release. Only developers should be using this revision.

2.99.27 is the 28th developer revision of 2.99, perhaps approaching some sort of beta or release-candidate status for the 3.0 release. Only developers and testers should be using this revision.

3.0.0 is a new release of a BZFlag client that is incompatible with all previous versions. This revision is for everyone.

3.0.9 is the 10th release of the 3.0 client, only providing minor bug and build fixes. This revision is for everyone.

3.1.0 is a developer revision of the 3 series, compatible with other version 3 clients and a pre-release candidate for the 3.2 release. Only developers should be using this revision.

3.12.4 is the 5th patch update of the 3.12 public release intended for everyone. There were six compatible versions released prior to this version: 3.0, 3.2, 3.4, 3.6, 3.8, and 3.10

3.2.5 is the 6th publicly posted release of version 3.2, serving enhanced functionality over the previous 3.0 clients while remaining compatible with other 3 series clients. This revision is for everyone.

3.99.0 is a developer revision that will become the next 4.0 major release. Only developers should be using this revision

Released versions of BZFlag

There are currently 34 open source versions of BZFlag. Versions earlier then 1.7c-X were closed source.

The versions in chronological order are;