Skip to content

Commit b1e020c

Browse files
committed
Update RELEASE.md
1 parent d3dd96a commit b1e020c

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

RELEASE.md

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
1-
# How to release
1+
## Overview
22

3-
## Python
4-
The python package uses the setuptools-scm plugin to automatically determine the version from git tags. When a release is created, it checks the tag and the CI automatically builds and publishes the package to PyPI.
3+
Release to PyPI and crates.io (`publish` workflow) is triggered automatically when a GitHub release is created.
54

6-
No internvention should be required.
5+
Python and Rust depend on package version in `Cargo.toml` which is dynamically updated to match release tag.
76

8-
## Rust
9-
The rust crate is similarly pushed through a Github Action that triggers on a release. But the version is determined by the Cargo.toml file, which has to be updated manually. Generally, the version should be the same as the python package but this isn't a strict requirement.
7+
### Python
108

11-
Currently we fail the rust release if the version in Cargo.toml doesn't match the tag. If that happens, just manually update the Cargo.toml version to match the tag. Push a new commit and rerun the job.
9+
`publish` workflow relies on `build_wheels` reusable workflow with `auto_bump` flag enabled.
10+
It then activates `bump_version` custom action to ensure that version in `Cargo.toml` was automatically updated to match the release tag before building the wheels with `maturin` backend.
11+
And `maturin` propagates this version to the wheels.
12+
13+
### Rust
14+
15+
The same `bump_version` action is used to update the version for building and publishing Rust.
16+
17+
### Dry-run
18+
19+
Before cutting a release, make sure that the `dry_run_publish` workflow on `main` was finished successfully.
20+
21+
It uses `build_wheels` reusable workflow without `auto_bump` flag to build wheels (thus wheels produced with 0.0.0 version) and doesn't use `bump_version` action for Rust's publishing dry-run.
22+
23+
### Notes
24+
25+
Ensure that the required secrets: PYPI_SECRET, CARGO_REGISTRY_TOKEN are set up.
26+
27+
If something went wrong `publish` workflow could be triggered manually via `workflow_dispatch` with a specified release tag.

0 commit comments

Comments
 (0)