You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- New workflow: .github/workflows/dev-release.yml
- Triggers on every push to develop (+ manual dispatch)
- Calculates version: X.Y.Z.devN (N = commits since last tag)
- Patches pyproject.toml at build time (source stays clean)
- Publishes to PyPI via OIDC (same pypi environment)
- Install dev builds: pip install --pre specsmith
- Updated docs/site/releasing.md: dev release process documented
- Updated WARP rules: dev releases are automatic, stable via tags only
Stable releases remain tag-triggered from main only.
Co-Authored-By: Oz <oz-agent@warp.dev>
Copy file name to clipboardExpand all lines: docs/site/releasing.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -148,12 +148,26 @@ After pushing the tag:
148
148
149
149
## Automated Publishing
150
150
151
+
### Stable Releases (main branch)
151
152
When a tag matching `v*` is pushed to `main`, the release workflow automatically:
152
153
153
154
1.**Builds** sdist + wheel
154
155
2.**Publishes to PyPI** via OIDC trusted publishing (no tokens needed)
155
156
3.**Creates GitHub Release** with auto-generated notes and artifacts
156
157
158
+
Install: `pip install specsmith`
159
+
160
+
### Dev Releases (develop branch)
161
+
Every push to `develop` triggers the dev-release workflow:
162
+
163
+
1.**Calculates** dev version: `X.Y.Z.devN` (N = commits since last tag)
164
+
2.**Builds** sdist + wheel with dev version
165
+
3.**Publishes to PyPI** as a pre-release
166
+
167
+
Install: `pip install --pre specsmith`
168
+
169
+
Dev releases let users test features before they ship in a stable release. The `.devN` suffix ensures they sort before the next stable version.
170
+
157
171
## Lessons Learned
158
172
159
173
-**PyPI README is baked at upload time** — if README changes after a release, they won't appear on PyPI until the next release. Always finalize README before tagging.
0 commit comments