Merge pull request #12506 from webknjaz/backports/8.2.x/b08b6d1/pr-12501

[PR #12501/b08b6d1 backport][8.2.x] 📝💅 Split trivial change log category into 3
This commit is contained in:
Ronny Pfannschmidt 2024-06-21 15:41:57 +02:00 committed by GitHub
commit 780d0c10cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 155 additions and 35 deletions

View File

@ -66,8 +66,41 @@ repos:
- id: changelogs-rst - id: changelogs-rst
name: changelog filenames name: changelog filenames
language: fail language: fail
entry: 'changelog files must be named ####.(breaking|bugfix|deprecation|doc|feature|improvement|trivial|vendor).rst' entry: >-
exclude: changelog/(\d+\.(breaking|bugfix|deprecation|doc|feature|improvement|trivial|vendor).rst|README.rst|_template.rst) changelog files must be named
####.(
breaking
| deprecation
| feature
| improvement
| bugfix
| vendor
| doc
| packaging
| contrib
| misc
)(.#)?(.rst)?
exclude: >-
(?x)
^
changelog/(
\.gitignore
|\d+\.(
breaking
|deprecation
|feature
|improvement
|bugfix
|vendor
|doc
|packaging
|contrib
|misc
)(\.\d+)?(\.rst)?
|README\.rst
|_template\.rst
)
$
files: ^changelog/ files: ^changelog/
- id: py-deprecated - id: py-deprecated
name: py library is deprecated name: py library is deprecated

34
changelog/.gitignore vendored Normal file
View File

@ -0,0 +1,34 @@
*
!.gitignore
!_template.rst
!README.rst
!*.bugfix
!*.bugfix.rst
!*.bugfix.*.rst
!*.breaking
!*.breaking.rst
!*.breaking.*.rst
!*.contrib
!*.contrib.rst
!*.contrib.*.rst
!*.deprecation
!*.deprecation.rst
!*.deprecation.*.rst
!*.doc
!*.doc.rst
!*.doc.*.rst
!*.feature
!*.feature.rst
!*.feature.*.rst
!*.improvement
!*.improvement.rst
!*.improvement.*.rst
!*.misc
!*.misc.rst
!*.misc.*.rst
!*.packaging
!*.packaging.rst
!*.packaging.*.rst
!*.vendor
!*.vendor.rst
!*.vendor.*.rst

View File

@ -0,0 +1,11 @@
The changelog configuration has been updated to introduce more accurate
audience-tailored categories. Previously, there was a ``trivial``
change log fragment type with an unclear and broad meaning. It was
removed and we now have ``contrib``, ``misc`` and ``packaging`` in
place of it.
The new change note types target the readers who are downstream
packagers and project contributors. Additionally, the miscellaneous
section is kept for unspecified updates that do not fit anywhere else.
-- by :user:`webknjaz`

View File

@ -20,10 +20,22 @@ Each file should be named like ``<ISSUE>.<TYPE>.rst``, where
* ``deprecation``: feature deprecation. * ``deprecation``: feature deprecation.
* ``breaking``: a change which may break existing suites, such as feature removal or behavior change. * ``breaking``: a change which may break existing suites, such as feature removal or behavior change.
* ``vendor``: changes in packages vendored in pytest. * ``vendor``: changes in packages vendored in pytest.
* ``trivial``: fixing a small typo or internal change that might be noteworthy. * ``packaging``: notes for downstreams about unobvious side effects
and tooling. changes in the test invocation considerations and
runtime assumptions.
* ``contrib``: stuff that affects the contributor experience. e.g.
Running tests, building the docs, setting up the development
environment.
* ``misc``: changes that are hard to assign to any of the above
categories.
So for example: ``123.feature.rst``, ``456.bugfix.rst``. So for example: ``123.feature.rst``, ``456.bugfix.rst``.
.. tip::
See :file:`pyproject.toml` for all available categories
(``tool.towncrier.type``).
If your PR fixes an issue, use that number here. If there is no issue, If your PR fixes an issue, use that number here. If there is no issue,
then after you submit the PR and get the PR number you can add a then after you submit the PR and get the PR number you can add a
changelog using that instead. changelog using that instead.

View File

@ -355,45 +355,75 @@ directory = "changelog/"
title_format = "pytest {version} ({project_date})" title_format = "pytest {version} ({project_date})"
template = "changelog/_template.rst" template = "changelog/_template.rst"
[[tool.towncrier.type]] # NOTE: The types are declared because:
directory = "breaking" # NOTE: - there is no mechanism to override just the value of
name = "Breaking Changes" # NOTE: `tool.towncrier.type.misc.showcontent`;
showcontent = true # NOTE: - and, we want to declare extra non-default types for
# NOTE: clarity and flexibility.
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "deprecation" # When something public gets removed in a breaking way. Could be
name = "Deprecations" # deprecated in an earlier release.
showcontent = true directory = "breaking"
name = "Removals and backward incompatible breaking changes"
showcontent = true
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "feature" # Declarations of future API removals and breaking changes in behavior.
name = "Features" directory = "deprecation"
showcontent = true name = "Deprecations (removal in next major release)"
showcontent = true
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "improvement" # New behaviors, public APIs. That sort of stuff.
name = "Improvements" directory = "feature"
showcontent = true name = "New features"
showcontent = true
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "bugfix" # New behaviors in existing features.
name = "Bug Fixes" directory = "improvement"
showcontent = true name = "Improvements in existing functionality"
showcontent = true
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "vendor" # Something we deemed an improper undesired behavior that got corrected
name = "Vendored Libraries" # in the release to match pre-agreed expectations.
showcontent = true directory = "bugfix"
name = "Bug fixes"
showcontent = true
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "doc" # Updates regarding bundling dependencies.
name = "Improved Documentation" directory = "vendor"
showcontent = true name = "Vendored libraries"
showcontent = true
[[tool.towncrier.type]] [[tool.towncrier.type]]
directory = "trivial" # Notable updates to the documentation structure or build process.
name = "Trivial/Internal Changes" directory = "doc"
showcontent = true name = "Improved documentation"
showcontent = true
[[tool.towncrier.type]]
# Notes for downstreams about unobvious side effects and tooling. Changes
# in the test invocation considerations and runtime assumptions.
directory = "packaging"
name = "Packaging updates and notes for downstreams"
showcontent = true
[[tool.towncrier.type]]
# Stuff that affects the contributor experience. e.g. Running tests,
# building the docs, setting up the development environment.
directory = "contrib"
name = "Contributor-facing changes"
showcontent = true
[[tool.towncrier.type]]
# Changes that are hard to assign to any of the above categories.
directory = "misc"
name = "Miscellaneous internal changes"
showcontent = true
[tool.mypy] [tool.mypy]
files = ["src", "testing", "scripts"] files = ["src", "testing", "scripts"]