Planetmint follows the Python form of Semantic Versioning (i.e. MAJOR.MINOR.PATCH), which is almost identical to regular semantic versioning, but there's no hyphen, e.g.
0.9.0for a typical final release4.5.2a1not4.5.2-a1for the first Alpha release3.4.5rc2not3.4.5-rc2for Release Candidate 2
Note 1: For Git tags (which are used to identify releases on GitHub), we append a v in front. For example, the Git tag for version 2.0.0a1 was v2.0.0a1.
We use 0.9 and 0.9.0 as example version and short-version values below. You should replace those with the correct values for your new version.
We follow PRP-1, which is our variant of C4, the Collective Code Construction Contract, so a release is just a tagged commit on the master branch, i.e. a label for a particular Git commit.
The following steps are what we do to release a new version of Planetmint Python Driver.
-
Create a pull request where you make the following changes:
- Update
CHANGELOG.md - In
planetmint-driver/__init__.py:- update
__version__to e.g.0.9.0(with no.devon the end)
- update
- In
pyproject.tomlupdate the version and maybe update the development status item in theclassifierslist. For example, one allowed value is"Development Status :: 5 - Production/Stable". The allowed values are listed at pypi.python.org. - In
README.rstupdate theCompatibility Matrix
- Update
-
Wait for all the tests to pass!
-
Merge the pull request into the
masterbranch. -
Go to the planetmint/planetmint-driver Releases page on GitHub and click the "Draft a new release" button.
-
Fill in the details:
- Tag version: version number preceded by
v, e.g.v0.9.1 - Target: the last commit that was just merged. In other words, that commit will get a Git tag with the value given for tag version above.
- Title: Same as tag version above, e.g
v0.9.1 - Description: The body of the changelog entry (Added, Changed, etc.)
- Tag version: version number preceded by
-
Click "Publish release" to publish the release on GitHub.
-
On your local computer, make sure you're on the
masterbranch and that it's up-to-date with themasterbranch in the planetmint/planetmint-driver repository (e.g.git pull upstream). We're going to use that to push a newplanetmint-driverpackage to PyPI. -
Make sure you have a
~/.pypircfile containing credentials for PyPI or just enter them manually. -
Do
make releaseto build and publish the newplanetmint-driverpackage on PyPI. For this step you need to havetwineinstalled. If you get an error likeMakefile:116: recipe for target 'clean-pyc' failedthen try doingsudo chown -R $(whoami):$(whoami) . -
Log in to readthedocs.org and go to the Planetmint Python Driver project, then:
- Click on "Builds", select "latest" from the drop-down menu, then click the "Build Version:" button.
- Wait for the build of "latest" to finish. This can take a few minutes.
- Go to Admin --> Advanced Settings
and make sure that "Default branch:" (i.e. what "latest" points to)
is set to the new release's tag, e.g.
v0.9.1. (It won't be an option if you didn't wait for the build of "latest" to finish.) Then scroll to the bottom and click "Save". - Go to Admin --> Versions
and under Choose Active Versions, do these things:
- Make sure that the new version's tag is "Active" and "Public"
- Make sure the stable branch is not active.
- Scroll to the bottom of the page and click "Save".
Congratulations, you have released a new version of Planetmint Python Driver!
Update the Planetmint Python Driver version in the acceptance/python/Dockerfile in the Planetmint Server.