How to Create a new Release

This document is intended for PHAC-NML developers for use when creating a new official release.

Please follow all steps to ensure the release is the same across github / windows build / pypi

Git Release

Changes

Double check all the code in this release has been merged into development, and the CHANGELOG.md file reflects these changes with an appropriate Version Number update.

Make sure your local development branch is up to date with origin

Update Version Number

Execute the following command to update version number in the various build files

./scripts/update.sh <X.Y.Z>

For Major updates, that completely break compatibility, update to a new X version

For Feature Updates, update to a new Y version

For Bug Fixes and Minor Updates, update to a new Z version

Create a new tag

Create a new tag with the same version number as above

git tag X.Y.Z

Verify the tag was created

git tag

Push tag up to origin

git push origin X.Y.Z

Create the release on GitHub

On the Releases page, click "Draft a new release"

In the box that says "Tag version", enter in the tag number you created above. It should indicate that the tag exists.

Give an appropriate release title.

Copy and paste the raw text from your CHANGELOG.md for this release into the description box.

Move onto the Builds section to attach binaries before publishing release.

Builds

Windows Build

If you do not already have nsis installed, install it with the following command

sudo apt install nsis

Create a new windows build by running the following command

make windows

This will create a new installer in the folder build/nsis/ with the name IRIDA_Uploader_GUI_X.Y.Z.exe

Attach this file to the release and publish.

PyPi Release

Before starting, make sure your registered pypi.org account has write access to https://pypi.org/project/iridauploader/

Ensure you have twine installed

python3 -m pip install --user --upgrade twine

Build the wheel and tar.gz files to upload to pypi

make wheel

They will be made in the dist/ directory

Then upload them to pypi

python3 -m twine upload dist/*

Treat yourself to a coffee break (It will take 10-20 minutes until your files will be able to by pulled via pip)

Test pulling your new files

Leave the git repo, and create a new virtual environment and test your pypi build

python3 -m venv testenv
source testenv/bin/activate
pip install iridauploader=X.Y.Z

If everything looks to be in order, your PyPi release is complete.

If there are errors that occur during installation, you will need to correct the error, bump the version number for the bug fix and start from the beginning.

Finally

Pull development into main and push to origin

git checkout main
git pull origin main
git pull origin development
git push origin main

Congratulations, you have successfully completed a new release of the IRIDA Uploader.