Skip to content

Releases

mariehbourget edited this page Oct 31, 2022 · 22 revisions

Version Number

The X.Y.Z version uses the semantic versioning convention: MAJOR.MINOR.PATCH.

MAJOR version: when there are major incompatible API changes

MINOR version: when there are minor API changes or new functionality in a backwards-compatible manner, or when there are alteration to Python's modules or data/binaries

PATCH version: when there are backwards-compatible bug fixes or enhancements, without alteration to Python's modules or data/binaries

Checklist for creating a new release

Steps on GitHub

  • Make sure all the relevant PRs have been milestone tagged as new release.
    • This means go to those closed PR and set their milestone to new release
    • You can do this in BULK by go to Pull Requests tab and sort closed PRs by NEWEST
    • You should omit closed draft PRs
  • Make sure that PRs labels are correct.

Steps on Dev Computer

  • You may want to do a new master git clone down because the below git clean step may nuke ALL .idea and other hidden folders related to IDE settings causing project bork in PyCharm.

  • Start off from latest master branch: git checkout master; git pull

  • Create and switch to temp branch, e.g. git checkout -b jca/vX.Y.Z

  • git clean -xdf: Gets rid of all the files that are not part of the git repos, incl. the ones in .gitignore (that's the "x" flag), so we get a "clean" build.

    • WARNING: if your venv folder is within the repo, it will get removed too. Worse still, if you have that venv activated while typing that out, it will result in a borked venv. Best to execute the above command when either using conda or not activated venv
    • WARNING: this will also corrupt your .idea folder related to the PyCharm project settings so you MAY need to re-setup the project.
  • Update CHANGES.md using changelog, by running the following commands and then copy/pasting the content of the output file changelogXXX.md. Make sure you have installed Neuropoly Changelog as instructioned from here in neuropoly/changelog.

    changelog ivadomed/ivadomed
    
    • YOU MAY receive warnings about PR without labels like WARNING Pull request not labeled: https://github.com/ivadomed/ivadomed/pull/748. DO make the effort to review them and actually provide the appropriate labels.
  • The newly generated file is likely called ivadomend_ivaodomend_changelog.XX.md. Once you finished copying the content of this file to the CHANGE.md (i.e. previous step), DO NOT commit this file. discard/delete this file and ensure this is not going to be part of your PR.

  • Assign the new release version in ivadomed/version.txt

  • Specify the new release version in the CHANGES.md file as well.

  • Commit and push your changes, then create a pull request (on GitHub) to Master branch from your branch titled Release vX.Y.Z

Steps on GitHub

  • Under Milestones (https://github.com/ivadomed/ivadomed/milestones), rename new release to vX.Y.Z and close this release.

  • Open a new milestone called new release for the next release.

  • WAIT for the above PR which update the changelog to be accepted and reviewed BEFORE making the GitHub release below!

  • On GitHub/releases: create new release (new tag will be created automatically)

    • Tag name: vX.Y.Z
    • Target: master
    • Name of release: "ivadomed vX.Y.Z"
    • Description: Copy/paste the following:
      [Release notes and Changelog](https://github.com/ivadomed/ivadomed/blob/master/CHANGES.md)
      
    • Check for typos; revise if necessary
    • Click the green "Publish" button
  • Advertise new release:

    • Link to Forum post on Mattermost BrainHack
    • TODO (forum)

Steps on PyPI

Make sure the GitHub Action pushed the new release on PyPI

❗ You can test publishing to PyPI by using a "release candidate" tag: set the tag name to vX.Y.Zrc1 and wait for it to upload. Use "vX.Y.Zrc2", "vX.Y.Zrc3", etc as needed.