Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions run_release.py
Original file line number Diff line number Diff line change
Expand Up @@ -1125,6 +1125,15 @@ def modify_the_docs_by_version_page(db: ReleaseShelf) -> None:
)


def announce_release(db: ReleaseShelf) -> None:
if not ask_question(
"Have you announced the release at https://discuss.python.org/c/core-dev/23 "
"and https://www.blogger.com?\n"
"Tip: use the 'release' tag and 'releases' label respectively."
):
raise ReleaseException("The release has not been announced")


Copy link
Member

@ezio-melotti ezio-melotti Oct 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing I often do in similar cases is to use webbrowser.open and rephrase the question to "Do you want to open <url> to make the announcement? (Select no if you announced it already)".
(Depending on the terminal a single click might not always work.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, considered that also and will look into it for a followup. There are a few places it could be useful to pop open the browser, and will also check it's ok with the other RMs.

def post_release_merge(db: ReleaseShelf) -> None:
subprocess.check_call(
["git", "fetch", "--all"],
Expand Down Expand Up @@ -1448,6 +1457,7 @@ def _api_key(api_key: str) -> str:
Task(purge_the_cdn, "Purge the CDN of python.org/downloads"),
Task(modify_the_prereleases_page, "Modify the pre-release page"),
Task(modify_the_docs_by_version_page, "Update docs by version page"),
Task(announce_release, "Announce the release"),
]
automata = ReleaseDriver(
git_repo=args.repo,
Expand Down