-
-
Notifications
You must be signed in to change notification settings - Fork 40
Release preparation
There exist two kinds of releases: bugfix releases, with no new features, and plain releases, with new features, refactorings, etc.
The current situation is, that the change log is maintained at two places within the WhereYouGo repository:
-
/src/main/assets/news.xml
: Contains the changelog which is shown within the app -
/_data/changelog_*.txt
: Contains the changelog, which presumably was intended to be transferred to a crowd translation platform and resulting translations to be used in the Google Play changelog while publishing. This process however is not yet established, so these files are not actively used by now.
In fact, all releases are cut from the release
branch. When we want to do a feature-full release, we first fast-forward the release
branch to the head of the master
branch. Note that since release
is always merged back into master
, we have a guarantee that merging master
into release
will result into a fast-forward operation.
$ git checkout release
$ git merge --ff-only origin/master
Before doing a release, we have to ensure that:
- the developers are ok with it, as they may be aware of some lingering issues that don't show during the tests but may become problematic on the field;
- the Q&A team is ok with it, as they may have started to document oddities or critical bugs that developers are not yet aware of;
- the tests are all green.
WhereYouGo currently uses a two step process of app signing:
The needed keys for initial app signing are stored on our CI server. When building the release on the CI server they will be used automatically.
The Google Play console is configured to only accept APK files signed with these keys and will replace the key by the final key used to publish the app when uploading the APK on the Google Play console.
The reason for this two stepped approach is, that the final key is handled by a third party (Menion Assam, the original author) for historic reasons and the c:geo team does not have direct access to it.
Important note: Due to the fact, that keys on CI and on Google Play are different, there is no clean upgrade path between the official Google Play version and APK files created by our CI. This means, that installing nightly or other versions compiled by our CI can not be installed on top of the official version, but uninstall and reinstall has to be done to change between those versions.
A comprehensive checklist for releases can be found here