Skip to content

Release preparation

Lars edited this page Mar 8, 2020 · 2 revisions

There exist two kinds of releases: bugfix releases, with no new features, and plain releases, with new features, refactorings, etc.

Maintaining the changelog between releases

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.

Preparing for a feature release

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

Release procedure

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.

Handling certificates for publishing on Google Play

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.

Checklist for releases:

A comprehensive checklist for releases can be found here