d0aab9212a
test release tool / test-release-tool (macOS-latest, 3.12) (push) Waiting to run
test release tool / test-release-tool (macOS-latest, 3.13) (push) Waiting to run
test release tool / test-release-tool (macOS-latest, 3.14) (push) Waiting to run
test release tool / test-release-tool (macOS-latest, 3.15) (push) Waiting to run
docker / build (linux/arm64) (push) Waiting to run
docker / push (push) Blocked by required conditions
docs / docs (windows-latest) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.12) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.13) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.14) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.15) (push) Waiting to run
test / test (macOS-latest, 3.10) (push) Waiting to run
test / test (macOS-latest, 3.11) (push) Waiting to run
test / test (macOS-latest, 3.12.10) (push) Waiting to run
test / test (macOS-latest, 3.13) (push) Waiting to run
test / test (macOS-latest, 3.14) (push) Waiting to run
test / test (macOS-latest, 3.15) (push) Waiting to run
test / test (macOS-latest, pypy3.11-v7.3.22) (push) Waiting to run
test / test (windows-11-arm, 3.11) (push) Waiting to run
test / test (windows-11-arm, 3.12.10) (push) Waiting to run
test / test (windows-11-arm, 3.13) (push) Waiting to run
test / test (windows-11-arm, 3.14) (push) Waiting to run
test / test (windows-11-arm, 3.15) (push) Waiting to run
test / test (windows-latest, 3.10) (push) Waiting to run
test / test (windows-latest, 3.11) (push) Waiting to run
test / test (windows-latest, 3.12.10) (push) Waiting to run
test / test (windows-latest, 3.13) (push) Waiting to run
test / test (windows-latest, 3.14) (push) Waiting to run
test / test (windows-latest, 3.15) (push) Waiting to run
test / test (windows-latest, pypy3.11-v7.3.22) (push) Waiting to run
test / coveralls-finish (push) Blocked by required conditions
test / uvloop (macOS-latest) (push) Waiting to run
test / uvloop (windows-11-arm) (push) Waiting to run
test / uvloop (windows-latest) (push) Waiting to run
fuzz / fuzz (3.11) (push) Failing after 1s
fuzz / fuzz (3.12) (push) Failing after 1s
build and publish / sdist + pure wheel (push) Failing after 0s
diff-shades / analysis / base / ${{ matrix.mode }} (push) Has been skipped
diff-shades / compare / ${{ matrix.mode }} (push) Waiting to run
docs / docs (ubuntu-latest) (push) Failing after 2s
fuzz / fuzz (3.10) (push) Failing after 1s
fuzz / fuzz (3.14) (push) Failing after 0s
lint and format / lint (push) Failing after 1s
build and publish / publish-mypyc (push) Waiting to run
diff-shades / configure (push) Failing after 1s
docker / build (linux/amd64) (push) Has been skipped
diff-shades / analysis / target / ${{ matrix.mode }} (push) Has been skipped
fuzz / fuzz (3.13) (push) Failing after 0s
fuzz / create-issue (push) Waiting to run
build and publish / generate wheels matrix (push) Failing after 0s
test release tool / test-release-tool (ubuntu-latest, 3.13) (push) Failing after 1s
build and publish / mypyc wheels ${{ matrix.only }} (push) Has been skipped
build and publish / publish-hatch (push) Waiting to run
test / test (ubuntu-latest, 3.10) (push) Failing after 0s
test / test (ubuntu-latest, 3.11) (push) Failing after 1s
test / test (ubuntu-latest, 3.13) (push) Failing after 0s
test / test (ubuntu-latest, pypy3.11-v7.3.22) (push) Failing after 1s
test / test (ubuntu-latest, 3.15) (push) Failing after 1s
test release tool / test-release-tool (ubuntu-latest, 3.15) (push) Failing after 0s
zizmor / zizmor (push) Failing after 0s
test release tool / test-release-tool (ubuntu-latest, 3.12) (push) Failing after 4s
test release tool / test-release-tool (ubuntu-latest, 3.14) (push) Failing after 3s
test / uvloop (ubuntu-latest) (push) Failing after 1s
test / test (ubuntu-latest, 3.14) (push) Failing after 1s
test / test (ubuntu-latest, 3.12.10) (push) Failing after 5s
55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
"""
|
|
Check that the rev value in the example from ``the_basics.md`` matches
|
|
the latest version of Black. This saves us from forgetting to update that
|
|
during the release process.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
import commonmark
|
|
from bs4 import BeautifulSoup
|
|
|
|
|
|
def main(changes: str, the_basics: str) -> None:
|
|
changes_html = commonmark.commonmark(changes)
|
|
changes_soup = BeautifulSoup(changes_html, "html.parser")
|
|
headers = changes_soup.find_all("h2")
|
|
tags = []
|
|
for header in headers:
|
|
text = header.string or ""
|
|
if text == "Unreleased":
|
|
continue
|
|
# Strip "Version " prefix if present
|
|
tags.append(text.removeprefix("Version "))
|
|
latest_tag = tags[0]
|
|
|
|
the_basics_html = commonmark.commonmark(the_basics)
|
|
the_basics_soup = BeautifulSoup(the_basics_html, "html.parser")
|
|
version_examples = [
|
|
code_block.string
|
|
for code_block in the_basics_soup.find_all(class_="language-console")
|
|
if "$ black --version" in code_block.string # type: ignore[operator]
|
|
]
|
|
|
|
for tag in tags:
|
|
for version_example in version_examples:
|
|
if tag in version_example and tag != latest_tag: # type: ignore[operator]
|
|
print(
|
|
"Please set the version in the ``black --version`` "
|
|
"examples from ``the_basics.md`` to be the latest one.\n"
|
|
f"Expected {latest_tag}, got {tag}.\n"
|
|
)
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
with open("CHANGES.md", encoding="utf-8") as fd:
|
|
changes = fd.read()
|
|
with open(
|
|
os.path.join("docs", "usage_and_configuration", "the_basics.md"),
|
|
encoding="utf-8",
|
|
) as fd:
|
|
the_basics = fd.read()
|
|
main(changes, the_basics)
|