Skip to content

Making a new Release

Jason Villanueva edited this page Apr 29, 2021 · 20 revisions

Checklist for the release:

  • Create the changelog, bump the version number, and submit a PR for the release
  • Verify the docs build properly and the changelog appears properly formatted (2 approvals required)
  • Check if there are open PRs that should be merged for the next release (squash & merge and rerun the changelog script)

Create the Changelog

To generate a changelog for the next release, use scripts/dev_changelog.py under the root of the repository. You will need to generate a GitHub Personal Access Token (PAT) to use GitHub's API in the python script. You can do so (when logged in) here https://github.com/settings/tokens.

When you're ready with your PAT, ensure your local repo is up to date with upstream and run from the root of the project:

python scripts/dev_changelog.py <Your-GitHub-PAT> vA.C.D HEAD -o /path/to/file.rst

An example for the upcoming v0.6.0 release (at the time of writing):

python scripts/dev_changelog.py <Your-GitHub-PAT> v0.5.0 HEAD -o 0.6.0-changelog.rst

This will automatically generate a changelog and place it in the appropriate directory (docs/source/changelog/). Make any necessary adjustments manually via the generated rst file or by editing the GitHub PR that needs editing and regenerating the changelog.

With the new commit in place, stage your changes and make a PR. Verify the changelog appears as expected in RTD/sphinx before making the release!

NEVER PUSH MANUALLY TO PYPI: There are automatic actions which does that job for you as well as other. So creating a Release in Github After checking everything else would simply work out of the box.

Creating a release on GitHub

The process for creating a new release is documented here. For regular releases, increment the minor (second decimal) and reset the patch (third decimal) (e.g. X.1.Z->vX.2.0) and for bugfixes, only increment the third (e.g. vX.Y.4->vX.Y.5). The release title is the same as the tag name. You don't need to create a tag from the command line as one will automatically be created for the release.

Publish to PyPI (requires maintainer permissions on PyPI)

Run git checkout <tag> to switch to the tag you created when the release was created. Then run poetry publish --build to publish to PyPI. Finally, upload the .tar.gz file generated to GitHub Release Assets. Only when the automatic fail to do it.

Note: You don't need to publish it manually it is done automatically. This documented to as a backup if that action fail.

Documentation

As long as we have an ongoing discussion about our stable branch, the default version of our documentation at https://docs.manim.community has to be changed to the latest release at https://readthedocs.org/dashboard/manimce/advanced/

Docker images

Docker images for new releases are built automatically, no manual intervention required. Should it, for some other reason, be necessary to deploy a new tagged image, then this can be done by running docker build -t manimcommunity/manim:v1.7.42 -f docker/Dockerfile . from the repository root, and then running docker push. (@behackl can grant access to the docker hub organization and repository.)

Announcements

Prepare release announcement text. Post release announcement on reddit Post release announcement on Twitter Post release announcement on #announcements channel in discord