-
-
Notifications
You must be signed in to change notification settings - Fork 149
Releases
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
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
tonew 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
- This means go to those closed PR and set their
- 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 thatvenv
activated while typing that out, it will result in a borkedvenv
. Best to execute the above command when either usingconda
or not activatedvenv
- WARNING: this will also corrupt your
.idea
folder related to the PyCharm project settings so you MAY need to re-setup the project.
- WARNING: if your
-
Update
CHANGES.md
using changelog, by running the following commands and then copy/pasting the content of the output filechangelogXXX.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.
- YOU MAY receive warnings about PR without labels like
-
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 titledRelease vX.Y.Z
Steps on GitHub
-
Under
Milestones
(https://github.com/ivadomed/ivadomed/milestones), rename new release tovX.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. |
---|