Skip to content

Development Cycle

pressler-vsc edited this page Oct 21, 2024 · 3 revisions

Starting a new release

  1. Create a new integration/X.Y.Z branch off master.
  2. Switch to this branch and update __version_number in sarpy/__about__.py to X.Y.Za0
  3. In Read the Docs, change Admin > Settings > Default branch to integration/X.Y.Z

Adding new content

  1. Create pull requests that target integration/X.Y.Z.
  2. Before merging each pull request, verify that:
    • the pre-release segment of __version_number in sarpy/__about__.py is incremented (e.g. X.Y.Za1 etc.)
    • CHANGELOG.md is updated as appropriate
  3. Branches merged into integration/X.Y.Z should be squashed.

Preparing for release

Assuming you have an integration/X.Y.Z branch off master that is being considered for release:

  1. Create a new release/X.Y.Z branch off integration/X.Y.Z and switch to it.
  2. Merge master into release/X.Y.Z and resolve any conflicts.
  3. Set __version_number in sarpy/__about__.py to X.Y.Z
  4. Update CHANGELOG.md as appropriate (e.g. date in release header)
  5. Run tests.
  6. Submit the release/X.Y.Z branch as a pull request into integration/X.Y.Z taking care to document the unittest results.

Make a release PR

Assuming you have an integration/X.Y.Z branch off master that has been prepared for release:

  1. Submit the integration/X.Y.Z branch as a pull request into master taking care to document the unittest and Read the Docs artifacts from testing.
  2. Merge changes back into master without squashing.
  3. Create and push an annotated vX.Y.Z tag onto the resulting commit (this is done from the command line; e.g. git tag -a vX.Y.Z -m "vX.Y.Z" and git push origin tag vX.Y.Z).
  4. Run the pypi.yml GitHub workflow (in the GitHub GUI) from the vX.Y.Z tag. PyPI (or TestPyPI) publishing jobs will wait for an approval before starting.
  5. Delete the integration/X.Y.Z branch.
  6. Check Read the Docs to ensure build was triggered and successful and that "Admin > Settings > Default branch" is properly unset.

Run Tests

Assuming you have an release/X.Y.Z branch, perform the following in linux and windows:

  1. Ensure you have the latest nox installed and SARPY_TEST_PATH set appropriately.
  2. Run the tests using nox.
Clone this wiki locally