Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/changelog-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Changelog Preview

on:
pull_request_target:
types: [opened, synchronize, reopened, edited, labeled, unlabeled]
paths:
- clients/**

permissions:
contents: read
pull-requests: write
statuses: write

jobs:
changelog-preview:
uses: getsentry/craft/.github/workflows/changelog-preview.yml@924b450ede4af30e30de4821a4b357d676c8df92 # v3
with:
working-directory: clients
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

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`. 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.
5 changes: 4 additions & 1 deletion clients/.craft.yml
Original file line number Diff line number Diff line change
@@ -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

Expand Down
34 changes: 34 additions & 0 deletions clients/.github/release.yml
Original file line number Diff line number Diff line change
@@ -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:
- "^(?<type>\\w+\\(py-client\\)!:\\s*)"
semver: major
- title: Rust Client
commit_patterns:
- "^(?<type>\\w+\\(rs-client\\)!:\\s*)"
semver: major
- title: Python Client
commit_patterns:
- "^(?<type>feat\\(py-client\\):\\s*)"
semver: minor
- title: Rust Client
commit_patterns:
- "^(?<type>feat\\(rs-client\\):\\s*)"
semver: minor
- title: Python Client
commit_patterns:
- "^(?<type>\\w+\\(py-client\\):\\s*)"
semver: patch
- title: Rust Client
commit_patterns:
- "^(?<type>\\w+\\(rs-client\\):\\s*)"
semver: patch
Loading