Doing a release¶
Doing a release of
lemur is now mostly automated and consists of the following steps:
Raise a PR to add the release date and summary in the Changelog.
Merge above PR and create a new Github release: set the tag starting with v, e.g., v0.9.0
The publish workflow uses the git tag to set the release version.
The following describes the manual release steps, which is now obsolete:
Manually Bumping the version number¶
The next step in doing a release is bumping the version number in the software.
Update the version number in
Set the release date in the Changelog.
Do a commit indicating this, and raise a pull request with this.
Wait for it to be merged.
Manually Performing the release¶
For creating the release, follow these steps (more details here)
Make sure you have the latest versions of setuptools and wheel installed:
python3 -m pip install --user --upgrade setuptools wheel
Now run this command from the same directory where setup.py is located:
python3 setup.py sdist bdist_wheel
Once completed it should generate two files in the dist directory:
$ ls dist/ lemur-0.8.0-py2.py3-none-any.whl lemur-0.8.0.tar.gz
In this step, the distribution will be uploaded. You’ll need to install Twine:
python3 -m pip install --user --upgrade twine
Once installed, run Twine to upload all of the archives under dist. Once installed, run Twine to upload all of the archives under dist:
python3 -m twine upload --repository pypi dist/*
The release should now be available on PyPI Lemur and a tag should be available in the repository.
Make sure to also make a github release which will pick up the latest version.
Verifying the release¶
You should verify that
pip install lemur works correctly:
>>> import lemur >>> lemur.__version__ '...'
Verify that this is the version you just released.
Update the version number to the next major (e.g.
Add new Changelog entry with next version and note that it is under active development
Send a pull request with these items
Check for any outstanding code undergoing a deprecation cycle by looking in
DeprecatedIn**definitions. If any exist open a ticket to increment them for the next release.