From 079c5cabe9fa09a4b966bc78c280c88594fb8df2 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 08:50:11 +0000 Subject: [PATCH 1/5] ci(clients): Group client changelog by Python and Rust client Co-Authored-By: Lorenzo Cian <17258265+lcian@users.noreply.github.com> --- .github/workflows/changelog-preview.yml | 20 +++++++++++++++ AGENTS.md | 8 ++++++ clients/.craft.yml | 5 +++- clients/.github/release.yml | 34 +++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/changelog-preview.yml create mode 100644 clients/.github/release.yml diff --git a/.github/workflows/changelog-preview.yml b/.github/workflows/changelog-preview.yml new file mode 100644 index 000000000..f280d477d --- /dev/null +++ b/.github/workflows/changelog-preview.yml @@ -0,0 +1,20 @@ +name: Changelog Preview + +on: + pull_request_target: + types: [opened, synchronize, reopened, edited, labeled, unlabeled] + paths: + - clients/** + - objectstore-types/** + +permissions: + contents: read + pull-requests: write + statuses: write + +jobs: + changelog-preview: + uses: getsentry/craft/.github/workflows/changelog-preview.yml@0ff75896d43285ca376c7254e8143bac23acd429 # v2 + with: + working-directory: clients + secrets: inherit diff --git a/AGENTS.md b/AGENTS.md index d8e3d24a9..57c71799b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -70,3 +70,11 @@ When adding docs or moving types, verify documentation references: ```bash cargo doc --workspace --all-features --no-deps --document-private-items ``` + +## Pull Requests + +The client changelog is generated from PR titles: + +- Scope client changes as `py-client` or `rs-client`, e.g. `feat(py-client): Add X`. Other titles are not listed under a client heading. +- Split changes to both clients into one PR per client. +- If the title doesn't describe the change well for client users, add a `### Changelog Entry` section to the PR description with the text to use instead. diff --git a/clients/.craft.yml b/clients/.craft.yml index 16b5db497..701dc0a85 100644 --- a/clients/.craft.yml +++ b/clients/.craft.yml @@ -1,4 +1,7 @@ -changelogPolicy: auto +changelog: + policy: auto + # Categories in `.github/release.yml` are the per-client headings; no scope subheadings. + scopeGrouping: false preReleaseCommand: ../scripts/bump-version-clients.sh releaseBranchPrefix: release-library diff --git a/clients/.github/release.yml b/clients/.github/release.yml new file mode 100644 index 000000000..9d10d5671 --- /dev/null +++ b/clients/.github/release.yml @@ -0,0 +1,34 @@ +# Changelog categories for client releases, read by Craft from `clients/`. +# +# PR titles must use the `py-client` or `rs-client` scope to be listed, e.g. +# `feat(py-client): Add X`. Entries are matched top to bottom; categories that +# share a title render as one section, and `semver` drives the version bump. +changelog: + exclude: + labels: + - skip-changelog + categories: + - title: Python Client + commit_patterns: + - "^(?\\w+\\(py-client\\)!:\\s*)" + semver: major + - title: Rust Client + commit_patterns: + - "^(?\\w+\\(rs-client\\)!:\\s*)" + semver: major + - title: Python Client + commit_patterns: + - "^(?feat\\(py-client\\):\\s*)" + semver: minor + - title: Rust Client + commit_patterns: + - "^(?feat\\(rs-client\\):\\s*)" + semver: minor + - title: Python Client + commit_patterns: + - "^(?\\w+\\(py-client\\):\\s*)" + semver: patch + - title: Rust Client + commit_patterns: + - "^(?\\w+\\(rs-client\\):\\s*)" + semver: patch From c18d5928a235da6dd47f2ec3ef55cebf523f7712 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 09:01:56 +0000 Subject: [PATCH 2/5] ci: Don't pass repo secrets to the changelog preview Co-Authored-By: Lorenzo Cian <17258265+lcian@users.noreply.github.com> --- .github/workflows/changelog-preview.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/changelog-preview.yml b/.github/workflows/changelog-preview.yml index f280d477d..07b3488ad 100644 --- a/.github/workflows/changelog-preview.yml +++ b/.github/workflows/changelog-preview.yml @@ -17,4 +17,3 @@ jobs: uses: getsentry/craft/.github/workflows/changelog-preview.yml@0ff75896d43285ca376c7254e8143bac23acd429 # v2 with: working-directory: clients - secrets: inherit From 02b18520f42b62f76429a6f4b5fe7df91664f8e2 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 09:39:31 +0000 Subject: [PATCH 3/5] docs: Clarify client changelog guidance in AGENTS.md --- AGENTS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 57c71799b..25a379103 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -73,8 +73,8 @@ cargo doc --workspace --all-features --no-deps --document-private-items ## Pull Requests -The client changelog is generated from PR titles: +When making a change that touches one of the clients, consider the user-facing changelog entry, which is generated from PR titles: -- Scope client changes as `py-client` or `rs-client`, e.g. `feat(py-client): Add X`. Other titles are not listed under a client heading. +- Scope client changes as `py-client` or `rs-client`, e.g. `feat(py-client): Add X`. This allows the automatic changelog generation workflow to pick those changes up. - Split changes to both clients into one PR per client. - If the title doesn't describe the change well for client users, add a `### Changelog Entry` section to the PR description with the text to use instead. From 7b14978c8bf3f8f965438ef994f6d8cdc48a114b Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 09:40:23 +0000 Subject: [PATCH 4/5] ci: Only run the changelog preview for client changes Co-Authored-By: Lorenzo Cian <17258265+lcian@users.noreply.github.com> --- .github/workflows/changelog-preview.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/changelog-preview.yml b/.github/workflows/changelog-preview.yml index 07b3488ad..16017ff8c 100644 --- a/.github/workflows/changelog-preview.yml +++ b/.github/workflows/changelog-preview.yml @@ -5,7 +5,6 @@ on: types: [opened, synchronize, reopened, edited, labeled, unlabeled] paths: - clients/** - - objectstore-types/** permissions: contents: read From 1d907daf3bff64204f81ceb80861f49115917d33 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 14:39:07 +0000 Subject: [PATCH 5/5] ci: Pin changelog preview to craft v3 Co-Authored-By: Lorenzo Cian <17258265+lcian@users.noreply.github.com> --- .github/workflows/changelog-preview.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog-preview.yml b/.github/workflows/changelog-preview.yml index 16017ff8c..fa8acb103 100644 --- a/.github/workflows/changelog-preview.yml +++ b/.github/workflows/changelog-preview.yml @@ -13,6 +13,6 @@ permissions: jobs: changelog-preview: - uses: getsentry/craft/.github/workflows/changelog-preview.yml@0ff75896d43285ca376c7254e8143bac23acd429 # v2 + uses: getsentry/craft/.github/workflows/changelog-preview.yml@924b450ede4af30e30de4821a4b357d676c8df92 # v3 with: working-directory: clients