Creating Releases of PyCBC

Note

Only authorized maintainers of PyCBC should use these instructions.

Creating the release on GitHub

To create a new PyCBC release:

  1. Make sure that the setup.py file contains the correct version number, which should be in the format x.y.z (where x, y, and z are the major, minor, and patch levels of the release) in PyCBC’s setup.py file.

  2. Set release = True in the PyCBC’s setup.py file.

  3. Commit the changed setup.py file and push to commit to the repository.

  4. Go to the PyCBC release page and click on Draft a new release.

  5. Enter a tag version in the format vx.y.z. Note the v in front of the major, minor, and patch numbers.

  6. Enter a descriptive release title and write a description of the release in the text box provided.

  7. Click on Publish release to create the release.

  8. Update the setup.py file with an incremented major or minor version number and make sure that the string dev appears in that version. For example, if you just released 1.2.1 then change the string to 1.3.dev0 or 2.0.dev0 as appropriate. This is needed to ensure that if someone is building from source, it always takes precedence over an older release version.

  9. Set release = False in PyCBC’s setup.py file.

  10. Commit these changes and push them to the repository.

Note

Releases of PyCBC should be made from the master. Do not make a branch unless you are back-porting a bug fix from a new release series to an old production release series.

Creating the release will trigger a Travis build that updates CVMFS, Docker, and PyPI with the release. Please ensure that you check the outputs of these builds and urgently report any errors to other maintainers, you will be emailed if the builds fails.

Backporting Bug Fixes to Previous Release Series

Branches should only be created when bug fixes from master need to be back ported to an old release series (e.g. adding a bug fix from the 1.4 series to the 1.3 series.

To create a branch for the bug fix, make a new branch from the last release tag and cherry pick the changes to that branch. For example, to create a 1.3.8 branch to add bug fixes to the 1.3.7 release, you should

git checkout -b b1.3.8 v1.3.7
git cherry-pick [hash of first change]
git cherry-pick [hash of second change]
[continue using git cherry-pick for all new changes]
git commit
git push

Then go to the PyCBC release page and click on Draft a new release following the instructions above.