Skip to content

Making a new Release

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

Checklist for the release:

  • Check if there are open PRs that should be merged for the next release
  • Updating the changelog with the newest version number
  • Verify the docs build properly and the changelog appears properly formatted

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

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 vX.Y.Z-changelog.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 v0.6.0-changelog.rst

This will automatically generate the changelog and place it in the appropriate directory (docs/source/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!

Announcements

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

Clone this wiki locally