-
Notifications
You must be signed in to change notification settings - Fork 122
Release Process
For the sake of generality, assume an environment variable VERSION
of the form <MAJOR>.<MINOR>.<PATCH>
.
git fetch upstream
git checkout upstream/master -b rel/$VERSION
tools/update_changes.sh $VERSION
Inspect the git diff
and manually make changes as needed. Changelog entries can often be improved, and release notes added. Sort the changelog entries by rough order of how much a user should care: FIX
, ENH
, DOC
, STY
, MNT
, CI
.
git add CHANGELOG.md
git commit -m 'DOC: Update changelog'
tools/prep_zenodo.py
For Zenodo, names should be in Last, First
ordering. If a contributor uses multiple email addresses, you may need to update the .mailmap
, which affects the git shortlog
outputs and thus the Zenodo ordering.
If there are any mailmap changes, revert the Zenodo JSON and re-run:
git checkout .zenodo.json
tools/prep_zenodo.py
When satisfied, commit:
git add .zenodo.json .mailmap
git commit -m 'MNT: Update Zenodo, mailmap'
git push -u upstream rel/$VERSION
Open a new PR: https://github.com/bids-standard/pybids/pull/new/rel/$VERSION
Here is a good place to alert new contributors that you're adding them to the Zenodo, and give them a chance to object or add their affiliation/ORCID.
Once the PR is finalized, make sure the changelog date is still valid, and merge.
Fetch upstream and tag upstream/master
:
git fetch upstream
git tag -a -s $VERSION upstream/master
-a
is required to make it an annotated tag and make git-describe
, and other tools that depend on it, happy.
-s
signs the tag with a GPG key. This is optional.
Use the changelog (minus the markdown syntax) as the tag message. e.g.,
Version 0.10.0 (December 03, 2019)
New feature release in the 0.10.x series.
This release removes Python 2 support.
* ENH: Helpful error for db argument mismatch, and add classmethod load_from_db (#547)
* ENH: Add Resample transformation (#373)
* ENH: Save BIDSLayout + Derivatives to folder (with init arguments) (#540)
* ENH: Adds support for NONE and ANY query Enums (#542)
* ENH: Transformation-related improvements (#541)
* ENH: FEMA contrasts (#520)
* STY: Minor PEP8 Fixes (#545)
* MNT: Various (#543)
* MNT: Remove Python 2.7 support (#524)
* CI: Configure Circle Artifact Redirector (#544)
Push the tag:
git push upstream $VERSION
Draft a new release, and add the version as both the tag version and the release title.
Split the changelog into a description, like:
## Release Notes
New feature release in the 0.10.x series.
This release removes Python 2 support.
## Changes
* ENH: Helpful error for db argument mismatch, and add classmethod load_from_db (#547)
* ENH: Add Resample transformation (#373)
* ENH: Save BIDSLayout + Derivatives to folder (with init arguments) (#540)
* ENH: Adds support for NONE and ANY query Enums (#542)
* ENH: Transformation-related improvements (#541)
* ENH: FEMA contrasts (#520)
* STY: Minor PEP8 Fixes (#545)
* MNT: Various (#543)
* MNT: Remove Python 2.7 support (#524)
* CI: Configure Circle Artifact Redirector (#544)
After a couple minutes, the Zenodo page will update, and you can click on the badge to get the Markdown.
Edit the release and add it before ## Release Notes
.