Notice: While Javascript is not essential for this website, your interaction with the content will be limited. Please turn Javascript on for the full experience.

PEP 569 -- Python 3.8 Release Schedule

PEP:569
Title:Python 3.8 Release Schedule
Author:Łukasz Langa <lukasz at python.org>
Status:Active
Type:Informational
Created:27-Jan-2018
Python-Version:3.8

Abstract

This document describes the development and release schedule for Python 3.8. The schedule primarily concerns itself with PEP-sized items.

Release Manager and Crew

  • 3.8 Release Manager: Łukasz Langa
  • Windows installers: Steve Dower
  • Mac installers: Ned Deily
  • Documentation: Julien Palard

3.8 Lifespan

3.8 will receive bugfix updates approximately every 1-3 months for approximately 18 months. After the release of 3.9.0 final, a final 3.8 bugfix update will be released. After that, it is expected that security updates (source only) will be released until 5 years after the release of 3.8 final, so until approximately October 2024.

Release Schedule

3.8.0 schedule

Actual:

  • 3.8 development begins: Monday, 2018-01-29
  • 3.8.0 alpha 1: Sunday, 2019-02-03
  • 3.8.0 alpha 2: Monday, 2019-02-25
  • 3.8.0 alpha 3: Monday, 2019-03-25
  • 3.8.0 alpha 4: Monday, 2019-05-06
  • 3.8.0 beta 1: Tuesday, 2019-06-04 (No new features beyond this point.)
  • 3.8.0 beta 2: Monday, 2019-07-04
  • 3.8.0 beta 3: Monday, 2019-07-29
  • 3.8.0 beta 4: Friday, 2019-08-30
  • 3.8.0 candidate 1: Tuesday, 2019-10-01
  • 3.8.0 final: Monday, 2019-10-14

Subsequent bugfix releases at a bi-monthly cadence.

Expected: - 3.8.1 candidate 1: Monday, 2019-12-09 - 3.8.1: Monday, 2019-12-16

Features for 3.8

Some of the notable features of Python 3.8 include:

  • PEP 570, Positional-only arguments
  • PEP 572, Assignment Expressions
  • PEP 574, Pickle protocol 5 with out-of-band data
  • PEP 578, Runtime audit hooks
  • PEP 587, Python Initialization Configuration
  • PEP 590, Vectorcall: a fast calling protocol for CPython
  • Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict)
  • Parallel filesystem cache for compiled bytecode
  • Debug builds share ABI as release builds
  • f-strings support a handy = specifier for debugging
  • continue is now legal in finally: blocks
  • on Windows, the default asyncio event loop is now ProactorEventLoop
  • on macOS, the spawn start method is now used by default in multiprocessing
  • multiprocessing can now use shared memory segments to avoid pickling costs between processes
  • typed_ast is merged back to CPython
  • LOAD_GLOBAL is now 40% faster
  • pickle now uses Protocol 4 by default, improving performance

There are many other interesting changes, please consult the "What's New" page in the documentation for a full list.

Source: https://github.com/python/peps/blob/master/pep-0569.rst