Skip to content

Commit 7742eca

Browse files
rbs333claude
andcommitted
feat: adopt Auto-based release strategy from redis-vl-python
Replaces the manual GitHub-Release-triggered publish workflow with an automated label-driven release pipeline using Intuit Auto. - Add .autorc with 11 semantic versioning labels (major/minor/patch/skip/release + changelog-only labels) - Add .github/release-drafter-config.yml for PR auto-labeling and categorized release notes - Add .github/workflows/auto-release.yml: gate → canary-build → release → build-and-publish - Triggers on push to main; skips if merged PR lacks auto:release label - Uses GitHub App token (RELEASE_BOT_APP_ID + RELEASE_BOT_PRIVATE_KEY secrets) to commit version bumps and push tags - Auto-updates pyproject.toml version and creates GitHub Release with generated changelog - Builds and publishes to PyPI via uv at the release tag - Remove .github/workflows/release.yml (superseded by auto-release.yml) - Add version auto-management comment to pyproject.toml Requires two new repo secrets: RELEASE_BOT_APP_ID and RELEASE_BOT_PRIVATE_KEY (existing PYPI secret is reused). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent cb88173 commit 7742eca

5 files changed

Lines changed: 430 additions & 84 deletions

File tree

.autorc

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
{
2+
"plugins": [
3+
"git-tag",
4+
"all-contributors",
5+
"conventional-commits",
6+
"released"
7+
],
8+
"owner": "redis-developer",
9+
"repo": "sql-redis",
10+
"onlyPublishWithReleaseLabel": true,
11+
"labels": [
12+
{
13+
"name": "auto:major",
14+
"changelogTitle": "💥 Breaking Change",
15+
"description": "Increment the major version when merged",
16+
"releaseType": "major",
17+
"color": "#C5000B",
18+
"overwrite": true
19+
},
20+
{
21+
"name": "auto:minor",
22+
"changelogTitle": "🚀 Enhancement",
23+
"description": "Increment the minor version when merged",
24+
"releaseType": "minor",
25+
"color": "#F1A60E",
26+
"overwrite": true
27+
},
28+
{
29+
"name": "auto:patch",
30+
"changelogTitle": "🐛 Bug Fix",
31+
"description": "Increment the patch version when merged",
32+
"releaseType": "patch",
33+
"color": "#870048",
34+
"overwrite": true
35+
},
36+
{
37+
"name": "auto:skip-release",
38+
"description": "Preserve the current version when merged",
39+
"releaseType": "skip",
40+
"color": "#bf5416",
41+
"overwrite": true
42+
},
43+
{
44+
"name": "auto:release",
45+
"description": "Create a release when this PR is merged",
46+
"releaseType": "release",
47+
"color": "#007f70",
48+
"overwrite": true
49+
},
50+
{
51+
"name": "auto:internal",
52+
"changelogTitle": "🏠 Internal",
53+
"description": "Changes only affect the internal API",
54+
"releaseType": "none",
55+
"color": "#696969",
56+
"overwrite": true
57+
},
58+
{
59+
"name": "auto:documentation",
60+
"changelogTitle": "📝 Documentation",
61+
"description": "Changes only affect the documentation",
62+
"releaseType": "none",
63+
"color": "#cfd3d7",
64+
"overwrite": true
65+
},
66+
{
67+
"name": "auto:tests",
68+
"changelogTitle": "🧪 Tests",
69+
"description": "Add or improve existing tests",
70+
"releaseType": "none",
71+
"color": "#ffd3cc",
72+
"overwrite": true
73+
},
74+
{
75+
"name": "auto:dependencies",
76+
"changelogTitle": "🔩 Dependency Updates",
77+
"description": "Update one or more dependencies version",
78+
"releaseType": "none",
79+
"color": "#8732bc",
80+
"overwrite": true
81+
},
82+
{
83+
"name": "auto:performance",
84+
"changelogTitle": "🏎 Performance",
85+
"description": "Improve performance of an existing feature",
86+
"releaseType": "patch",
87+
"color": "#f4b2d8",
88+
"overwrite": true
89+
},
90+
{
91+
"name": "auto:ci",
92+
"changelogTitle": "CI/CD Changes",
93+
"description": "Updates to CI/CD workflows and processes",
94+
"releaseType": "none",
95+
"color": "#E5A3DD",
96+
"overwrite": true
97+
}
98+
]
99+
}

.github/release-drafter-config.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name-template: '$NEXT_MINOR_VERSION'
2+
tag-template: 'v$NEXT_MINOR_VERSION'
3+
autolabeler:
4+
- label: 'maintenance'
5+
files:
6+
- '*.md'
7+
- '.github/*'
8+
- label: 'bug'
9+
branch:
10+
- '/bug-.+'
11+
- label: 'maintenance'
12+
branch:
13+
- '/maintenance-.+'
14+
- label: 'feature'
15+
branch:
16+
- '/feature-.+'
17+
categories:
18+
- title: 'Breaking Changes'
19+
labels:
20+
- 'breakingchange'
21+
- title: '🧪 Experimental Features'
22+
labels:
23+
- 'experimental'
24+
- title: '🚀 New Features'
25+
labels:
26+
- 'feature'
27+
- 'enhancement'
28+
- title: '🐛 Bug Fixes'
29+
labels:
30+
- 'fix'
31+
- 'bugfix'
32+
- 'bug'
33+
- 'BUG'
34+
- title: '🧰 Maintenance'
35+
label: 'maintenance'
36+
change-template: '- $TITLE (#$NUMBER)'
37+
exclude-labels:
38+
- 'skip-changelog'
39+
template: |
40+
# Changes
41+
42+
$CHANGES
43+
44+
## Contributors
45+
We'd like to thank all the contributors who worked on this release!
46+
47+
$CONTRIBUTORS

0 commit comments

Comments
 (0)