Skip to content

Release procedure

Michael Deceglie edited this page Oct 30, 2020 · 12 revisions

Once it is determined that a release is appropriate, follow these steps:

  1. Make a branch from development labeled release/X.Y.Z, where X.Y.Z is the intended tag. (If master is ahead of the previous release, it may be appropriate create an intermediate branch off the last release, and open a PR to that to facilitate review of all changes.)
  2. Update the changelog (there should be a pending.rst to modify:
    1. run git shortlog -s -n A.B.C.. (Where A.B.C is the last tagged release) to find out who contributed to this release. List these names and github user names in the contributors sections of the changelog
    2. Update the changelog filename and header with the intended release and date
    3. update changelog.rst to point to the new file name
  3. Create and activate a fresh virtual environment with the python version used for examples (in Oct. 2020 this is 3.7). From the rdtools directory run:
    • pip install .
    • pip install -r requirements.txt
    • pip install -r docs/notebook_requirements.txt
  4. Run all example notebooks with the kernel associated with the virtual environment. Check for differences in example notebooks. Notebooks should have been run in PRs to development. But if there are any changes that are expected at this stage, change notebook kernels back to the root kernel, save and commit.
  5. Open a PR to master, ensure checks pass and docs are in order
  6. Obtain an approving review for the PR.
  7. Merge to master with a merge commit, do not squash.
  8. Tag a release on master
  9. github actions should automatically deploy to pypi
  10. update development from master
Clone this wiki locally