-
-
Notifications
You must be signed in to change notification settings - Fork 121
Add development versioning scheming #601
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,6 +24,11 @@ Starting with version 4.0.0, `typing_extensions` uses | |
[Semantic Versioning](https://semver.org/). See the documentation | ||
for more detail. | ||
|
||
## Development version | ||
After a release the version is increased once in [pyproject.toml](/pyproject.toml) and | ||
appended with a `.dev` suffix, e.g. `4.0.1.dev`. | ||
Further subsequent updates are not planned between releases. | ||
|
||
# Type stubs | ||
|
||
A stub file for `typing_extensions` is maintained | ||
|
@@ -54,7 +59,7 @@ may have installed. | |
# Workflow for PyPI releases | ||
|
||
- Make sure you follow the versioning policy in the documentation | ||
(e.g., release candidates before any feature release) | ||
(e.g., release candidates before any feature release, do not release development versions) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure this reminder is necessary. Would someone even think of doing this? I don't think creating a dev release accidentally is a concern, since the rest of the instructions (e.g. making a tag) would make that hard There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good point with the tag. I also would not expect someone doing it, just explicit better an implicit? In case we always increase in at least minor steps ( |
||
|
||
- Ensure that GitHub Actions reports no errors. | ||
|
||
|
@@ -68,3 +73,5 @@ may have installed. | |
|
||
- Release automation will finish the release. You'll have to manually | ||
approve the last step before upload. | ||
|
||
- After the release has been published on PyPI upgrade the version in number in [pyproject.toml](/pyproject.toml) to a `dev` version of the next planned release. For example, change 4.1.1 to 4.X.X.dev, see also [Development versions](#development-version). # TODO decide on major vs. minor increase. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In other projects, I've seen dev versions be named relative to the next "planned release", which can mean either a patch release or a major (feature) release. So for example, after releasing
4.0.1
, the version number might get bumped to4.1.0.dev
. I think that's how htop does it as an example. I'm not sure whether doing something similar here would make sense or not.FWIW, my personal weak preference is using a
-dev
suffix for generic dev version numbers that don't get bumped. The same style is used in e.g. mypy_extensions. It's a purely cosmetic difference ---dev
,.dev
,dev0
, etc all get normalized to the exact same version number.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you very much for the input and references, also sounds good and logical to me it had also crossed my mind. At that point it made more sense to me to avoid a downgrade in between:
4.0.0 (release) -> 4.1.0.dev -> 4.0.1 (patch-release)
vs. subsequent increase even if there is not patch4.0.0 (release) -> 4.0.1.dev -> 4.1.0 (no-patch-release)
.Subsequent would allow
pip install --upgrade typing_extensions
to work as expected. On the other hand, in this situation pip will at least tell you that the requirement is already satisfied with4.1.0.dev
and you see that no upgrade to4.0.1
was done.I think we need to hear from the others first as well.