Discover the release status

The current release status of Serval Mesh is expressed using branches and tags in the Batphone Git repository. This is the authoritative source of the release status; not Google Play, nor Dreamhost FTP, nor the Serval Mesh wiki page, nor mailing list announcements.

The examples below are performed on a copy (“clone”) of the repository on any developer's workstation (laptop) and do not affect the release in any way.

Fetch up-to-date source code

All the following examples are performed on an up-to-date clone of the Batphone Git repository.

Discover most recent finished release

The following Git query will reveal the the version number of the most recent finished release:

$ git describe --match '[0-9].*' origin/master

This should match the version available from Google Play and the highest version available from Dreamhost FTP. If it does not, consult a senior developer.

Discover release branch

The following Git query will reveal the current release branch, if any:

$ git branch --remote | grep /release-
  • If there is no release branch, then no release is in progress — Serval Mesh is between releases.
  • If there is exactly one release branch, then the Release procedure is in progress. The following queries (below) will reveal the current state of the release process.
  • If there is more than one release branch, then either the older branch was not deleted properly, or two releases are in progress. Consult a senior developer.

Check out release branch

If there is a release branch, then the following Git command will check it out and bring it up to date:

$ git checkout release-0.92
Switched to branch 'release-0.92'
$ git reset --hard origin/release-0.92
HEAD is now at 789ef2a Some commit message appears here

Discover release progress

After checking out the release branch (see above), the following Git describe query will reveal what stage the Release procedure is currently up to:

$ git branch
$ git describe
  • 0.92-pre3 or 0.92-pre3-26-g987ea6f (in general, X.Y-pre[N][-C-gXXXXXXX]) indicates that there is no release candidate yet, so the Release procedure has just started.
  • 0.92.RC4 (in general, X.Y.RCN) means that the branch head is an unmodified release candidate (the N-th one). The X.Y version number should match the release branch name. Git cannot reveal whether the candidate has been tested. The only way to tell whether the candidate is suitable for release is to consult the developers performing the release.
  • 0.92.RC4-3-g456ef7a (in general, X.Y.RCN-C-gXXXXXXX) indicates that there have been some modifications (C commits) since the latest release candidate (the N-th one), so the candidate is not suitable for release. Another release candidate (N+1) will need to be prepared and tested.
  • 0.91 (the version of the most recent finished release; see above) indicates that there has been no development work since the last release. In this case, a release branch should not exist — the Release procedure has been violated. Alert a senior developer.