Planet Python
Follow
Hugo van Kemenade: Releasing Python 3.15.0
The release of Python 3.15.0 was chronicled through a series of updates, beginning two weeks before the final release. Initial excitement built up, with inquiries about anticipated features. On the planned release day, a certificate issue caused a 503 error on crucial Python websites, delaying the process. Once the server issues were resolved, a flaky test and several release-blocker issues, including last-minute lazy import fixes, required attention. To properly incorporate these fixes, a surprise third release candidate, 3.15.0rc3, was announced and released, pushing the final release date back by a week. A dependency on unbackported tests caused a delay in merging one of the lazy import blockers. After the successful release of rc3, the team prepared for the final launch. On the second attempt at the final release, all blockers were cleared, and buildbots were green. However, a bug in the changelog tool, blurb, necessitated a quick fix, update, and backport. Following this, the release artifact build failed due to another blurb-related lockfile issue, which was promptly resolved. Installer builds for macOS and Windows were initiated, with the Windows process requiring manual approval for binary signing. Finally, Python 3.15.0 was released, boasting new features like lazy imports, frozendict, and a faster JIT. The post-release tasks included updating PEP 790, rebuilding documentation, and unlocking the 3.15 branch for further core team merges. The release manager then signaled the next alpha release for Python 3.16.