CHICKEN release policy

  1. 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.
  2. 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.
  3. 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 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.
  4. The development snapshot is untested and not guaranteed to work. It is not an official CHICKEN release.
  5. If enough changes for a regular release have accumulated in the master branch, it is merged into the prerelease branch and from there into the release branch. A tag made on the release branch will trigger automatic generation of a release tarball.
  6. Last-minute fixes to a release and updating the version number can so take place in prerelease without getting disturbed by development in the other, more active branches.
  7. 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.
  8. 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
  9. 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:

  1. A.B.0 (often written as A.B for short): Stable release
  2. A.B.0.X: Even more stable release with bug fixes added
  3. A.B.C (C <> 0): Development snapshot of work towards A.B+1 or A+1.0, with exciting new features, and most likely new bugs.
  4. A.B.C.X (C <> 0): Development snapshot A.B.C plus some bug fixes