Skip to content

Commit 52437d1

Browse files
committed
docs: document GitHub release process in CLAUDE.md
Add a "GitHub Release" section after "Version Bumping" with the gh release create command template, a release-body checklist (changelog verbatim + impact note + migration note + full changelog link), and naming conventions.
1 parent 8eb8631 commit 52437d1

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,55 @@ Two files must always be updated together:
155155
- `pyproject.toml``version = "x.y.z"`
156156
- `mailvalidator/__init__.py` → fallback `__version__ = "x.y.z"` (the `except` branch)
157157

158+
## GitHub Release
159+
160+
Every version bump **must** be followed by a GitHub release. Do not leave a version tag without a release.
161+
162+
**After bumping the version, committing, and pushing:**
163+
164+
```bash
165+
# Tag the version commit and push
166+
git tag vX.Y.Z
167+
git push origin vX.Y.Z
168+
169+
# Create the GitHub release
170+
gh release create vX.Y.Z \
171+
--title "vX.Y.Z" \
172+
--notes "$(cat <<'EOF'
173+
## What's changed
174+
175+
<Copy the ### Added / ### Changed / ### Fixed / ### Removed blocks verbatim
176+
from the [X.Y.Z] section in CHANGELOG.md>
177+
178+
## Impact
179+
180+
<1–3 sentences: what this means for users — what improves, what breaks,
181+
whether the upgrade is urgent (e.g. new check, DNSBL list update, verdict
182+
scoring change, etc.)>
183+
184+
## Migration
185+
186+
<Only for minor/major bumps: list any CLI flags, `assess()` parameters,
187+
new required `check_<name>()` signatures, or vendor submodule updates that
188+
require user action. Omit for patch releases.>
189+
190+
---
191+
192+
**Full changelog:** https://github.com/NC3-TestingPlatform/mailvalidator/blob/master/CHANGELOG.md
193+
EOF
194+
)"
195+
```
196+
197+
**Release body checklist:**
198+
- [ ] Changelog entries for this version copied verbatim
199+
- [ ] Impact note written (even one sentence is enough)
200+
- [ ] Migration note present if CLI flags, `assess()` signature, or vendor deps changed
201+
- [ ] Full changelog link at the bottom
202+
203+
**Conventions:**
204+
- Tag and title: `vX.Y.Z` — semver, `v`-prefixed, must match `pyproject.toml` version
205+
- Do not mark as draft or pre-release for normal semver releases
206+
158207
## Where to Look
159208

160209
| I want to… | Look at… |

0 commit comments

Comments
 (0)