Skip to content

Package Guidelines

Jesse Haviland edited this page Nov 7, 2021 · 2 revisions

Branch Guidelines

The main branch should remain compatible with what is published on PyPi. Therefore the only changes which should be pushed to main are bug fixes, or docs fixes. No new features should go to main without an immediate new release.

Push to future for minor or incremental changes. Strive to keep future passing tests. For larger and more extreme breaking changes, make a branch off future. Merge future into main prior to making a release.

Version Guidelines

Version has 3 numbers x.y.z

x will stay at 0 while we are in beta

y is incremented if the new release has breaking changes to the previous release. If y is incremented, z resets to 0.

z is incremented if the new release is compatible with the previous release, i.e. stability improvements and bug fixes etc.

Publish Setup

You must set the variable PYPI_PASSWORD in the secrets section in the settings of the github repo. PYPI_PASSWORD is set to a generated token from PyPi which has write access to only this package.

Publish Workflow

  1. Make sure that tests are passing on main branch before progressing
  2. Update RELEASE or setup.py to increment the version number of the package
  3. On the main page of the package, click Releases in the right sidebar
  4. Click Draft a new release
  5. In the Release title, enter v{version_number} where {version_number} is replaced with what you entered in step 2.
  6. Click Publish release
  7. This will trigger GitHub to run tests and will rebuild docs on tests passing
  8. This will trigger a github workflow which will publish the package to PyPi
Clone this wiki locally