mirror of
https://github.com/python/cpython.git
synced 2025-10-03 05:35:59 +00:00
[3.12] Docs: Ensure no warnings are found in the NEWS file before a given line number (GH-119221) (#119266)
This commit is contained in:
parent
8b6175c261
commit
22bef96237
7 changed files with 49 additions and 8 deletions
3
.github/workflows/reusable-docs.yml
vendored
3
.github/workflows/reusable-docs.yml
vendored
|
@ -62,7 +62,8 @@ jobs:
|
|||
python Doc/tools/check-warnings.py \
|
||||
--annotate-diff '${{ env.branch_base }}' '${{ env.branch_pr }}' \
|
||||
--fail-if-regression \
|
||||
--fail-if-improved
|
||||
--fail-if-improved \
|
||||
--fail-if-new-news-nit
|
||||
|
||||
# This build doesn't use problem matchers or check annotations
|
||||
build_doc_oldest_supported_sphinx:
|
||||
|
|
|
@ -13,6 +13,9 @@ import sys
|
|||
from pathlib import Path
|
||||
from typing import TextIO
|
||||
|
||||
# Fail if NEWS nit found before this line number
|
||||
NEWS_NIT_THRESHOLD = 200
|
||||
|
||||
# Exclude these whether they're dirty or clean,
|
||||
# because they trigger a rebuild of dirty files.
|
||||
EXCLUDE_FILES = {
|
||||
|
@ -245,6 +248,32 @@ def fail_if_improved(
|
|||
return 0
|
||||
|
||||
|
||||
def fail_if_new_news_nit(warnings: list[str], threshold: int) -> int:
|
||||
"""
|
||||
Ensure no warnings are found in the NEWS file before a given line number.
|
||||
"""
|
||||
news_nits = (
|
||||
warning
|
||||
for warning in warnings
|
||||
if "/build/NEWS:" in warning
|
||||
)
|
||||
|
||||
# Nits found before the threshold line
|
||||
new_news_nits = [
|
||||
nit
|
||||
for nit in news_nits
|
||||
if int(nit.split(":")[1]) <= threshold
|
||||
]
|
||||
|
||||
if new_news_nits:
|
||||
print("\nError: new NEWS nits:\n")
|
||||
for warning in new_news_nits:
|
||||
print(warning)
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
def main(argv: list[str] | None = None) -> int:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
|
@ -264,6 +293,14 @@ def main(argv: list[str] | None = None) -> int:
|
|||
action="store_true",
|
||||
help="Fail if new files with no nits are found",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--fail-if-new-news-nit",
|
||||
metavar="threshold",
|
||||
type=int,
|
||||
nargs="?",
|
||||
const=NEWS_NIT_THRESHOLD,
|
||||
help="Fail if new NEWS nit found before threshold line number",
|
||||
)
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
if args.annotate_diff is not None and len(args.annotate_diff) > 2:
|
||||
|
@ -304,6 +341,9 @@ def main(argv: list[str] | None = None) -> int:
|
|||
if args.fail_if_improved:
|
||||
exit_code += fail_if_improved(files_with_expected_nits, files_with_nits)
|
||||
|
||||
if args.fail_if_new_news_nit:
|
||||
exit_code += fail_if_new_news_nit(warnings, args.fail_if_new_news_nit)
|
||||
|
||||
return exit_code
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Fixed handling in :meth:`inspect.signature.bind` of keyword arguments having
|
||||
Fixed handling in :meth:`inspect.Signature.bind` of keyword arguments having
|
||||
the same name as positional-only arguments when a variadic keyword argument
|
||||
(e.g. ``**kwargs``) is present.
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Fix TypeError in :func:`email.Message.get_payload` when the charset is :rfc:`2231`
|
||||
encoded.
|
||||
Fix TypeError in :func:`email.message.Message.get_payload` when the charset is
|
||||
:rfc:`2231` encoded.
|
||||
|
|
|
@ -5,5 +5,5 @@ to that instance's class to persist in an internal cache in the
|
|||
class was dynamically created, the class held strong references to other
|
||||
objects which took up a significant amount of memory, and the cache
|
||||
contained the sole strong reference to the class. The fix for the regression
|
||||
leads to a slowdown in :func:`getattr_static`, but the function should still
|
||||
be signficantly faster than it was in Python 3.11. Patch by Alex Waygood.
|
||||
leads to a slowdown in :func:`!getattr_static`, but the function should still
|
||||
be significantly faster than it was in Python 3.11. Patch by Alex Waygood.
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Fix a bug where :func:`sqlite3.iterdump` could fail if a custom :attr:`row
|
||||
Fix a bug where :func:`!sqlite3.iterdump` could fail if a custom :attr:`row
|
||||
factory <sqlite3.Connection.row_factory>` was used. Patch by Erlend Aasland.
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Fix an unraisable exception in :meth:`telnetlib.Telnet.__del__` when the
|
||||
Fix an unraisable exception in :meth:`!telnetlib.Telnet.__del__` when the
|
||||
``__init__()`` method was not called.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue