-
Notifications
You must be signed in to change notification settings - Fork 49
Creating a Release
Joshua A. Anderson edited this page Oct 28, 2024
·
19 revisions
- Review open pull requests, issues, and milestones. Before making a release, every issue or pull request assigned to that release version should be completed or moved to a later milestone. Additionally, all resolved issues and merged pull requests since the last release should be assigned to the current milestone. Some exceptions can be made for simplicity, e.g. automated updates from Dependabot don't need to be assigned to the milestone.
- Create release branch named
release/X.Y.Z
, numbered according to Semantic Versioning (see commands below). - Finalize changelog entries (review recent commits and pull requests to ensure completeness).
- The changelog headers are
Added
,Fixed
,Changed
,Deprecated
, andRemoved
(in that order).
- The changelog headers are
- Update version and release date in changelog from
next
tovX.Y.Z - YYYY-MM-DD
. - Update git submodules in the
extern
directory (code example below). - Update freud-examples submodule in
doc/source/gettingstarted/examples
(code example below).- All significant new features should have examples.
- Review Python version support (such as adding CI builds for new versions, dropping old versions no sooner than allowed by NEP 29).
- Make sure that installation instructions are up to date (check dependencies).
- Update the pinned dependencies in
doc/readthedocs-env.yml
to the latest versions and ensure that the documentation builds as expected on readthedocs.
- Merge main into release branch.
- Bump version with
bumpversion [patch|minor|major]
command. Bumpversion is configured NOT to make a tag. The tag will be made when the GitHub release is published. - Push release branch.
- Create a pull request for the release branch.
- Merge the release branch's pull request into
main
. - Switch to the main branch, tag the release, and push the tag.
- Update conda-forge feedstock. A pull request will be automatically created by the conda-forge autotick bot within a few hours. However, the recipe must be manually updated if dependencies have changed since the last release.
- Verify that ReadTheDocs, PyPI, and conda-forge have been updated to the newest version.
- conda-forge may take 1 hour or so after the feedstock PR is merged for the CDN to update.
- Notify the Glotzer group via Slack and post the changelog on the freud-users Google Group. Follow the template from previous release notifications.
git fetch origin
git checkout main
git pull
git switch -c release/X.Y.Z
git push -u origin release/X.Y.Z
Example for the freud-examples
submodule:
# Update freud-examples submodule:
cd doc/source/gettingstarted/examples
git pull
git checkout main
# Then go to the repository root and commit the changes.