From f85e69ce6f4ac31215a6f80d7e6a8228706ef051 Mon Sep 17 00:00:00 2001 From: Ivan Dlugos Date: Mon, 26 Oct 2026 08:47:50 +0100 Subject: [PATCH 1/3] docs(release): Describe the auto-versioned release flow The README still told releasers to pick a bump type and named action-prepare-release, so following it would skip the version craft derives from PR titles and miss the breaking-change check that made 2.0.0 a major release. It now explains that PR titles drive the version and changelog, what the workflow and publish issue produce, and how to retract a request, which we had to do for the first auto release. Co-Authored-By: Claude Opus 5.5 --- README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2547b6f..d500b4e 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,13 @@ We have extensive documentation both inline in the Sentry codebase and on the [S 1. On the `getsentry/scm-platform` repository page click the **Actions** tab. 2. On the left-hand side click the **release** workflow. -3. Click **Run workflow**, choose a bump type (`patch`, `minor`, or `major`), and run it. The next version is calculated automatically from the current version in `pyproject.toml`. -4. The workflow will create a release branch and PR via `getsentry/action-prepare-release`. After completion it will return a URL to an issue on `getsentry/publish`. -5. On the `getsentry/publish` issue immediately set the **accepted** label. +3. Click **Run workflow** and run it with the default bump type, `auto`. [Craft](https://github.com/getsentry/craft) picks the version from the titles of the PRs merged since the last release tag: `type!:` (e.g. `fix!:`) makes a major release, `feat:` a minor one, and any other conventional-commit type a patch. Choose `major`, `minor`, or `patch` only to override it. +4. The workflow creates a `release/` branch with the version bump and the new `CHANGELOG.md` section, and opens an issue on `getsentry/publish` titled `publish: getsentry/scm-platform@`. Check that the version and changelog in the issue are what you expect. +5. On the `getsentry/publish` issue set the **accepted** label. Once CI passes on the release branch, Craft publishes to PyPI and the internal `getsentry/pypi` index, creates the GitHub release with the same changelog, and merges the release branch into `main`. 6. A pull request will be opened on `getsentry/pypi`. -7. Edit the file in GitHub and place `python>=3.13` on the line immediately following the changed line. -8. The PR will merge automatically. When it's merged your new version is available for use. \ No newline at end of file +7. Edit `packages.ini` in that PR and add `python_versions = >=3.13` on the line immediately following the new `[sentry-scm==]` line. +8. The PR will merge automatically. When it's merged your new version is available for use. + +Because the changelog and version come from PR titles, give every PR a [conventional-commit](https://www.conventionalcommits.org/) title, and mark breaking changes with `!`. + +To retract a release request, comment `#retract` on a line by itself on the `getsentry/publish` issue, close the issue, and delete the `release/` branch before running the workflow again. \ No newline at end of file From c4798aa4fb7e204fe2781b94def008d9c67be5ee Mon Sep 17 00:00:00 2001 From: Ivan Dlugos Date: Mon, 26 Oct 2026 08:51:54 +0100 Subject: [PATCH 2/3] docs(release): Drop the manual getsentry/pypi edit getsentry/pypi#2639 made its build skip Python versions excluded by a package's Requires-Python, so the python_versions line no longer has to be added by hand. The 2.0.0 PR merged without it and its build skipped 3.11 and 3.12 on its own. Co-Authored-By: Claude Opus 5.5 --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index d500b4e..0e188ce 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,7 @@ We have extensive documentation both inline in the Sentry codebase and on the [S 3. Click **Run workflow** and run it with the default bump type, `auto`. [Craft](https://github.com/getsentry/craft) picks the version from the titles of the PRs merged since the last release tag: `type!:` (e.g. `fix!:`) makes a major release, `feat:` a minor one, and any other conventional-commit type a patch. Choose `major`, `minor`, or `patch` only to override it. 4. The workflow creates a `release/` branch with the version bump and the new `CHANGELOG.md` section, and opens an issue on `getsentry/publish` titled `publish: getsentry/scm-platform@`. Check that the version and changelog in the issue are what you expect. 5. On the `getsentry/publish` issue set the **accepted** label. Once CI passes on the release branch, Craft publishes to PyPI and the internal `getsentry/pypi` index, creates the GitHub release with the same changelog, and merges the release branch into `main`. -6. A pull request will be opened on `getsentry/pypi`. -7. Edit `packages.ini` in that PR and add `python_versions = >=3.13` on the line immediately following the new `[sentry-scm==]` line. -8. The PR will merge automatically. When it's merged your new version is available for use. +6. A pull request adding the version to `getsentry/pypi` is opened and merged automatically. Once it's merged and that repository's build finishes, the new version is available for use. Because the changelog and version come from PR titles, give every PR a [conventional-commit](https://www.conventionalcommits.org/) title, and mark breaking changes with `!`. From 34da713754953523fcb8bee2a7df939f8ef6c015 Mon Sep 17 00:00:00 2001 From: Ivan Dlugos Date: Mon, 26 Oct 2026 08:55:05 +0100 Subject: [PATCH 3/3] docs(release): Drop the retract instructions Retracting a publish request works the same for every repository using getsentry/publish, so it doesn't belong in this README. Co-Authored-By: Claude Opus 5.5 --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 0e188ce..d5eb369 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,4 @@ We have extensive documentation both inline in the Sentry codebase and on the [S 5. On the `getsentry/publish` issue set the **accepted** label. Once CI passes on the release branch, Craft publishes to PyPI and the internal `getsentry/pypi` index, creates the GitHub release with the same changelog, and merges the release branch into `main`. 6. A pull request adding the version to `getsentry/pypi` is opened and merged automatically. Once it's merged and that repository's build finishes, the new version is available for use. -Because the changelog and version come from PR titles, give every PR a [conventional-commit](https://www.conventionalcommits.org/) title, and mark breaking changes with `!`. - -To retract a release request, comment `#retract` on a line by itself on the `getsentry/publish` issue, close the issue, and delete the `release/` branch before running the workflow again. \ No newline at end of file +Because the changelog and version come from PR titles, give every PR a [conventional-commit](https://www.conventionalcommits.org/) title, and mark breaking changes with `!`. \ No newline at end of file