Skip to content

Commit 2946dfb

Browse files
author
Matt Carey
committed
feat: release please
1 parent 64ac1da commit 2946dfb

File tree

4 files changed

+134
-0
lines changed

4 files changed

+134
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
description: Standards for using release-please in the repository
3+
globs: "**/*"
4+
---
5+
# Release Please Standards
6+
7+
Standards for managing releases with release-please in the repository.
8+
9+
<rule>
10+
name: release_please_standards
11+
description: Standards for using release-please for versioning and releases
12+
13+
filters:
14+
- type: path
15+
pattern: ".*"
16+
17+
actions:
18+
- type: suggest
19+
message: |
20+
When working with releases:
21+
22+
1. Configuration Files:
23+
```
24+
.release-please-config.json # Release configuration
25+
.release-please-manifest.json # Version tracking
26+
.github/workflows/release.yml # Release workflow
27+
```
28+
29+
2. Commit Message Format:
30+
```
31+
# Features (0.1.0 -> 0.2.0)
32+
feat: add new feature
33+
feat!: breaking change feature
34+
35+
# Bug Fixes (0.1.0 -> 0.1.1)
36+
fix: bug fix description
37+
38+
# No Version Change
39+
docs: update readme
40+
chore: update dependencies
41+
test: add new tests
42+
```
43+
44+
3. Release Process:
45+
- Push to main branch triggers release-please
46+
- Release-please creates/updates release PR
47+
- Merging release PR:
48+
1. Updates CHANGELOG.md
49+
2. Creates GitHub release
50+
3. Publishes to PyPI using UV
51+
52+
4. Required Secrets:
53+
```
54+
PYPI_API_TOKEN # For publishing to PyPI
55+
```
56+
57+
examples:
58+
- input: |
59+
# Bad commit messages
60+
updated readme
61+
fixed bug in api
62+
added feature
63+
64+
# Good commit messages
65+
docs: update installation guide
66+
fix: handle API timeout errors
67+
feat: add new CRM integration
68+
output: "Correctly formatted commit messages"
69+
70+
metadata:
71+
priority: high
72+
version: 1.0
73+
tags:
74+
- release
75+
- versioning
76+
- git
77+
</rule>

.github/workflows/release.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
release-please:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: google-github-actions/release-please-action@v4
17+
id: release
18+
with:
19+
config-file: .release-please-config.json
20+
manifest-file: .release-please-manifest.json
21+
22+
# Only release to PyPI when a new release is created
23+
- uses: actions/checkout@v4
24+
if: ${{ steps.release.outputs.release_created }}
25+
26+
- name: Install uv
27+
if: ${{ steps.release.outputs.release_created }}
28+
uses: astral-sh/setup-uv@v5
29+
with:
30+
python-version: "3.11"
31+
32+
- name: Build and publish package
33+
if: ${{ steps.release.outputs.release_created }}
34+
env:
35+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
36+
run: |
37+
cd packages/stackone-ai
38+
uv build --no-sources
39+
uv publish

.release-please-config.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"packages": {
3+
"packages/stackone-ai": {
4+
"release-type": "python",
5+
"changelog-path": "CHANGELOG.md",
6+
"bump-minor-pre-major": true,
7+
"bump-patch-for-minor-pre-major": true,
8+
"draft": false,
9+
"prerelease": false,
10+
"include-component-in-tag": true,
11+
"include-v-in-tag": true
12+
}
13+
},
14+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
15+
}

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"packages/stackone-ai": "0.0.1"
3+
}

0 commit comments

Comments
 (0)