Python 3.8 is now officially EOL

PEP 569 updated and marked as final. The Downloads page and the devguide updated. The branch is deleted, and a new 3.8 tag is placed in its stead for posterity.

Thanks, 3.8. You were a good one. You brought us assignment expressions, and with that, the Steering Councils. But this wasn’t the only cool new feature.

Things that we take for granted today, like the debugging equals sign in f-strings, or positional-only arguments, or audit events, or the asyncio REPL, were all added in that version. Pickle protocol 4 became the default in 3.8 and still is the default in 3.13. That will change in 3.14 where we’re switching to pickle protocol 5, also added in Python 3.8.

And who could forget that before Python 3.8 it was impossible to continue in a finally: block?

If you’re still a user of Python 3.8, I don’t blame you, it’s a lovely version. But it’s time to move on to newer, greater things. Whether it’s typing generics in built-in collections, pattern matching, except*, low-impact monitoring, or a new pink REPL, I’m sure you’ll find your favorite new feature in one of the versions we still support. So upgrade today!

Signed,
the 3.8 RM.

69 Likes

Thanks for such a well-managed release! 3.8 will always have a special place in my heart, since it’s the first version of Python that I contributed to.

13 Likes

Python 3.8, the walrus edition! Thank @ambv for your service! :medal_military:

13 Likes