Skip to content

Releases

Leandro Matayoshi edited this page May 6, 2020 · 23 revisions

Overview

Releases of new versions of Maap Collector are published according to lifecycles of projects (https://github.com/instedd/maap-collector/projects), usually grouping a couple of features and bug fixes on each iteration. Each release comprises a group of files required for the installation of Maap Collector in both Windows and MacOs environments, which are generated on each Travis build. Release logic is contained in release.js file.

Each release is named following Semantic Versioning technique (<Major.Minor.Patch> format).

Drafts

Commits pushed into master branch trigger a build and resulting files are pushed into the most recent Draft, which is named after package.json version number. This process will repeat indefinitely until either the Draft is published (released) or the version field is updated. In the latter case, a new Draft for that now-most-recent version is created, and following commits in master will start updating the content of the new Draft.

Publishing a Release

A release of a particular version is published after being tested, once the objectives for the current iteration are accomplished. From that moment on, the release is frozen. New commits into master branch won't affect the contents of the release, even if the name of the release matches the current version (pointed out by package.json).

Releasing a new country instance

Instances to be built are listed in environment.js file. To add a new country instance, so a new Draft for that instance is created on next commit, simply add it to the list.

Included Files

Currently, the following files are being generated during each build:

  • latest-mac.yml
  • latest.yml
  • maap-collector-[instance]-[release-version]-[instance].dmg
  • maap-collector-[instance]-[release-version]-[instance].dmg.blockmap
  • maap-collector-[instance]-[release-version]-[instance].msi
  • maap-collector-[instance]-setup-[release-version]-[instance].exe
  • maap-collector-[instance]-setup-[release-version]-[instance].exe.blockmap

At the moment, MacOS files are being used for testing purposes only, whereas Windows files are being used in productive instances. Actual application installers are in .dmg, .msi and .exe files.

Caveats & Known Issues

Currently, whenever a new commit pushed into master branch, two Drafts named after the aforementioned version is created for each country instance: One containing the installers and files, and the other empty. We are handling this situation by manually deleting the empty ones.

Sometimes happens that even though the build process for a particular country instance finishes successfully on Travis, for some reason its files aren't updated. We are handling this situation by checking the files manually, by installing the app on both Windows and MacOs and verifying that the changes were successfully applied. Though it's pretty annoying, it's the best trade-off we've found until this moment in terms of gain vs cost. TODO: improve Travis builds reliability.

Clone this wiki locally