Python Versions

  • Since Python 3.9: PEP 602 -- Annual Release Cycle for Python

  • 12 months (1 year) release cycle

Python Release Cycle

  • Since Python 3.9: PEP 602 -- Annual Release Cycle for Python

  • 12 months (1 year) release cycle

  • 18 months (1.5 year) of bugfix updates

  • 42 months (3.5 year) of security updates

about/img/pep602-release-calendar.png

Figure 1. Python 12 months release cycle.

Which Version?

Table 2. Python Versions [#pyDevGuideVersions]_

Version

PEP

Status

Release

End-of-life

Release Manager

3.12

TBA

future

2023-10

2028-10

TBA

3.11

PEP 664

features

2022-10-03

2027-10

Pablo Galindo Salgado

3.10

PEP 619

bugfix

2021-10-04

2026-10

Pablo Galindo Salgado

3.9

PEP 596

security

2020-10-05

2025-10

Łukasz Langa

3.8

PEP 569

security

2019-10-20

2024-10

Łukasz Langa

3.7

PEP 537

security

2018-06-27

2023-06-27

Ned Deily

3.6

PEP 494

end-of-life

2016-12-23

2021-12-23

Ned Deily

3.5

PEP 478

end-of-life

2015-09-13

2020-09-13

Larry Hastings

3.4

PEP 429

end-of-life

2014-03-16

2019-03-16

Larry Hastings

3.3

PEP 398

end-of-life

2012-09-29

2017-09-29

Georg Brandl

3.2

PEP 392

end-of-life

2011-02-20

2016-02-20

Georg Brandl

3.1

PEP 375

end-of-life

2009-06-27

2012-04-09

Benjamin Peterson

3.0

PEP 361

end-of-life

2008-12-03

2009-01-13

Barry Warsaw

2.7

PEP 373

end-of-life

2010-07-03

2020-04-20

Benjamin Peterson

2.6

PEP 361

end-of-life

2008-10-01

2013-10-29

Barry Warsaw

features

new features, bugfixes, and security fixes are accepted.

prerelease

feature fixes, bugfixes, and security fixes are accepted for the upcoming feature release.

bugfix

bugfixes and security fixes are accepted, new binaries are still released. (Also called maintenance mode or stable release)

security

only security fixes are accepted and no more binaries are released, but new source-only versions can be released

end-of-life

release cycle is frozen; no further changes can be pushed to it.

Why not Python 2?

  • PEP 373 -- Python 2.7 Release Schedule

  • PEP 404 -- Python 2.8 Un-release Schedule

  • 2020-04-20 - end of Life for Python 2.7

  • Python 2 is no longer developed [1, 2]

  • Python 2.7 is the last in 2.x branch, and there won't be Python 2.8

  • Python 2.7.18, the last release of Python 2 [3]

Changes in Python 3

  • All strings are Unicode

  • In Python 3 print() is a function, not a keyword

  • Changes in standard library modules naming and location

  • New string formatting