Skip to content
Merged
Show file tree
Hide file tree
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
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -698,6 +698,7 @@ peps/pep-0819.rst @emmatyping
peps/pep-0820.rst @encukou
peps/pep-0821.rst @JelleZijlstra
peps/pep-0822.rst @methane
peps/pep-0826.rst @savannahostrowski
# ...
peps/pep-2026.rst @hugovk
# ...
Expand Down
76 changes: 76 additions & 0 deletions peps/pep-0826.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
PEP: 826
Title: Python 3.16 Release Schedule
Author: Savannah Ostrowski
Status: Active
Type: Informational
Topic: Release
Created: 23-Feb-2026
Python-Version: 3.16


Abstract
========

This document describes the development and release schedule for Python 3.16.

Release manager and crew
========================

- 3.16 release manager: Savannah Ostrowski
- Windows installers: Steve Dower
- Mac installers: Ned Deily
- Documentation: Julien Palard


Release schedule
================

3.16.0 schedule
---------------

The dates below use a 17-month development period that results in a 12-month
release cadence between feature versions, as defined by :pep:`602`.

.. release schedule: feature

Expected:

- 3.16 development begins: Tuesday, 2026-05-05
- 3.16.0 alpha 1: Tuesday, 2026-10-13
- 3.16.0 alpha 2: Tuesday, 2026-11-10
- 3.16.0 alpha 3: Tuesday, 2026-12-15
- 3.16.0 alpha 4: Tuesday, 2027-01-12
- 3.16.0 alpha 5: Tuesday, 2027-02-09
- 3.16.0 alpha 6: Tuesday, 2027-03-09
- 3.16.0 alpha 7: Tuesday, 2027-04-13
- 3.16.0 beta 1: Tuesday, 2027-05-04
(No new features beyond this point.)
- 3.16.0 beta 2: Tuesday, 2027-05-25
- 3.16.0 beta 3: Tuesday, 2027-06-15
- 3.16.0 beta 4: Tuesday, 2027-07-13
- 3.16.0 candidate 1: Tuesday, 2027-07-27
- 3.16.0 candidate 2: Tuesday, 2027-08-31
- 3.16.0 final: Tuesday, 2027-10-05

.. release schedule: ends

Subsequent bugfix releases every two months.


3.16 lifespan
-------------

* Python 3.16 will receive bugfix updates approximately every second month for
two years.
* Around the time of the release of 3.18.0 final, the final 3.16 bugfix update
will be released.
* After that, it is expected that security updates (source only) will be
released for the next three years, until five years after the release of
3.16.0 final, so until approximately October 2032.


Copyright
=========

This document is placed in the public domain or under the
CC0-1.0-Universal license, whichever is more permissive.
83 changes: 83 additions & 0 deletions release_management/python-releases.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3614,3 +3614,86 @@ date = 2026-09-01
stage = "3.15.0 final"
state = "expected"
date = 2026-10-01

# -- Python 3.16 --------------------------------------------------------------

[metadata."3.16"]
pep = 826
status = ""
Copy link
Member

Choose a reason for hiding this comment

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

@AA-Turner What value should we have here? The docs build got an error:

ValueError: Saw invalid version status '', expected to be one of EOL, bugfix, end-of-life, feature, in development, pre-release, prerelease, security, security-fixes, stable.
(1 additional frame(s) were not displayed)
...
  File "build_docs.py", line 1018, in main
    return build_docs_with_lock(args, "build_docs_html_en.lock")
  File "build_docs.py", line 1169, in build_docs_with_lock
    return build_docs(args)
  File "build_docs.py", line 1179, in build_docs
    versions = parse_versions_from_peps_site(http)
  File "build_docs.py", line 1264, in parse_versions_from_peps_site
    return Versions.from_json(releases)
  File "build_docs.py", line 118, in from_json
    raise ValueError(msg)

Copy link
Member

Choose a reason for hiding this comment

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

oh this is my fault, sorry. really 'feature' isn't appropriate, i thought i had written the support code to handle the empty string.

I'll put up a fix after dinner (NYC time)

A

branch = ""
release-manager = "Savannah Ostrowski"
start-of-development = 2026-05-05
feature-freeze = 2027-05-04
first-release = 2027-10-06
end-of-bugfix = 2029-10-06
end-of-life = 2032-10-01

[[release."3.16"]]
stage = "3.16.0 alpha 1"
state = "expected"
date = 2026-10-13

[[release."3.16"]]
stage = "3.16.0 alpha 2"
state = "expected"
date = 2026-11-10

[[release."3.16"]]
stage = "3.16.0 alpha 3"
state = "expected"
date = 2026-12-15

[[release."3.16"]]
stage = "3.16.0 alpha 4"
state = "expected"
date = 2027-01-12

[[release."3.16"]]
stage = "3.16.0 alpha 5"
state = "expected"
date = 2027-02-09

[[release."3.16"]]
stage = "3.16.0 alpha 6"
state = "expected"
date = 2027-03-09

[[release."3.16"]]
stage = "3.16.0 alpha 7"
state = "expected"
date = 2027-04-13

[[release."3.16"]]
stage = "3.16.0 beta 1"
state = "expected"
date = 2027-05-04

[[release."3.16"]]
stage = "3.16.0 beta 2"
state = "expected"
date = 2027-05-25

[[release."3.16"]]
stage = "3.16.0 beta 3"
state = "expected"
date = 2027-06-15

[[release."3.16"]]
stage = "3.16.0 beta 4"
state = "expected"
date = 2027-07-13

[[release."3.16"]]
stage = "3.16.0 candidate 1"
state = "expected"
date = 2027-07-27

[[release."3.16"]]
stage = "3.16.0 candidate 2"
state = "expected"
date = 2027-08-31

[[release."3.16"]]
stage = "3.16.0 final"
state = "expected"
date = 2027-10-05
Loading