Skip to content

Releases and dependencies updates

Jaillot Vincent edited this page Oct 10, 2023 · 6 revisions

Releases and dependencies updates

A document about the release and dependencies update timelines and about how to make a release.

Releases and packages update timelines

  • One release every 2 month (after each planification of the work for the next two month for the core committers)
  • Dependencies updates:
    • Dependencies update right after the release
    • Dependencies update ~1 month after the release (when a new threejs version is released)
  • Core committers take it in turns to make releases

Releases process

Submit a release

To submit a release, one needs to :

  • checkout from iTowns' master branch on a new local branch ;
  • run npm run bump locally ;
  • run npm install ; (to increase itowns version number in package-lock.json)
  • submit the automatically generated commit - without changing its name - in a pull request.

The bump script is the following :

if [ -z $npm_config_level ]; then grunt bump:minor; else grunt bump:$npm_config_level; fi && npm run changelog && git add -A && git commit --ammend --no-edit"

It :

  • uses grunt-bump framework to change the version number in package.json, package-lock.json and src/Main.js. These changes are saved in a commit named release vX.X.X. By default, a minor version update is made. It can be changed by setting an environment variable named npm_config_level prior to running bump script. grunt-bump documentation provides the supported values for npm_config_level. For instance, to push a major version bump, the following should be run :
export npm_config_level="major"
npm run bump
  • uses conventional-changelog-cli to update changelog.md file with all commits pushed since the latest published version. The configuration file for this framework is at config/conventionalChangelog/config.js. The modifications to changelog.md are added to the previously created commit.

Publish a release

The publication of a release is a three independent steps process, that is automated in the integration/deployment script. This process is launched each time a commit with a name like release vX.X.X (like the one automatically generated when running the bump script) is merged into master branch.

The three steps are :

These three steps should not require any human action under normal conditions, with the exception of the third one (the publication of a GitHub release). When publishing a release, GitHub describes the changes it brings with all that is contained within changelog.md file. Yet this files contains changes for all iTowns previous versions. Therefore, the changelog published on iTowns' GitHub releases page should be manually edited to remove changes from preceding versions.