Skip to content

Commit 3561310

Browse files
committed
Properly document version specification.
The docs previously incorrectly linked to the Semantic Versioning specification. However, this project has never used that specification. Instead it uses the Python Version Specification which was originally defined in PEP 440. The specification explicitly identifies differences between the two (See https://packaging.python.org/en/latest/specifications/version-specifiers/#semantic-versioning).
1 parent 3bb9d42 commit 3561310

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

docs/changelog.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@ toc_depth: 2
66
All notable changes to this project will be documented in this file.
77

88
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
9-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9+
and this project adheres to the
10+
[Python Version Specification]: https://packaging.python.org/en/latest/specifications/version-specifiers/.
1011
See the [Contributing Guide](contributing.md) for details.
1112

13+
## [unreleased]
14+
1215
## [3.8.1] - 2025-06-18
1316

1417
### Fixed

docs/contributing.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The [Python-Markdown/markdown] project is organized as follows:
2323

2424
* Branch `master` should generally be stable and release-ready at all times.
2525
* Version branches should be used for bug-fixes back-ported to the most recent
26-
PATCH release.
26+
MICRO release.
2727
* No other branches should be created. Any other branches which exist are
2828
preserved for historical reasons only.
2929

@@ -256,8 +256,8 @@ that version, or is otherwise expressly deemed appropriate by the project
256256
maintainers.
257257

258258
The current changelog should only document the changes for one MAJOR release and
259-
its various MINOR and PATCH releases (see [Versions](#versions) for an
260-
explanation of MAJOR, MINOR, and PATCH releases). Older versions from previous
259+
its various MINOR and MICRO releases (see [Versions](#versions) for an
260+
explanation of MAJOR, MINOR, and MICRO releases). Older versions from previous
261261
series of releases can be found in the archive at `docs/change_log/` and may
262262
follow a different format. Note that the archived changelogs are not in the site
263263
navigation and are only linked from the [Previous
@@ -416,22 +416,23 @@ with no arguments. See help (`tox -h`) for more options.
416416

417417
## Versions
418418

419-
Python-Markdown follows [Semantic Versioning] and uses the
420-
`MAJOR.MINOR.PATCH[.dev#|a#|b#|rc#]` format for identifying releases. The status
421-
of the `master` branch should always be identified in the `__version_info__`
422-
tuple defined in [`markdown/__meta__.py`][markdown/__meta__.py]. The contents of
423-
that tuple will automatically be converted into a normalized version which
424-
conforms to [PEP 440]. Each time the version is changed, the continuous
425-
integration server will run a test to ensure that the current version is in a
426-
valid normalized format.
419+
Python-Markdown follows the [Python Version Specification] (originally defined
420+
in [PEP 440]) and uses the `MAJOR.MINOR.MICRO[.dev#|a#|b#|rc#]` format for
421+
identifying releases. The status of the `master` branch should always be
422+
identified in the `__version_info__` tuple defined in[`markdown/__meta__.py`]
423+
[markdown/__meta__.py]. The contents of that tuple will automatically be
424+
converted into a normalized version string which conforms to the
425+
[Python Version Specification]. Each time the version is changed, the
426+
continuous integration server will run a test to ensure that the current
427+
version is in a valid normalized format.
427428

428429
### Version Status
429430

430431
A MAJOR version is in development status when the MINOR version is `0`, the
431-
PATCH version is `0`, and the version includes a `dev` segment.
432+
MICRO version is `0`, and the version includes a `dev` segment.
432433

433434
A MINOR version is in development status when the MINOR version is not `0`, the
434-
PATCH version is `0`, and the version includes a `dev` segment.
435+
MICRO version is `0`, and the version includes a `dev` segment.
435436

436437
At all other times, the code is considered stable and release-ready.
437438

@@ -446,7 +447,7 @@ failed prior to the change.
446447

447448
New features and backward incompatible changes may only be merged to the
448449
`master` branch when the MAJOR and/or MINOR version is in development status
449-
pursuant to [Semantic Versioning].
450+
pursuant to the [Python Version Specification].
450451

451452
A separate commit to the `master` branch should be made to bump up the MAJOR
452453
and/or MINOR version and set development status. Only then will any pull
@@ -459,7 +460,7 @@ request back-porting the fix made against that branch. The version branch should
459460
be named with the most recently released MINOR version. For example, if the
460461
`master` branch is at `3.1.dev0` and the most recent MINOR release was `3.0.4`,
461462
then the version branch would be named `3.0` and any releases from that branch
462-
would increment the PATCH version only (`3.0.5`, `3.0.6`...).
463+
would increment the MICRO version only (`3.0.5`, `3.0.6`...).
463464

464465
## Release Process
465466

@@ -491,12 +492,12 @@ following steps:
491492
label.The relevant check verifies that the version defined in the
492493
code matches the latest version in the changelog and that the
493494
changelog no longer lists an `unreleased` entry. This check is
494-
nessecary to ensure deployment will not fail later.
495+
necessary to ensure deployment will not fail later.
495496

496497
6. After all checks have passed, merge the pull request.
497498

498499
7. Create a git tag with the new version as the tag name (in the format X.X.X
499-
with no prefixes or sufixes) and push to the [Python-Markdown/markdown]
500+
with no prefixes or suffixes) and push to the [Python-Markdown/markdown]
500501
repository. The new tag should trigger a GitHub workflow which will
501502
automatically deploy the release to PyPI and update the documentation.
502503

@@ -599,8 +600,8 @@ for details.
599600
[tox]: https://tox.readthedocs.io/en/latest/
600601
[aspell]: http://aspell.net/
601602
[test tools]: test_tools.md
602-
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html
603-
[markdown/__meta__.py]: https://github.com/Python-Markdown/markdown/blob/master/markdown/__meta__.py#L29
603+
[Python Version Specification]: https://packaging.python.org/en/latest/specifications/version-specifiers/
604+
[markdown/__meta__.py]: https://github.com/Python-Markdown/markdown/blob/master/markdown/__meta__.py#L31
604605
[PEP 440]: https://www.python.org/dev/peps/pep-0440/
605606
[PyPI]: https://pypi.org/project/Markdown/
606607
[Python-Markdown/Python-Markdown.github.io]: https://github.com/Python-Markdown/Python-Markdown.github.io

0 commit comments

Comments
 (0)