Skip to content

Releasing Fab

MatthewHambley edited this page Apr 4, 2023 · 4 revisions

Releases usually come in 3 different levels: Major, minor and patch. These are reflected by the numbers in the version identifier: x.y.z.

Major releases change the x value and are for API breaking changes.

Minor releases change the y value and are for new features.

Patch releases change the z value and are for bug fixes.

Obviously each level of release may also include features from lower levels. So a minor release may also include bug fixes and major releases may include new featues.

Creating a Release

If this is a new major or minor release it will need a new branch of the form v#.#. Patch releases are made from the relevant existing branch. If a new branch is made, bump the version number on trunk to v#.#.dev0 which is the next minor release after the new release.

On the release branch, update the version number to v#.#.# which is the version you are about to release. Then create the release tag with the same name.

Make a package and upload to PyPI. In due course an e-mail will arrive from Conda Forge inviting you to create a package for this new version.

Announce the new version in the announcements forum.

Finally, on trunk, update the version information to v#.#.dev0 which is the next minor release.

Releasing to PyPI

In order to create the release you will need the following Python packages installed:

  • setuptools
  • wheel
  • twine

Change into a working copy and check out the relevant revision.

To create the package use python setup.py sdist bdist_wheel. This will create dist which contains both a tar-ball and a "wheel" archive.

Use python -m twine upload dist/* to have these distribution files sent to PyPI.

Clone this wiki locally