Add contributor credits to release skills (#319)
Release changelogs now credit contributors inline (Bun-style): - Per-entry "thanks @user!" for community code contributions - Per-entry "thanks @user for the report!" for bug reporters - "Thanks to N contributors!" summary section at bottom of each release - Core team (lawrencecchen, austinywang) excluded from per-entry callouts
This commit is contained in:
parent
f7457055f1
commit
716a97420c
4 changed files with 122 additions and 8 deletions
|
|
@ -9,19 +9,29 @@ Full end-to-end release built locally. Bumps version, updates changelog, tags, t
|
||||||
- Get the current version from `GhosttyTabs.xcodeproj/project.pbxproj` (look for `MARKETING_VERSION`)
|
- Get the current version from `GhosttyTabs.xcodeproj/project.pbxproj` (look for `MARKETING_VERSION`)
|
||||||
- Bump the minor version unless the user specifies otherwise (e.g., 0.54.0 → 0.55.0)
|
- Bump the minor version unless the user specifies otherwise (e.g., 0.54.0 → 0.55.0)
|
||||||
|
|
||||||
### 2. Gather changes since the last release
|
### 2. Gather changes and contributors since the last release
|
||||||
|
|
||||||
- Find the most recent git tag: `git describe --tags --abbrev=0`
|
- Find the most recent git tag: `git describe --tags --abbrev=0`
|
||||||
- Get commits since that tag: `git log --oneline <last-tag>..HEAD --no-merges`
|
- Get commits since that tag: `git log --oneline <last-tag>..HEAD --no-merges`
|
||||||
- **Filter for end-user visible changes only** — ignore developer tooling, CI, docs, tests
|
- **Filter for end-user visible changes only** — ignore developer tooling, CI, docs, tests
|
||||||
- Categorize changes into: Added, Changed, Fixed, Removed
|
- Categorize changes into: Added, Changed, Fixed, Removed
|
||||||
- If there are no user-facing changes, ask the user if they still want to release
|
- If there are no user-facing changes, ask the user if they still want to release
|
||||||
|
- **Collect contributors:** For each PR referenced in the commits, get the author:
|
||||||
|
```bash
|
||||||
|
gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
|
||||||
|
```
|
||||||
|
- Also check for linked issue reporters (the person who filed the bug):
|
||||||
|
```bash
|
||||||
|
gh issue view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
|
||||||
|
```
|
||||||
|
- Build a deduplicated list of all contributor `@handle`s for the release
|
||||||
|
|
||||||
### 3. Update the changelog
|
### 3. Update the changelog
|
||||||
|
|
||||||
- Add a new section at the top of `CHANGELOG.md` with the new version and today's date
|
- Add a new section at the top of `CHANGELOG.md` with the new version and today's date
|
||||||
- **Only include changes that affect the end-user experience**
|
- **Only include changes that affect the end-user experience**
|
||||||
- Write clear, user-facing descriptions (not raw commit messages)
|
- Write clear, user-facing descriptions (not raw commit messages)
|
||||||
|
- **Credit contributors inline** (see Contributor Credits below)
|
||||||
- Also update `docs-site/content/docs/changelog.mdx` if it exists
|
- Also update `docs-site/content/docs/changelog.mdx` if it exists
|
||||||
|
|
||||||
### 4. Bump the version
|
### 4. Bump the version
|
||||||
|
|
@ -72,3 +82,25 @@ If the script fails, run `say "cmux release failed"`.
|
||||||
- Group by category: Added, Changed, Fixed, Removed
|
- Group by category: Added, Changed, Fixed, Removed
|
||||||
- Be concise but descriptive
|
- Be concise but descriptive
|
||||||
- Focus on what the user experiences, not how it was implemented
|
- Focus on what the user experiences, not how it was implemented
|
||||||
|
|
||||||
|
## Contributor Credits
|
||||||
|
|
||||||
|
Credit the people who made each release happen. This builds community and encourages contributions.
|
||||||
|
|
||||||
|
**Per-entry attribution** — append contributor credit after each changelog bullet:
|
||||||
|
- For code contributions (PR author): `— thanks @user!`
|
||||||
|
- For bug reports (issue reporter, if different from PR author): `— thanks @reporter for the report!`
|
||||||
|
- Core team (`lawrencecchen`, `austinywang`) contributions get no per-entry callout — core work is the baseline
|
||||||
|
|
||||||
|
**Summary section** — add a "Thanks to N contributors!" section at the bottom of each release:
|
||||||
|
```markdown
|
||||||
|
### Thanks to N contributors!
|
||||||
|
|
||||||
|
- [@user1](https://github.com/user1)
|
||||||
|
- [@user2](https://github.com/user2)
|
||||||
|
```
|
||||||
|
- List all contributors alphabetically by GitHub handle (including core team)
|
||||||
|
- Link each handle to their GitHub profile
|
||||||
|
- Include everyone: PR authors, issue reporters, anyone whose work is in the release
|
||||||
|
|
||||||
|
**GitHub Release body** — when the release is published, the GitHub Release should also include the "Thanks to N contributors!" section with linked handles.
|
||||||
|
|
|
||||||
|
|
@ -13,16 +13,26 @@ End-to-end release via PR flow: bump version, update changelog, create PR, merge
|
||||||
2. **Create a release branch**
|
2. **Create a release branch**
|
||||||
- Create branch: `git checkout -b release/vX.Y.Z`
|
- Create branch: `git checkout -b release/vX.Y.Z`
|
||||||
|
|
||||||
3. **Gather changes since the last release**
|
3. **Gather changes and contributors since the last release**
|
||||||
- Find the most recent git tag: `git describe --tags --abbrev=0`
|
- Find the most recent git tag: `git describe --tags --abbrev=0`
|
||||||
- Get commits since that tag: `git log --oneline <last-tag>..HEAD --no-merges`
|
- Get commits since that tag: `git log --oneline <last-tag>..HEAD --no-merges`
|
||||||
- **Filter for end-user visible changes only** - ignore developer tooling, CI, docs, tests
|
- **Filter for end-user visible changes only** - ignore developer tooling, CI, docs, tests
|
||||||
- Categorize changes into: Added, Changed, Fixed, Removed
|
- Categorize changes into: Added, Changed, Fixed, Removed
|
||||||
|
- **Collect contributors:** For each PR referenced in the commits, get the author:
|
||||||
|
```bash
|
||||||
|
gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
|
||||||
|
```
|
||||||
|
- Also check for linked issue reporters (the person who filed the bug):
|
||||||
|
```bash
|
||||||
|
gh issue view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
|
||||||
|
```
|
||||||
|
- Build a deduplicated list of all contributor `@handle`s for the release
|
||||||
|
|
||||||
4. **Update the changelog**
|
4. **Update the changelog**
|
||||||
- Add a new section at the top of `CHANGELOG.md` with the new version and today's date
|
- Add a new section at the top of `CHANGELOG.md` with the new version and today's date
|
||||||
- **Only include changes that affect the end-user experience**
|
- **Only include changes that affect the end-user experience**
|
||||||
- Write clear, user-facing descriptions (not raw commit messages)
|
- Write clear, user-facing descriptions (not raw commit messages)
|
||||||
|
- **Credit contributors inline** (see Contributor Credits below)
|
||||||
- Also update `docs-site/content/docs/changelog.mdx` if it exists
|
- Also update `docs-site/content/docs/changelog.mdx` if it exists
|
||||||
- If there are no user-facing changes, ask the user if they still want to release
|
- If there are no user-facing changes, ask the user if they still want to release
|
||||||
|
|
||||||
|
|
@ -73,3 +83,25 @@ If the script fails, run `say "cmux release failed"`.
|
||||||
- Test additions or fixes
|
- Test additions or fixes
|
||||||
- Internal refactoring with no user-visible effect
|
- Internal refactoring with no user-visible effect
|
||||||
- Dependency updates (unless they fix a user-facing bug)
|
- Dependency updates (unless they fix a user-facing bug)
|
||||||
|
|
||||||
|
## Contributor Credits
|
||||||
|
|
||||||
|
Credit the people who made each release happen. This builds community and encourages contributions.
|
||||||
|
|
||||||
|
**Per-entry attribution** — append contributor credit after each changelog bullet:
|
||||||
|
- For code contributions (PR author): `— thanks @user!`
|
||||||
|
- For bug reports (issue reporter, if different from PR author): `— thanks @reporter for the report!`
|
||||||
|
- Core team (`lawrencecchen`, `austinywang`) contributions get no per-entry callout — core work is the baseline
|
||||||
|
|
||||||
|
**Summary section** — add a "Thanks to N contributors!" section at the bottom of each release:
|
||||||
|
```markdown
|
||||||
|
### Thanks to N contributors!
|
||||||
|
|
||||||
|
- [@user1](https://github.com/user1)
|
||||||
|
- [@user2](https://github.com/user2)
|
||||||
|
```
|
||||||
|
- List all contributors alphabetically by GitHub handle (including core team)
|
||||||
|
- Link each handle to their GitHub profile
|
||||||
|
- Include everyone: PR authors, issue reporters, anyone whose work is in the release
|
||||||
|
|
||||||
|
**GitHub Release body** — when the release is published, the GitHub Release should also include the "Thanks to N contributors!" section with linked handles.
|
||||||
|
|
|
||||||
|
|
@ -11,16 +11,26 @@ Prepare a new release for cmux. This command updates the changelog, bumps the ve
|
||||||
2. **Create a release branch**
|
2. **Create a release branch**
|
||||||
- Create branch: `git checkout -b release/vX.Y.Z`
|
- Create branch: `git checkout -b release/vX.Y.Z`
|
||||||
|
|
||||||
3. **Gather changes since the last release**
|
3. **Gather changes and contributors since the last release**
|
||||||
- Find the most recent git tag: `git describe --tags --abbrev=0`
|
- Find the most recent git tag: `git describe --tags --abbrev=0`
|
||||||
- Get commits since that tag: `git log --oneline <last-tag>..HEAD --no-merges`
|
- Get commits since that tag: `git log --oneline <last-tag>..HEAD --no-merges`
|
||||||
- **Filter for end-user visible changes only** - ignore developer tooling, CI, docs, tests
|
- **Filter for end-user visible changes only** - ignore developer tooling, CI, docs, tests
|
||||||
- Categorize changes into: Added, Changed, Fixed, Removed
|
- Categorize changes into: Added, Changed, Fixed, Removed
|
||||||
|
- **Collect contributors:** For each PR referenced in the commits, get the author:
|
||||||
|
```bash
|
||||||
|
gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
|
||||||
|
```
|
||||||
|
- Also check for linked issue reporters (the person who filed the bug):
|
||||||
|
```bash
|
||||||
|
gh issue view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
|
||||||
|
```
|
||||||
|
- Build a deduplicated list of all contributor `@handle`s for the release
|
||||||
|
|
||||||
4. **Update the changelog**
|
4. **Update the changelog**
|
||||||
- Add a new section at the top of `CHANGELOG.md` with the new version and today's date
|
- Add a new section at the top of `CHANGELOG.md` with the new version and today's date
|
||||||
- **Only include changes that affect the end-user experience** - things users will see, feel, or interact with
|
- **Only include changes that affect the end-user experience** - things users will see, feel, or interact with
|
||||||
- Write clear, user-facing descriptions (not raw commit messages)
|
- Write clear, user-facing descriptions (not raw commit messages)
|
||||||
|
- **Credit contributors inline** (see Contributor Credits below)
|
||||||
- Also update `docs-site/content/docs/changelog.mdx` with the same content
|
- Also update `docs-site/content/docs/changelog.mdx` with the same content
|
||||||
- If there are no user-facing changes, ask the user if they still want to release
|
- If there are no user-facing changes, ask the user if they still want to release
|
||||||
|
|
||||||
|
|
@ -89,18 +99,47 @@ Prepare a new release for cmux. This command updates the changelog, bumps the ve
|
||||||
- Focus on what the user experiences, not how it was implemented
|
- Focus on what the user experiences, not how it was implemented
|
||||||
- Link to issues/PRs if relevant
|
- Link to issues/PRs if relevant
|
||||||
|
|
||||||
|
## Contributor Credits
|
||||||
|
|
||||||
|
Credit the people who made each release happen. This builds community and encourages contributions.
|
||||||
|
|
||||||
|
**Per-entry attribution** — append contributor credit after each changelog bullet:
|
||||||
|
- For code contributions (PR author): `— thanks @user!`
|
||||||
|
- For bug reports (issue reporter, if different from PR author): `— thanks @reporter for the report!`
|
||||||
|
- Core team (`lawrencecchen`, `austinywang`) contributions get no per-entry callout — core work is the baseline
|
||||||
|
|
||||||
|
**Summary section** — add a "Thanks to N contributors!" section at the bottom of each release:
|
||||||
|
```markdown
|
||||||
|
### Thanks to N contributors!
|
||||||
|
|
||||||
|
- [@user1](https://github.com/user1)
|
||||||
|
- [@user2](https://github.com/user2)
|
||||||
|
```
|
||||||
|
- List all contributors alphabetically by GitHub handle (including core team)
|
||||||
|
- Link each handle to their GitHub profile
|
||||||
|
- Include everyone: PR authors, issue reporters, anyone whose work is in the release
|
||||||
|
|
||||||
|
**GitHub Release body** — when the release is published, the GitHub Release should also include the "Thanks to N contributors!" section with linked handles.
|
||||||
|
|
||||||
## Example Changelog Entry
|
## Example Changelog Entry
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
## [0.13.0] - 2025-01-30
|
## [0.13.0] - 2025-01-30
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- New keyboard shortcut for quick tab switching
|
- New keyboard shortcut for quick tab switching ([#42](https://github.com/manaflow-ai/cmux/pull/42)) — thanks @contributor!
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Memory leak when closing split panes
|
- Memory leak when closing split panes ([#38](https://github.com/manaflow-ai/cmux/pull/38)) — thanks @fixer!
|
||||||
- Notification badges not clearing properly
|
- Notification badges not clearing properly ([#35](https://github.com/manaflow-ai/cmux/pull/35)) — thanks @reporter for the report!
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Improved terminal rendering performance
|
- Improved terminal rendering performance ([#40](https://github.com/manaflow-ai/cmux/pull/40))
|
||||||
|
|
||||||
|
### Thanks to 4 contributors!
|
||||||
|
|
||||||
|
- [@contributor](https://github.com/contributor)
|
||||||
|
- [@fixer](https://github.com/fixer)
|
||||||
|
- [@lawrencechen](https://github.com/lawrencechen)
|
||||||
|
- [@reporter](https://github.com/reporter)
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -16,15 +16,18 @@ Run this workflow to prepare and publish a cmux release.
|
||||||
2. Create a release branch:
|
2. Create a release branch:
|
||||||
- `git checkout -b release/vX.Y.Z`
|
- `git checkout -b release/vX.Y.Z`
|
||||||
|
|
||||||
3. Gather user-facing changes since the last tag:
|
3. Gather user-facing changes and contributors since the last tag:
|
||||||
- `git describe --tags --abbrev=0`
|
- `git describe --tags --abbrev=0`
|
||||||
- `git log --oneline <last-tag>..HEAD --no-merges`
|
- `git log --oneline <last-tag>..HEAD --no-merges`
|
||||||
- Keep only end-user visible changes (features, bug fixes, UX/perf behavior).
|
- Keep only end-user visible changes (features, bug fixes, UX/perf behavior).
|
||||||
|
- **Collect contributors:** For each PR, get the author with `gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'`. Also check linked issue reporters with `gh issue view <N> --json author --jq '.author.login'`.
|
||||||
|
- Build a deduplicated list of all contributor `@handle`s.
|
||||||
|
|
||||||
4. Update changelogs:
|
4. Update changelogs:
|
||||||
- Update `CHANGELOG.md`.
|
- Update `CHANGELOG.md`.
|
||||||
- Update `docs-site/content/docs/changelog.mdx`.
|
- Update `docs-site/content/docs/changelog.mdx`.
|
||||||
- Use categories `Added`, `Changed`, `Fixed`, `Removed`.
|
- Use categories `Added`, `Changed`, `Fixed`, `Removed`.
|
||||||
|
- **Credit contributors inline** (see Contributor Credits below).
|
||||||
- If no user-facing changes exist, confirm with the user before continuing.
|
- If no user-facing changes exist, confirm with the user before continuing.
|
||||||
|
|
||||||
5. Bump app version metadata:
|
5. Bump app version metadata:
|
||||||
|
|
@ -63,3 +66,11 @@ Run this workflow to prepare and publish a cmux release.
|
||||||
- Include only user-visible changes.
|
- Include only user-visible changes.
|
||||||
- Exclude internal-only changes (CI, tests, docs-only edits, refactors without behavior changes).
|
- Exclude internal-only changes (CI, tests, docs-only edits, refactors without behavior changes).
|
||||||
- Write concise user-facing bullets in present tense.
|
- Write concise user-facing bullets in present tense.
|
||||||
|
|
||||||
|
## Contributor Credits
|
||||||
|
|
||||||
|
Credit the people who made each release happen:
|
||||||
|
|
||||||
|
- **Per-entry:** Append `— thanks @user!` for community code contributions. Use `— thanks @user for the report!` for bug reporters (when different from PR author). No callout for core team (`lawrencecchen`, `austinywang`) — core work is the baseline.
|
||||||
|
- **Summary:** Add a `### Thanks to N contributors!` section at the bottom of each release with an alphabetical list of all `[@handle](https://github.com/handle)` links (including core team).
|
||||||
|
- **GitHub Release body:** Include the same "Thanks to N contributors!" section with linked handles.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue