-
Notifications
You must be signed in to change notification settings - Fork 52
Creating a Release
Bradley Dice edited this page Oct 3, 2020
·
19 revisions
Once a release due date has been established, the feature-freeze date should be communicated to all developers. Usually about 1 week prior to release.
- Create release branch (see instructions 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.
- Update git submodules in the
extern
directory. - Update freud-examples submodule in
doc/source/gettingstarted/examples
.- All significant new features should have examples.
- Make sure that package requirements are consistent in
setup.py
andrequirements.txt
. - Make sure that Installation instructions are up to date (check dependencies).
- Reformat C++ with clang-format:
clang-format -style=file -i cpp/**/*
- Last tested with clang-format 12.0.0 for release 2.3.0.
- Update the contributors with
git shortlog -sne > contributors.txt
.- If any contributors are duplicated or misnamed, edit the
.mailmap
file.
- If any contributors are duplicated or misnamed, edit the
- Bump version with
bumpversion [patch|minor|major]
command. - Push release branch (but don't push tags yet!).
- You can check this setting by running
git config push.followTags
. Make sure it'sfalse
, or else tags will be pushed automatically.
- You can check this setting by running
- Create a pull request for the release branch.
- Check TestPyPI package builds and review README.
- Push the new tag with
git push origin master --tags
. - Merge the release branch's pull request into
master
.
- Update the freud tarball archive using the private
tarball-generator
tool (requires private repository access and AFS webserver access). - 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.
- conda-forge may take 1 hour or so after the PR is merged for the CDN to update).
- Notify the Glotzer group via Slack and post the changelog on the freud-users Google Group.
git fetch origin
git checkout master
git pull
git checkout -b release/X.X.X
git push -u origin release/X.X.X