CHICKEN release policy
- The CHICKEN core system is maintained in a git repository as described in http://code.call-cc.org where the master branch represents the official development status.
- Bugfixes are normally applied directly to the master branch. Changes that might take longer and or are particularly disruptive may be done on separate branches and merged as soon as the work is considered stable enough to use.
- In more or less regular intervals, the patch-level of the release number will be increased (for example "4.5.0" -> "4.5.1") and a tag identical to the release number and a prerelease-counter ("4.5.1pre1") will be made on master. Once tagged, a development snapshot is automatically generated and placed in dev-snapshots. Usually, these snapshots and any changes made since the last release or snapshot (whatever is more recent) will be announced on the "chicken-users" mailing list.
- The development snapshot is untested and not guaranteed to work. It is not an official CHICKEN release.
- If enough changes for a regular release have accumulated in the master branch, it is merged into the release branch. A tag made on the release branch will trigger automatic generation of a release tarball.
- Before a release, a "release candidate" snapshot will be made to give everybody the chance of giving it a try, assuming that this distribution represents the next official release. The snapshot is given a tag of the form "A.B.CrcD", D starting from 1... and so on.
- Crucial bug fixes may be back-ported to previous releases or development snapshots, by cherry-picking the patch onto a branch that grows from the release tag. When it is deemed necessary, a "bug fix release" will be produced by appending .1 to the version number for the first such bug fix release on the branch, .2 for the second, and so on. Note that this is currently not done due to lack of resources.
- The release tarballs are kept in the releases directory, and the URL to a release follows a fixed per-release pattern, e.g.:
- http://code.call-cc.org/releases/3.4.5/NEWS
- http://code.call-cc.org/releases/3.4.5/chicken-3.4.5.tar.gz
- The URL http://code.call-cc.org/releases/current always points to the latest official release of CHICKEN.
Therefore, CHICKEN version numbers can be interpreted like so:
- A.B.C: Stable release
- A.B.CpreD: Development snapshot of work towards A.B.C or A.B.0, with exciting new features, and most likely new bugs.
- A.B.CrcD: Preparatory pre-release snapshot, expected to represent the next official release.
- A.B.C.D: A release A.B.C plus backported critical bugfixes ("stability" branch).
A final note: this document describes a convention, not a formal process. We may skip particular steps if deemed unnecessary or the effort is not worth it.