GeoServer Branches and Release Schedule¶
GeoServer numbering scheme is as follows: version.major.minor[.fix] where fix releases are performed on rare occasions when a minor release contains a nasty bug which needs to be fixed immediately or when a minor release comes out faulty.
Release Schedule¶
GeoServer releases follow a time boxed model in which releases occur at regular predictable frequencies rather than at ad-hoc dates. In a time boxed the software is released at predictable frequencies with whatever fixes, improvements, and feature are available at the time of release. This differs from the previous feature based model in which releases occur when a certain number of key features have accumulated.
To compensate for the inherent unpredictability of the release contents the model includes strict rules about what type of development is appropriate during specific periods of a branches life cycle. These rules include a suitably long hardening period for the unstable branch to mature and eventually become stable.
Release branches¶
At any given time GeoServer is undergoing two to three main branches of development.
- The stable branch in which only bug fixing, and smaller scale feature development
- The unstable (master) branch in which more experimental and larger scale feature development occurs
- The maintenance branch which was the previously stable branch that is nearing end of life and sees only the most stable development, typically mostly bug fixes.
Note
The stable branch is meant for bug fixes and new features that do not affect the GeoServer API or significantly affect the stability. A PSC vote (with eventual proposal) can be called in case a significant new feature or change needs to be back ported to the stable branch overriding the above definition of stable branch. If, for any reason, a release is delayed the next release will be rescheduled 30 days after the last release.
Here below you can see a representation of this schedule.
Release cycle¶
On the stable branches release follow a monthly cycle in a which a new minor release occurs once a month. On the unstable branch releases follow a 6 month cycle in which a new major release occurs once every 6 months.
Every month, on the same day, a new release is issued from the stable branch using whatever revision of GeoServer/Geotools passed the last CITE tests. The release is meant to improve upon the previous release in both functionality and stability, so unless the project steering committee determines reasons to block the release it will happen regardless of what bug reports are in Jira. Pending resourcing, they can be fixed in the next release that comes out one month later.
At any given point in time there are two branches under the development, the stable branch and the master/unstable branch. Once every six months when the creation of a new stable branch occurs a third active maintenance branch is created. This branch is kept up to date with the stable for a period of one-month after which the final release on that branch is created. That said there is nothing against a developer continuing to maintain the branch or creating release from it, it is just not expected.
The current release schedule is kept up-to-date by the developers and can be found on this page.