Auto tagging for release

Usage: $ ./tool/release/release.py [-h] [-y] <type>

Option:

  • [-y]
    • In interactive mode, it is for user to confirm. Could be used in sript.

Argument:

  • <type> Allowed release types are major, minor, patch, rc, stable.
    • major increments major version by 1.
    • minor increments minor version by 1.
    • patch increments patch version by 1.
    • rc increments rc version by 1.
    • stable removes rc version.

Example:

  1. Pre-releasing major will update from 2.1.1 to 3.0.0-rc0
run `$ ./tool/release/release.py major`
  1. The release candidate needs some revise, from 3.0.0-rc0 to 3.0.0-rc1
run `$ ./tool/release/release.py rc`
  1. The current version is released as stable, from 3.0.0-rc1 to 3.0.0
run `$ ./tool/release/release.py stable`

In the release.py

Internally, the script retrieve latest git tag by git describe, and increment the version accroding to semantic versioning, then push latest tag to remote master.

Next step

CI will automatically detect the update in master and build and release conda packages.