Skip to content

Commit 8f2a4d9

Browse files
committed
Document the release process
1 parent c31c65f commit 8f2a4d9

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

CONTRIBUTING.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,34 @@ If it does, please add the new generic class to the `_need_generic` list in the
115115
We only add hints for private attributes when it has some demonstrated real-world use case.
116116
That means from a third-party package or some well described snippet for a project.
117117
This rule helps us avoid tying in too closely to Django’s undocumented internals.
118+
119+
120+
## Releasing `django-stubs`
121+
122+
1. Open a pull request that updates `setup.py`, `ext/setup.py` and `README.md`
123+
(anyone can open this PR, not just maintainers):
124+
125+
- Increase `version=` value within `setup(...)` call in **both** files. The versions must be in sync.
126+
- Update `django-stubs-ext>=` dependency in root `setup.py` to the same version number.
127+
- Version number `major.minor.patch` is formed as follows:
128+
129+
`major.minor` version must match newest supported Django release.
130+
131+
`patch` is sequentially increasing for each stubs release. Reset to `0` if `major.minor` was updated.
132+
133+
- Use pull request title "Version x.y.z release" by convention.
134+
- Add a new row at the top of ['Version compatibility' table in README.md](README.md#version-compatibility).
135+
136+
2. Ensure the CI succeeds. A maintainer must merge this PR. If it's just a verison bump, no need
137+
to wait for a second maintainer's approval.
138+
139+
3. A maintainer must [сreate a new GitHub release](https://github.com/typeddjango/django-stubs/releases/new):
140+
141+
- Under "Choose a tag" enter the new version number. Do **not** use `v` prefix.
142+
- Click "Generate release notes".
143+
- Delete all release notes lines containing `by @pre-commit-ci` or `by @dependabot`, as these
144+
are irrelevant for our users.
145+
146+
4. Once you feel brave enough, click "Publish release".
147+
148+
5. Check that the [release workflow](https://github.com/typeddjango/django-stubs/actions/workflows/release.yml) succeeds.

0 commit comments

Comments
 (0)