-
Notifications
You must be signed in to change notification settings - Fork 19
Cutting a Release
Igor Pisarev edited this page Feb 18, 2020
·
2 revisions
Cutting a Paintera release is fairly simple but it requires a few manual steps to also deploy the Paintera command through PyPI and conda for easy installation and use. In addition to the regular installation requirements (JDK8, JavaFX8, Maven), cutting a release requires:
- scijava-scripts
- kscript (optional)
- paintera push access to master
- paintera-cmd push access to master
- python3
- twine
- paintera on PyPI write access. Request access from the current owners as listed on the project page. Currently, the owners are @igorpisarev and @hanslovsky
- conda-forge paintera-feedstock write access
I recommend to follow the following protocol:
- Checkout and pull the latest saalfeldlab/paintera master
- Run
./create-changelog.ktsto create the change log and a suggested release version. Store the changelog in a file so it can be attached to the release on GitHub later. Modify the changelog as needed. This step is optional but I highly recommend it. - Run scijava-scripts/release-version.sh in the Paintera source directory. Use the version suggested by (2) if appropriate or determine an appropriate version otherwise. The script will build locally and then push a few commits to release the new version and bump the development version. Jars for the release and the new SNAPSHOT will be uploaded to the SciJava maven repository automatically.
- If (3) was successful, navigate to releases and update the release log with (2) if available.
- Modify to use the appropriate version and run
./generate-bash-completion.ktsto generate a bash completion file and attach to the release (4). This is optional. - Checkout and pull the latest saalfeldlab/paintera-cmd master
- Modify
_paintera_versioninpaintera/version.pyto the current release. Replace'dev0'with''for the release version. - Test locally, i.e. run
pip install --user .from the project root directory and check the output ofpaintera --version. Optionally, also do a quick sanity check with a new or existing project. Thepainteracommand will be located in$HOME/.local/bin. - Create a source distribution:
python setup.py sdist - Upload source distribution to PyPI:
twine upload dist/paintera-$version.tar.gz - Make a release commit with a tag and push
- Bump to the next development version
- Confirm that paintera can be installed from PyPI:
pip uninstall paintera-
pip install painteraand repeat the tests from (8)
- Once conda-forge auto-detects the PyPI release and creates a pull request to the paintera-feedstock, confirm that the changes look ok (usually, only the changes to the
meta.yamlfiles are relevant) and merge.
The procedure for the paintera-conversion-helper are pretty much the same but you will need to use these repositories instead:
- paintera-conversion-helper-cmd
- paintera on PyPI
- conda-forge paintera-conversion-helper-feedstock. Optional steps (2) and (5) do not apply to a release of the Paintera Conversion Helper.