-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
How to make a patch release
Eric Larson edited this page Aug 10, 2026
·
8 revisions
-
Create a new patch release section in
doc/changes/vX.Y.rstonmaint/X.Ybranch:.. _changes_X_Y_Z+1: Version X.Y.Z+1 (YYYY-MM-DD) --------------------------
-
Populate the contents using
towncrierstubs that (should) have been backported automatically, e.g. copy the results of this under the new heading:towncrier build
- If the most recent commit to the stable branch wasn't deployed, push an empty commit to deploy it:
git commit --allow-empty -m '[circle deploy]'. Check CircleCI that it succeeds (use the branch dropdown to select the appropriate branch, e.g.,maint/1.2).
- In
pyproject.tomlchangeversion = "X.Y.Z"toX.Y.Z+1
These files are generated by MNE-Tools, from pyproject.toml plus the extra metadata in .extended_metadata.yaml. They should only be regenerated at release time.
- Install the generators and run them from the repository root, and stage the results:
Both commands take the release version as a required argument, and default to today's date; pass
git clone --depth 1 https://github.com/mne-tools/mne-tools.git /tmp/mne-tools pip install -e /tmp/mne-tools python -m mne_tools.generate_codemeta . X.Y.Z python -m mne_tools.generate_citation . X.Y.Z git add codemeta.json CITATION.cff
--date-modified YYYY-MM-DD/--release-date YYYY-MM-DDto override.
- If you have been committing along the way, squash your commits. Otherwise commit all changes made so far
- Push to
upstream maint/X.Y(or merge in your "prep for patch release" PR)
- Use the GitHub feature "Releases" to make a new release. Use
vX.Y.Zfor all fields (version number, name, description), otherwise they get auto-populated with annoying things. The "target" of the release should bemaint/X.Y.
This is taken care of by .github/workflows/release.yml.
- Update conda-forge/mne-feedstock. This will eventually happen automatically (example here, but you can speed things up by opening a manual pull request. At a minimum, you must update
versionandsha256inrecipe/meta.yamland setbuildto0if it's not already; other additions will depend on what has changed for the project (e.g., minimum dependency versions). You can get the sha sum fromsha256 dist/mne-X.Y.Z.tar.gz(with X.Y.Z subsituted for the real version number, of course).
- Update MNE Installers. Here is an example PR
- Update documentation links to installers. Change button links
doc/install/installers.rstto point to the new installer files. Make sure to update links for all 3 platforms. Push this change to bothmaint/X.Yandmain, with commit message[circle deploy].