Skip to content

Commit 9831c0b

Browse files
authored
Merge branch 'main' into henryiii/feat/partially-dynamic-metadata
2 parents dd603a1 + 67b709a commit 9831c0b

43 files changed

Lines changed: 4960 additions & 207 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,8 @@ peps/pep-0807.rst @dstufft
686686
peps/pep-0808.rst @FFY00
687687
peps/pep-0809.rst @zooba
688688
peps/pep-0810.rst @pablogsal @DinoV @Yhg1s
689+
peps/pep-0811.rst @sethmlarson @gpshead
690+
peps/pep-0814.rst @vstinner @corona10
689691
# ...
690692
peps/pep-2026.rst @hugovk
691693
# ...

.pre-commit-config.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ repos:
6565
args:
6666
- '--exit-non-zero-on-fix'
6767
files: '^pep_sphinx_extensions/tests/'
68+
- id: ruff-format
69+
name: "Format with Ruff"
70+
args:
71+
- '--check'
72+
files: '^release_management/'
6873

6974
- repo: https://github.com/tox-dev/tox-ini-fmt
7075
rev: 1.4.1
@@ -111,3 +116,12 @@ repos:
111116
language: "python"
112117
files: '^peps/pep-\d{4}\.rst$'
113118
require_serial: true
119+
120+
# Hook to regenerate release schedules
121+
- id: "regen-schedules"
122+
name: "Regenerate release schedules from python-releases.toml"
123+
entry: "python -m release_management update-peps"
124+
language: "python"
125+
files: "^release_management/"
126+
pass_filenames: false
127+
require_serial: true

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ test: venv
108108
spellcheck: _ensure-pre-commit
109109
$(VENVDIR)/bin/python3 -m pre_commit run --all-files --hook-stage manual codespell
110110

111+
## regen-all to regenerate generated source files
112+
.PHONY: regen-all
113+
regen-all:
114+
$(PYTHON) -m release_management update-peps
115+
111116
.PHONY: help
112117
help : Makefile
113118
@echo "Please use \`make <target>' where <target> is one of"

pep_sphinx_extensions/pep_zero_generator/pep_index_generator.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from pep_sphinx_extensions.pep_zero_generator import subindices
2727
from pep_sphinx_extensions.pep_zero_generator import writer
2828
from pep_sphinx_extensions.pep_zero_generator.constants import SUBINDICES_BY_TOPIC
29+
from release_management.serialize import create_release_cycle, create_release_json
2930

3031
if TYPE_CHECKING:
3132
from sphinx.application import Sphinx
@@ -55,7 +56,6 @@ def create_pep_json(peps: list[parser.PEP]) -> str:
5556
def write_peps_json(peps: list[parser.PEP], path: Path) -> None:
5657
# Create peps.json
5758
json_peps = create_pep_json(peps)
58-
Path(path, "peps.json").write_text(json_peps, encoding="utf-8")
5959
os.makedirs(os.path.join(path, "api"), exist_ok=True)
6060
Path(path, "api", "peps.json").write_text(json_peps, encoding="utf-8")
6161

@@ -73,3 +73,9 @@ def create_pep_zero(app: Sphinx, env: BuildEnvironment, docnames: list[str]) ->
7373
subindices.generate_subindices(SUBINDICES_BY_TOPIC, peps, docnames, env)
7474

7575
write_peps_json(peps, Path(app.outdir))
76+
77+
release_cycle = create_release_cycle()
78+
app.outdir.joinpath('api/release-cycle.json').write_text(release_cycle, encoding="utf-8")
79+
80+
release_json = create_release_json()
81+
app.outdir.joinpath('api/python-releases.json').write_text(release_json, encoding="utf-8")

peps/pep-0013.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ A council election consists of two phases:
107107
* Phase 2: Each core team member can assign zero to five stars to each
108108
candidate. Voting is performed anonymously. The outcome of the vote
109109
is determined using the `STAR voting system <https://www.starvoting.org/>`__,
110-
modified to use the `Multi-winner Bloc STAR <https://www.starvoting.org/multi_winner>`__)
111-
approach. If a tie occurs, it may
110+
modified to use the `Multi-winner Bloc STAR <https://www.starvoting.org/multi_winner>`__
111+
approach. If a tie that is not automatically resolved by the election software occurs, it may
112112
be resolved by mutual agreement among the candidates, or else the
113113
winner will be chosen at random.
114114

@@ -358,6 +358,9 @@ History of amendments
358358
Adopted Multi-winner Bloc STAR voting for council elections.
359359
* `2024-12-10 <https://discuss.python.org/t/72293/4>`__:
360360
Added a one-week deadline for seconding a vote of no confidence.
361+
* `2025-11-12 <https://discuss.python.org/t/104607>`__:
362+
Clarified that the software used for elections may resolve ties
363+
automatically if possible.
361364

362365

363366

peps/pep-0545.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,9 +322,11 @@ and http://zanata.org/.
322322
python-docs-translations
323323
''''''''''''''''''''''''
324324

325-
The `python-docs-translations GitHub organization <https://github.com/python-docs-translations>`_
326-
is home to several useful translation tools such as the translations
327-
`dashboard <https://github.com/python-docs-translations/dashboard>`_.
325+
The `python-docs-translations GitHub organization <https://github.com/python-docs-translations>`__
326+
is home to several useful translation tools including
327+
`translations.python.org <https://translations.python.org>`__
328+
(`python-docs-translations/dashboard
329+
<https://github.com/python-docs-translations/dashboard>`__).
328330

329331

330332
Documentation Contribution Agreement

peps/pep-0569.rst

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -51,58 +51,76 @@ Release Schedule
5151
3.8.0 schedule
5252
--------------
5353

54+
.. release schedule: feature
55+
56+
Actual:
57+
5458
- 3.8 development begins: Monday, 2018-01-29
5559
- 3.8.0 alpha 1: Sunday, 2019-02-03
5660
- 3.8.0 alpha 2: Monday, 2019-02-25
5761
- 3.8.0 alpha 3: Monday, 2019-03-25
5862
- 3.8.0 alpha 4: Monday, 2019-05-06
5963
- 3.8.0 beta 1: Tuesday, 2019-06-04
6064
(No new features beyond this point.)
61-
6265
- 3.8.0 beta 2: Thursday, 2019-07-04
6366
- 3.8.0 beta 3: Monday, 2019-07-29
6467
- 3.8.0 beta 4: Friday, 2019-08-30
6568
- 3.8.0 candidate 1: Tuesday, 2019-10-01
6669
- 3.8.0 final: Monday, 2019-10-14
6770

71+
.. release schedule: ends
72+
6873
Bugfix releases
6974
---------------
7075

71-
- 3.8.1rc1: Tuesday, 2019-12-10
72-
- 3.8.1: Wednesday, 2019-12-18
73-
- 3.8.2rc1: Monday, 2020-02-10
74-
- 3.8.2rc2: Monday, 2020-02-17
75-
- 3.8.2: Monday, 2020-02-24
76-
- 3.8.3rc1: Wednesday, 2020-04-29
77-
- 3.8.3: Wednesday, 2020-05-13
78-
- 3.8.4rc1: Tuesday, 2020-06-30
79-
- 3.8.4: Monday, 2020-07-13
80-
- 3.8.5: Monday, 2020-07-20 (security hotfix)
81-
- 3.8.6rc1: Tuesday, 2020-09-08
82-
- 3.8.6: Thursday, 2020-09-24
83-
- 3.8.7rc1: Monday, 2020-12-07
84-
- 3.8.7: Monday, 2020-12-21
85-
- 3.8.8rc1: Tuesday, 2021-02-16
86-
- 3.8.8: Friday, 2021-02-19
87-
- 3.8.9: Friday, 2021-04-02 (security hotfix)
88-
- 3.8.10: Monday, 2021-05-03 (final regular bugfix release with binary
89-
installers)
76+
.. release schedule: bugfix
77+
78+
Actual:
79+
80+
- 3.8.1 candidate 1: Tuesday, 2019-12-10
81+
- 3.8.1 final: Wednesday, 2019-12-18
82+
- 3.8.2 candidate 1: Monday, 2020-02-10
83+
- 3.8.2 candidate 2: Monday, 2020-02-17
84+
- 3.8.2 final: Monday, 2020-02-24
85+
- 3.8.3 candidate 1: Wednesday, 2020-04-29
86+
- 3.8.3 final: Wednesday, 2020-05-13
87+
- 3.8.4 candidate 1: Tuesday, 2020-06-30
88+
- 3.8.4 final: Monday, 2020-07-13
89+
- 3.8.5 final: Monday, 2020-07-20
90+
(security hotfix)
91+
- 3.8.6 candidate 1: Tuesday, 2020-09-08
92+
- 3.8.6 final: Thursday, 2020-09-24
93+
- 3.8.7 candidate 1: Monday, 2020-12-07
94+
- 3.8.7 final: Monday, 2020-12-21
95+
- 3.8.8 candidate 1: Tuesday, 2021-02-16
96+
- 3.8.8 final: Friday, 2021-02-19
97+
- 3.8.9 final: Friday, 2021-04-02
98+
(security hotfix)
99+
- 3.8.10 final: Monday, 2021-05-03
100+
(Final regular bugfix release with binary installers)
101+
102+
.. release schedule: ends
90103
91104
Source-only security fix releases
92105
---------------------------------
93106

94107
Provided irregularly on an "as-needed" basis until October 7th 2024.
95108

96-
- 3.8.11: Monday, 2021-06-28
97-
- 3.8.12: Monday, 2021-08-30
98-
- 3.8.13: Wednesday, 2022-03-16
99-
- 3.8.14: Tuesday, 2022-09-06
100-
- 3.8.15: Tuesday, 2022-10-11
101-
- 3.8.16: Tuesday, 2022-12-06
102-
- 3.8.17: Tuesday, 2023-06-06
103-
- 3.8.18: Thursday, 2023-08-24
104-
- 3.8.19: Tuesday, 2024-03-19
105-
- 3.8.20: Friday, 2024-09-06 (final security release)
109+
.. release schedule: security
110+
111+
- 3.8.11 final: Monday, 2021-06-28
112+
- 3.8.12 final: Monday, 2021-08-30
113+
- 3.8.13 final: Wednesday, 2022-03-16
114+
- 3.8.14 final: Tuesday, 2022-09-06
115+
- 3.8.15 final: Tuesday, 2022-10-11
116+
- 3.8.16 final: Tuesday, 2022-12-06
117+
- 3.8.17 final: Tuesday, 2023-06-06
118+
- 3.8.18 final: Thursday, 2023-08-24
119+
- 3.8.19 final: Tuesday, 2024-03-19
120+
- 3.8.20 final: Friday, 2024-09-06
121+
(final security release)
122+
123+
.. release schedule: ends
106124
107125
108126
Features for 3.8

peps/pep-0570.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PEP: 570
22
Title: Python Positional-Only Parameters
33
Author: Larry Hastings <larry@hastings.org>,
4-
Pablo Galindo <pablogsal@python.org>,
4+
Pablo Galindo Salgado <pablogsal@python.org>,
55
Mario Corchero <mariocj89@gmail.com>,
66
Eric N. Vander Weele <ericvw@gmail.com>
77
BDFL-Delegate: Guido van Rossum <guido@python.org>

peps/pep-0596.rst

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ PEP: 596
22
Title: Python 3.9 Release Schedule
33
Author: Łukasz Langa <lukasz@python.org>
44
Discussions-To: https://discuss.python.org/t/pep-596-python-3-9-release-schedule-doubling-the-release-cadence/1828
5-
Status: Active
5+
Status: Final
66
Type: Informational
77
Topic: Release
88
Created: 04-Jun-2019
@@ -40,6 +40,8 @@ Note: the dates below use a 17-month development period that results
4040
in a 12-month release cadence between feature versions, as defined by
4141
:pep:`602`.
4242

43+
.. release schedule: feature
44+
4345
Actual:
4446

4547
- 3.9 development begins: Tuesday, 2019-06-04
@@ -59,46 +61,60 @@ Actual:
5961
- 3.9.0 candidate 2: Thursday, 2020-09-17
6062
- 3.9.0 final: Monday, 2020-10-05
6163

64+
.. release schedule: ends
65+
6266
6367
Bugfix releases
6468
---------------
6569

70+
.. release schedule: bugfix
71+
6672
Actual:
6773

6874
- 3.9.1 candidate 1: Tuesday, 2020-11-24
6975
- 3.9.1 final: Monday, 2020-12-07
7076
- 3.9.2 candidate 1: Tuesday, 2021-02-16
7177
- 3.9.2 final: Friday, 2021-02-19
72-
- 3.9.3: Friday, 2021-04-02 (security hotfix; recalled due to bpo-43710)
73-
- 3.9.4: Sunday, 2021-04-04 (ABI compatibility hotfix)
74-
- 3.9.5: Monday, 2021-05-03
75-
- 3.9.6: Monday, 2021-06-28
76-
- 3.9.7: Monday, 2021-08-30
77-
- 3.9.8: Friday, 2021-11-05 (recalled due to bpo-45235)
78-
- 3.9.9: Monday, 2021-11-15
79-
- 3.9.10: Friday, 2022-01-14
80-
- 3.9.11: Wednesday, 2022-03-16
81-
- 3.9.12: Wednesday, 2022-03-23
82-
- 3.9.13: Tuesday, 2022-05-17 (final regular bugfix release with binary
83-
installers)
78+
- 3.9.3 final: Friday, 2021-04-02
79+
(security hotfix; recalled due to bpo-43710)
80+
- 3.9.4 final: Sunday, 2021-04-04
81+
(ABI compatibility hotfix)
82+
- 3.9.5 final: Monday, 2021-05-03
83+
- 3.9.6 final: Monday, 2021-06-28
84+
- 3.9.7 final: Monday, 2021-08-30
85+
- 3.9.8 final: Friday, 2021-11-05
86+
(recalled due to bpo-45235)
87+
- 3.9.9 final: Monday, 2021-11-15
88+
- 3.9.10 final: Friday, 2022-01-14
89+
- 3.9.11 final: Wednesday, 2022-03-16
90+
- 3.9.12 final: Wednesday, 2022-03-23
91+
- 3.9.13 final: Tuesday, 2022-05-17
92+
(Final regular bugfix release with binary installers)
93+
94+
.. release schedule: ends
8495
8596
8697
Source-only security fix releases
8798
---------------------------------
8899

89100
Provided irregularly on an "as-needed" basis until October 2025.
90101

91-
- 3.9.14: Tuesday, 2022-09-06
92-
- 3.9.15: Tuesday, 2022-10-11
93-
- 3.9.16: Tuesday, 2022-12-06
94-
- 3.9.17: Tuesday, 2023-06-06
95-
- 3.9.18: Thursday, 2023-08-24
96-
- 3.9.19: Tuesday, 2024-03-19
97-
- 3.9.20: Friday, 2024-09-06
98-
- 3.9.21: Tuesday, 2024-12-03
99-
- 3.9.22: Tuesday, 2025-04-08
100-
- 3.9.23: Tuesday, 2025-06-03
101-
- 3.9.24: Thursday, 2025-10-09
102+
.. release schedule: security
103+
104+
- 3.9.14 final: Tuesday, 2022-09-06
105+
- 3.9.15 final: Tuesday, 2022-10-11
106+
- 3.9.16 final: Tuesday, 2022-12-06
107+
- 3.9.17 final: Tuesday, 2023-06-06
108+
- 3.9.18 final: Thursday, 2023-08-24
109+
- 3.9.19 final: Tuesday, 2024-03-19
110+
- 3.9.20 final: Friday, 2024-09-06
111+
- 3.9.21 final: Tuesday, 2024-12-03
112+
- 3.9.22 final: Tuesday, 2025-04-08
113+
- 3.9.23 final: Tuesday, 2025-06-03
114+
- 3.9.24 final: Thursday, 2025-10-09
115+
- 3.9.25 final: Friday, 2025-10-31
116+
117+
.. release schedule: ends
102118
103119
104120
3.9 Lifespan
@@ -107,10 +123,14 @@ Provided irregularly on an "as-needed" basis until October 2025.
107123
3.9 received bugfix updates approximately every 2 months for
108124
approximately 18 months. Some time after the release of 3.10.0 final,
109125
the ninth and final 3.9 bugfix update was released. After that,
110-
it is expected that security updates (source only) will be released
111-
until 5 years after the release of 3.9 final, so until approximately
112-
October 2025.
113-
126+
security updates (source only) were released
127+
until October 31st 2025, that is 5 years after the release of 3.9 final.
128+
129+
As of 2025-10-31, 3.9 has reached the
130+
`end-of-life phase <https://devguide.python.org/devcycle/#end-of-life-branches>`_
131+
of its release cycle. 3.9.25 was the final security release.
132+
The codebase for 3.9 is now frozen and no further updates will be
133+
provided nor issues of any kind will be accepted on the bug tracker.
114134

115135
Features for 3.9
116136
================

peps/pep-0617.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PEP: 617
22
Title: New PEG parser for CPython
33
Author: Guido van Rossum <guido@python.org>,
4-
Pablo Galindo <pablogsal@python.org>,
4+
Pablo Galindo Salgado <pablogsal@python.org>,
55
Lysandros Nikolaou <lisandrosnik@gmail.com>
66
Discussions-To: python-dev@python.org
77
Status: Final

0 commit comments

Comments
 (0)