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.
All the following examples are performed on an up-to-date clone of the Batphone Git repository.
The following Git query will reveal the the version number of the most recent finished release:
$ git describe --match '[0-9].*' origin/master 0.91 $
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.
The following Git query will reveal the current release branch, if any:
$ git branch --remote | grep /release- origin/release-0.92 $
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 $
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 release-0.92 $ git describe 0.92.RC4 $
0.92-pre3
or 0.92-pre3-26-g987ea6f
(in general, X.
Y-pre
[N][-
C-g
XXXXXXX]) indicates that there is no release candidate yet, so the Release procedure has just started.0.92.RC4
(in general, X.
Y.RC
N) 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.RC
N-
C-g
XXXXXXX) 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.92
(the version of the release) indicates that the release is published. If the APKs at Google Play and Dreamhost FTP do not have this version number, then the Publish the final build step has not been completed. If they are, the release branch should have been deleted, ie, the Release procedure has not been observed. In either case, alert a senior developer.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.