diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 00000000..64bcba19 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,24 @@ +# Release workflow + +## PyPI + +1. Draft a new release on github with a new tag (create on publish) in the style `vMajor.Minor.Patch`, where `Major`, `Minor`, and `Patch` are integers according to semnatic versioning +1. Use the autogenerated changelog to update `CHANGELOG.md` in main +1. Update the version and release date in `CITATION.cff` +1. Copy the modified changelog from the file to the github release draft +1. Release the new version on github +1. Approve the release run in the actions tab +1. Verify that the upload to PyPI succeeded + + +## Conda-forge + +1. Do the PyPI release first +1. Rebase the `conda-forge-release` branch on the latest release +1. Ensure correct `pyproject.toml`: + * State the version explicitly (`version = "1.2.3"` instead of `dynamic = ["version"]`) + * Comment out the `openrpc` dependency + * Comment out the section section (including header!) `[tool.setuptools_scm]` +1. Create a tag with `vMajor.Minor.Patch-cf` at the head of that branch +1. Update the conda-forge repository with the version and checksum of the tar.gz archive of that tag: + * On windows use `certUtil --hashfile pyleco-1.2.3-cf.tar.gz SHA256` (adjust the version) to generate the SHA256 hash diff --git a/pyproject.toml b/pyproject.toml index c185948f..1e066c77 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ proxy_server = "pyleco.coordinators.proxy_server:main" starter = "pyleco.management.starter:main" [build-system] -requires = ["setuptools>=61.0", "wheel", "setuptools_scm>=7.0"] +requires = ["setuptools>=61.0", "wheel", "setuptools_scm>=8.1.0"] build-backend = "setuptools.build_meta" [tool.setuptools_scm]