Skip to content

Commit f5dfb7c

Browse files
committed
Replace zest.releaser with RELEASE_PROCESS.md
- Remove [tool.zest-releaser] section from pyproject.toml - Remove zest.releaser and check-manifest from tests/requirements.txt - Add RELEASE_PROCESS.md documenting the setuptools-scm release flow - Add MANIFEST.in to exclude RELEASE_PROCESS.md from sdist
1 parent 6820b3d commit f5dfb7c

4 files changed

Lines changed: 61 additions & 7 deletions

File tree

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
exclude RELEASE_PROCESS.md

RELEASE_PROCESS.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Release Process
2+
3+
unittest2pytest uses [setuptools-scm](https://github.com/pypa/setuptools-scm)
4+
for version management. Versions are derived automatically from git tags.
5+
6+
## Cutting a Release
7+
8+
1. **Create a release branch:**
9+
10+
```
11+
git switch -c release-X.Y.Z main
12+
```
13+
14+
2. **Update `CHANGELOG.rst`:**
15+
16+
Replace `UNRELEASED` with the version and date:
17+
18+
```rst
19+
X.Y.Z
20+
-----
21+
22+
*YYYY-MM-DD*
23+
```
24+
25+
Add a new unreleased section at the top:
26+
27+
```rst
28+
UNRELEASED
29+
----------
30+
31+
*UNRELEASED*
32+
```
33+
34+
3. **Commit and push:**
35+
36+
```
37+
git commit -am "Prepare release X.Y.Z"
38+
git push origin release-X.Y.Z
39+
```
40+
41+
4. **Open a PR and wait for CI to pass.**
42+
43+
5. **Tag and publish:**
44+
45+
Once the PR is green and approved, run:
46+
47+
```
48+
gh workflow run deploy.yml -R pytest-dev/unittest2pytest \
49+
--ref release-X.Y.Z --field version=X.Y.Z
50+
```
51+
52+
This will build, test, publish to PyPI, create a GitHub release,
53+
and merge the PR.
54+
55+
## How Versioning Works
56+
57+
- Tagged commits (e.g. `v0.6`) produce version `0.6`.
58+
- Commits after a tag produce dev versions like `0.7.dev3+gabcdef`.
59+
- The version is written to `unittest2pytest/_version.py` at build time.
60+
This file is git-ignored and should not be committed.

pyproject.toml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,3 @@ readme = {file = ["README.rst", "NEWLINE.rst", "CHANGELOG.rst"], content-type =
4747
[tool.setuptools_scm]
4848
version_file = "unittest2pytest/_version.py"
4949

50-
[tool.zest-releaser]
51-
push-changes = false
52-
tag-format = "v{version}"
53-
tag-message = "unittest2pytest {version}"
54-
tag-signing = true

tests/requirements.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
pytest >= 3.3.0 # Testing framework.
33

44
# Helper tools
5-
zest.releaser # Makes releasing easier
65
wheel # For creating .whl packages in Appveyour to avoid compiling again.
7-
check-manifest # Checks MANIFEST.in
86
pyroma # Checks if package follows best practices of Python packaging.
97
chardet # character encoding detector.
108
readme # Check PYPI description.

0 commit comments

Comments
 (0)