Skip to content

Creating a Release

Bradley Dice edited this page Oct 3, 2020 · 19 revisions

Feature-freeze

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.

Checklist

Pre-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, and Removed (in that order).
  • 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 and requirements.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.

Release

  • 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's false, or else tags will be pushed automatically.
  • 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.

Post-release

  • 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.

Create release branch

git fetch origin
git checkout master
git pull
git checkout -b release/X.X.X
git push -u origin release/X.X.X
Clone this wiki locally