Skip to content

Release Process

Vineet Bansal edited this page May 22, 2024 · 10 revisions

Creating a new release for OSQP 0.6.x

  • Releases for OSQP 0.6.x should be made from the v0.6.x branch. The general process is:
    • git checkout v0.6.x

    • Branch out of the v0.6.x branch, make any desired changes.

    • Push to Github. Ensure that the CI (triggered on all pushes/PRs) passes on all platforms. Ubuntu/Windows/Macos-Silicon/Macos-Intel are handled in .github/workflows/build.yml, aarch64 is handled in .github/workflows/build_aarch64.yml).

    • Once CI passes, decide on a new version, say 0.6.42. Make changes to the following 3 places to match the selected version:

      • src/osqp/codegen/files_to_generate/setup.py, Line 77
      • src/osqp/interface.py, Line 2
      • src/osqppurepy/_osqp.py, Line 333

      These files/line numbers are also obtainable using something like grep -r 0.6.41 (if 0.6.41 is the current version, for example). While it's possible to use bumpversion or a similar library to handle all these cases automatically, it's absolutely not worth introducing a new dependency for the v0.6.x releases at this point. v0.6.x releases are anticipated to be rare anyway.

    • Commit, and send a PR towards the v0.6.x branch. Merge if CI passes.

    • Tag the merge commit on the v0.6.x branch with the version tag (git tag v0.6.42 if 0.6.42 is the current version, for example). Notice the v prepended to the version number in the tag.

    • Push tags to origin (git push --tags). The presence of the tag is what triggers the CI to initiate a new release on PyPI.

Clone this wiki locally