@@ -26,53 +26,41 @@ Only `pyproject.toml` maintains the version.
2626
2727## Release Process (Fully Automated)
2828
29- ### Single Command Release
29+ NOTE: Normal workflow: Just push to main. That's it.
3030
31- ``` bash
32- # Run release - everything is automated
33- pdm run semantic-release version
34- ` ` ` text
31+ ### Automated Release on Push
3532
36- This automatically:
37- 1. Validates - Runs tests, lint, format checks (via ` build_command` )
38- 2. Calculates - Determines version bump from commit messages
39- 3. UPDATES - Bumps version in ` pyproject.toml`
40- 4. Generates - Creates changelog entries
41- 5. Commits - Creates release commit
42- 6. Tags - Creates git tag
33+ When you push to ` main ` , GitHub Actions automatically:
34+ - Validates: Runs tests, lint, format checks
35+ - Calculates: Determines version bump from commit messages
36+ - Updates: Bumps version in ` pyproject.toml `
37+ - Generates: Creates changelog entries
38+ - Commits: Creates release commit
39+ - Tags: Creates git tag
40+ - Publishes: Creates GitHub Release
4341
44- # ## 2. Push to Publish
42+ NOTE: No manual steps required.
4543
4644``` bash
47- # Push triggers GitHub Release creation
48- git push origin main --tags
45+ # Your workflow:
46+ git commit -m " feat: add new feature"
47+ git push origin main
48+ # Done. CI/CD handles the rest.
4949` ` ` text
5050
51- CI/CD will automatically create GitHub Release with changelog.
52-
53- ---
54-
55- # # Manual Override (If Needed)
51+ # ## Manual Release (Advanced / Emergency Only)
5652
57- # ## Preview Version Bump
53+ For troubleshooting or special cases, you can run locally:
5854
5955` ` ` bash
60- # See what version would be released
56+ # Preview what version would be released
6157pdm run semantic-release version --print
62- ` ` ` text
63-
64- # ## Preview Changelog
65-
66- ` ` ` bash
67- # See changelog entries
68- pdm run semantic-release changelog --print
69- ` ` ` text
7058
71- # ## Dry Run
72-
73- ` ` ` bash
74- # Test release without modifications
59+ # Dry run (no modifications)
7560pdm run semantic-release version --dry-run
61+
62+ # Force release (bypasses automatic calculation)
63+ pdm run semantic-release version --bump major
7664` ` ` text
7765
7866---
@@ -123,11 +111,12 @@ Full guide: See `.github/COMMIT_CONVENTION.md`
123111| Trigger | Jobs |
124112| ---------| ------|
125113| PR to main | test, lint |
126- | Push to main | test, lint |
127- | Tag v* | test, lint, release |
114+ | Push to main | test, lint, release (auto) |
128115
129116Cost: ~ 5 minutes per run (single Python version)
130117
118+ Note: Release job runs on every push to main but only creates a release if commit messages warrant a version bump.
119+
131120---
132121
133122# # Troubleshooting
@@ -147,15 +136,6 @@ git push origin :refs/tags/v1.0.1
147136pdm run semantic-release version
148137` ` ` text
149138
150- # ## Force Specific Version Bump
151-
152- ` ` ` bash
153- # Force major/minor/patch bump
154- pdm run semantic-release version --bump major
155- pdm run semantic-release version --bump minor
156- pdm run semantic-release version --bump patch
157- ` ` ` text
158-
159139---
160140
161141# # Related Files
@@ -169,6 +149,6 @@ pdm run semantic-release version --bump patch
169149
170150---
171151
172- LAST UPDATED: 2026-03-10
152+ LAST UPDATED: 2026-03-11
173153VERSION: 1.0.0
174154Tool: python-semantic-release
0 commit comments