-
Notifications
You must be signed in to change notification settings - Fork 303
Releases and dependencies updates
A document about the release and dependencies update timelines and about how to make a release.
- 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
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 inpackage-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 namedrelease vX.X.X
. By default, a minor version update is made. It can be changed by setting an environment variable namednpm_config_level
prior to runningbump
script.grunt-bump
documentation provides the supported values fornpm_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 updatechangelog.md
file with all commits pushed since the latest published version. The configuration file for this framework is atconfig/conventionalChangelog/config.js
. The modifications tochangelog.md
are added to the previously created commit.
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 :
- The publication of iTowns package in npm public registry ;
- The deployment of iTowns package in itowns examples and documentation website ;
- The creation of a GitHub release published on iTowns' GitHub releases page with the appropriate tag.
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.