The developer who is releasing a new version of the python-bindings is expected to follow this work flow
-
The release of the
python-bindings
repository is made directly from the latest commit of thedevelop
branch (no independent release branch). -
Bump the version to the appropriately in
setup.py
(i.e.precice_version = version.Version("2.1.1")
andbindings_version = version.Version("1")
). Note: If a pre-release version is being made then therc
key in thebindings_version
attached (i.e.bindings_version = version.Version("1rc1")
). -
Open a Pull Request from
develop
-->master
named after the version (i.e.Release v2.1.1.1
) and briefly describe the new features of the release in the PR description. -
Draft a New Release in the
Releases
section of the repository page in a web browser. The release tag needs to be the exact version number (i.e.v2.1.1.1
orv2.1.1.1rc1
, compare to existing tags). Use@target:master
. Release title is also the version number (i.e.v2.1.1.1
orv2.1.1.1rc1
, compare to existing releases). Note: If it is a pre-release then the option This is a pre-release needs to be selected at the bottom of the page. Use@target:develop
for a pre-release, since we will never merge a pre-release into master.a) If a pre-release is made: Directly hit the "Publish release" button in your Release Draft. Now you can check the artifacts (e.g. release on PyPI) of the release. Note: As soon as a new tag is created github actions will take care of deploying the new version on PyPI using this workflow.
b) If this is a "real" release: As soon as one approving review is made, merge the release PR (
develop
) intomaster
. -
Merge
master
intodevelop
for synchronization ofdevelop
. -
If everything is in order up to this point then the new version can be released by hitting the "Publish release" button in your Release Draft.