Python Steering Council and core developer. Python 3.10/3.11 release manager.
@ThePSF
Fellow. Deals with black holes and parsers. Attracts linker problems.
Quieres saber por qué no hay estrellas verdes? ⭐️ Existe la gravedad negativa? 🕳️ Qué demonios es la conjetura ABC? 🔤
@bvaldivielso
y yo hemos lanzado "Esferas invisibles", un podcast 🎙️ sobre ciencia, tecnología y otras cosas.
After a lot of work, we have finished the implementation of PEP 657 🚀🎉. In Python 3.11🐍, tracebacks will annotate where exactly the error is happening in your code 🤯. No more confusion having to guess what part of the expression is wrong. Learn more at
We have released Python 3.12.0 finally! 🎉🎉🎉🐍
In the CPython release team, we have put a lot of effort into making 3.12 the best version of Python possible. Better f-strings, faster Python, better typing, easier debugging and much more. Get it here:
Python 3.11 is finally released. In the CPython release team, we have put a lot of effort into making 3.11 the best version of Python possible. Better tracebacks, faster Python, exception groups and except*, typing improvements and much more. Get it here:
Python 3.12 will add support for the Linux perf profiler! 🔥🔥 Perf is one of the most powerful and performant profilers for Linux that allows getting a ridiculous amount of information such as CPU counters, cache misses, context switching and much more. 🧵👇
My "magnum opus" for better SyntaxErrors is finished in time to be included in Python 3.10. Now when the interpreter shows SyntaxErrors it will try to highlight the full syntactic construct that is incorrect. This was quite tricky to do but I'm glad we managed to do it in time 😅
🐍 Python 3.10 is finally released 🎉 Thanks to everyone who followed along with the release at the release party 😁. We are super excited to know what cool and exciting things you develop with this new version of the language 🧪. You can get it here:
Python 3.10 🐍 will try to offer you suggestions from existing attributes on AttributeErrors if you mistype the name of the attribute. Is a small detail but we think it can be quite handy 😉. Soon, NameErrors will do the same (if we get it in time for beta freeze 🤞).
Python 3.11.0 beta 1 is here! 🎉🐍 This marks feature freeze which means that no new features or APIs will be added to 3.11 and only bugfixes 🐞 are now allowed. Please, if you maintain any python package help us to test that everything works as expected🙏
Pioneered originally by the smart people at
@pypyproject
🚀🐍, we improved the error you get in CPython if you never close brackets or parentheses. Doing this was surprisingly tricky as our tokenizer couldn't use lines it has already parsed successfully in error messages.
We are adding a new cool decorator in the Memray pytest plugin that will make your test fail if it leaks memory 🤖 Is like valgrind but a LOT of times faster 🚀and it doesn't get confused by the Python interpreter specialised allocator. And configure it is just one line! 🙀
We just gave those IndentationErrors some extra love. In Python3.10 🐍 you will be able to know what kind of block was expecting an indentation and on what line this block is (as opposed to knowing just the line where the parser noticed the problem).
I'm thinking of streaming live the release process of the first beta of Python 3.10. I think it may be an interesting opportunity for people to learn about the process and chat with you all about Python stuff. Maybe is a super boring idea...😅 Is someone interested in this? 🤔
Python 3.10 is bringing a lot of cool things but how much faster is going to be? 🤔 The answer is "it depends" 😉 In the performance benchmark suite () we are seeing speedups up to 25% in some cases 🚀 How this translates to your code depends a lot. 🧵👇
In the Cpython core dev sprint we have started a project to improve the CPython REPL for Python 3.13+ 🎉
The first achievement is showing proper exceptions with source, error messages and locations in the REPL tracebacks. You can compare the before and after in these images:
Join us at the Python 3.10 release party 🥳 that we are organising with the good people of
@PythonDiscord
. We will have several core devs 👩💻 speaking about new Python features and secrets and you can see me making mistakes live! 🚀
#python_release_party
I am humbled and very excited to serve you as the Python 3.10 & 3.11 release manager. I am sure great things will happen on those releases but let's all celebrate the incredible work that
@llanga
has done. We couldn't have 3.8 and 3.9 without you ❤️🐍🎉
Now that
#Python
3.9's feature set is frozen, work has begun on Python 3.10. And with it, a new Release Manager: Pablo Galindo Salgado
@pyblogsal
!
He already started strong, making sure Python is ready for a two-digit minor version. But that's his story to tell! Welcome! 🤜🏻🤛🏻
Python educators and users: I have been working on improving SyntaxError messages in CPython lately. What error (only *SyntaxErrors* for now 😅) messages you or your students have struggle with? Which ones you think we should improve? 🤔 (Pls RT to help reaching more people 🙏).
The oldest piece of CPython, the parser generator (pgen) has been retired and replaced with a new version! 🐍🖥️🥳
The parser generator was the first piece written for Python 29 years ago. It generates the parser rules (in the form of DFAs) from the grammar specification file.
I hope you are getting ready for pattern matching🔡, better error messages🤌, better typing⌨️, and many cool new things🚀 in
#Python310
because we are super close to the final release. We actually just released the first release candidate. Get it here:
We have released version 1.1.0 of memray! 🥳
This release is packed with lots of improvements:
- Report files are ~97% smaller 🤯
- Tracking is up to 10% faster 🚀
- Track separately the Python allocators. 🐍
- Alpine Linux (musl) support 🗻
- Bugfixes 🐞
I hope you like bugfixes🐞, because we have a whole shipment 🚀 of them! Python 3.10.1 is the first maintenance release of Python 3.10 as we have packed more than 330 commits of fixes and general improvements 🎉📦. You can get it here:
The battery 🔋 of the M1 MacBook Pro laptops is clearly close to violating the laws of thermodynamics. In the last 2 days, I have been compiling CPython and a bunch of C extensions heavily, editing my PyCon presentation, rendering 3D with Blender and the battery is at 33% still!
Some news on the steering council position regarding PEP 703: Making the Global Interpreter Lock Optional in CPython. This is the first time we face a decision of this calibre so please be patient while we figure out the best way forward together 🙏
I cannot believe I am writing this, but the cursed 👻 release of Python 3.11.0b4 is finally available 😱🚀🚀🚀
Please, please, please, help us to ensure Python 3.11 works for everyone by testing your code with the beta releases. (Pls RT for visibility)
Python 3.10.0 🐍is one month 📅away, can you believe it? Meanwhile, we have the final release candidate for you while we squash the last bugs 🐞, polish the docs 📕and make sure the final release will be as shiny as possible✨ Get the latest RC here:
⚠️Special Python beta release⚠️ Unfortunately the last Python 3.11 beta we released (3.11.0b2) had a tiny, tiny, tiny problem... it didn't work with pytest 😅. Turns out pytest is quite popular, so we decided to do another beta release with the fix😉
Do you hear that? 😯 That's the sound of the new alpha release of Python 3.10 🐍 now with 100% more pattern matching. If I was you, I would download it and start playing with it. Extra points if you report us any 🐞 you find along the way! Get it here:
Python 3.11.0 is almost ready 🎉💪 The last release, Python 3.11 release candidate 1 (3.11.0rc1), is the penultimate release preview before we get to the official release in October 👀🗓️
Please, help us to test it 🐞🐛😎
You can download it here:
I will be streaming the release of Python 3.10 beta 1 🐍 tomorrow (3rd May) at 20:00 BST. Come and join us at to talk about Python and watch me make mistakes live 😉 This is a good opportunity to learn about our processes and how Cpython is released 🚀
One time I interviewed at $BIG_COMPANY the interviewer failed me because they didn't like the implementation I did for a parser and told me I should learn how to do better parsers. Years later, now that person is using the PEG parser we developed for CPython every day at work 🧐
I am so honoured to serve in the Python 🐍 Steering Council together with
@WillingCarol
@brettsky
@pumpichank
and
@Yhg1s
! Congrats to my colleagues! Thanks to all the core devs who voted (from me or not) and for all your confidence and support ❤️. I will do my best to serve!
You can read about the talk 🙋I gave in the Python 🐍 language summit about moving f-strings to the grammar 📑and what that means for the future of f-strings here 👀:
After fighting with some release blockers and fixing some pending reference leaks, we finally have Python 3.10.0 beta 2 ready to go! We strongly encourage maintainers of third-party Python projects to test with 3.10 during the beta phase and report issues!
The latest bugfix 🐞release for Python 3.10 (3.10.3) is out after a bunch of failed attempts 😵💫 This release comes a bit earlier than normal as it packs a ton of security fixes 🔐 (including more than 20 CVEs 😱) so you really want to upgrade!
Ok, that was quite fun and exhausting! The release of 3.10.0b1 and branch rename only took 4 hours and we *only* broke GitHub once 😅. Thank you all for being there ❤️
There are no easy releases these days! 😓 After a week of delay due to several release blockers ✋, buildbot problems 🤖and pandemic-related difficulties 🦠, here is 3.11.0a6 for you to test 🎉🐍.
Does anyone want bug fixes? 🧐 Because in Python 311.0b2 we have over 160 new commits fixing different things from code to documentation🤯. We still have two more betas to go so help us to make sure we don’t miss anything before the final release🤘
I have modified my keyboard driver so the light under every key represents one CPython buildbot. The blue ones are healthy and the red ones are failing. This was inspired by
@brettsky
in the language summit when talking about ideas for the
@adafruit
devices using
@CircuitPython
Long-term (probably 5+ years), the no-GIL build should be the only build. We do not want to create a permanent split between with-GIL and no-GIL builds (and extension modules).
I started a podcast with
@llanga
about
#Python
internals. We call it "", hope you like it! The first episode is about the core sprint in Brno where we spent last week.
Releasing the fourth beta of Python 3.11.0 is proving an impossible task😵💫. Every time we fixed a bunch of release blockers🛑, new problems appeared 😢 But after a lot of hard work (thanks
@ChristianHeimes
,
@IritKatriel
and Brandt Bucher) we may be able to release it today 🤞
Reading people's nice comments and excitement about something you worked on for so long is probably one of the nicest things of this year ♥️ Thank you all! You are awesome 🤘
Wow! A Python release on the weekend? Do the release management team even rest😴? You better believe it because this is the last of the planned beta releases.
If you maintain a popular Python 🐍 project you certainly want to test it with the last beta!🚀
🚀 Exciting News! 🚀 memray 1.11.0 is out now! 🎉 Packed with bug fixes, performance boosts, and a sleek redesign of the memray live UI and memray tree reporter using the awesome textual library. Check out the cool new features and improvements!
Ok so Python 3.9 was just released thanks to
@llanga
, but you may think: "That's boring, where is Python 4?"🤔
Not so fast! The next release after 3.9 will be 3.10. And you can already test the first alpha, with 100% more science in the announcement:
I just finishing the new "Design of CPython’s Garbage Collector" section in the CPython's 🐍 developer guide and I am very happy how it ended looking 🥳🥳
Lots of cool and✨arcane✨ knowledge collected in there! 🧙
This means that since Python 3.12, perf will be able to "see" python calls and show them in the stack. This allows you to generate very easily these kinds of flame graphs that have both C/C++/Rust code and Python code.
Do you want to watch how we release Python 3.11 live? 🐍🎉 Join us in the 3.11 release party organised with the good people of
@PythonDiscord
at 17:00 UTC+0! 📆 We will talk about some of the new cool features and a sneak peek into what's coming in 3.12 👀
Finally, "PEP 701 - Syntactic formalization of f-strings" is ready 🚀🔥✨
We think this will make f-strings even more awesome but it will also help a lot with the maintenance of CPython 🤘
Thanks to my awesome co-authors
@isidentical
and
@isidentical
♥️
Well, that was fast: we have it now working for NameError. If you like me have problems spelling Schwarzschild you will love the upcoming Python3.10 🐍 feature that will offer suggestions on NameErrors.
Python 3.10 🐍 will try to offer you suggestions from existing attributes on AttributeErrors if you mistype the name of the attribute. Is a small detail but we think it can be quite handy 😉. Soon, NameErrors will do the same (if we get it in time for beta freeze 🤞).
Here we are. The universe. The vastness of spacetime. At the edge. The last frontier. The last beta *(conditions apply) for Python 3.11 🐍.
We have defied the gods of release blockers and we have won by using the required amount of ruse and subterfuge.
We can now test 🧪continuously CPython in M1 macOS 🍏thanks to the kind donation that
@Lukasaoz
made to the PSF. I just configured the buildbot 🤖:
And it has been immediately useful 😅:
Thanks a lot,
@Lukasaoz
for your help! 🙏
Big shootout to the rest of the PEP 657 team:
@isidentical
and
@__ammar2__
that have pushed against tons of bugs and complications during design and development. You rock 🤘
Summer is almost here (at least in half of the planet) and Python 3.10 is finishing baking in the oven. If you want to taste it before is ready (and if you are a library developer, you certainly do!) beta 3 is ready, but be careful as is still very hot 🔥
You can tell that we are slowly getting closer to the first beta as the number of release blockers that we need to fix on every release starts to increase 😅 But we did it! 🎉Thanks to everyone that helped the release team get things ready 🤟❤️
I created a new PEP proposal to try to remove a small footgun with assert statements 🔫 Is quite sneaky and Python already warns but I think is better to make Python do what people expect instead of just saying "your code is wrong, change it this way" 😉
We have published Episode 2 of the podcast! 🎙️📷 In this episode we've read PEP 703 so you don't have to! Do you want to know all the technical details on how we plan to remove the GIL? Then buckle up and join us!
#Python
@anthonypjshaw
In Python 3.11 there will be almost no overhead for Python to Python calls thought. Mark and I worked on inlining the ceval loops so there is no consumption of the C stack. And the references to the arguments are stolen from the caller so there is close to 0 overhead 🚀
Here you have a nice package 🚚📦of 200 commits of bugfixes 🐞 and documentation improvements freshly made for Python 3.10. Go and download it when is still hot 🔥:
Once more I am humbled and honoured to serve in the Python 🐍 Steering Council 2024 with my amazing colleagues
@Yhg1s
@emilyemorehouse
@gpshead
@pumpichank
! Thanks to all of you for your trust and support 🙏🖤 I will do my best to serve and ensure all voices are represented!
The engines of the secret Python release manager machine have finished producing a new pre-release for Python 3.10: this time is the second alpha version. Go get it here:
You can even learn something cool about infinite cardinals in the release page 🤯
Yeah, no kidding! 😵💫 3.11.0a4 had a ridiculous amount of release blockers 🧐 we needed to solve and while everything was on fire we discovered something that made us make an early 3.10.2 release 🤯(you should upgrade: read the release notes for more info⚠️)! What a week 😅
#Python
3.10.2, 3.9.10, and 3.11.0a4 now available! 🚀
The first three releases of 2022 were cursed! What is usually a pretty mundane and largely automated process, turned out to be three separate curveballs. Fortunately, we didn't let 'em strike us out!
We have a new cool shiny new landing page for Memray!✨I think I have exhausted my design capabilities as a systems programmer person but I am pleased with the result 😆
I assume the lesson here is "don't worry about what people think about your performance in interviews, in most cases it has almost no correlation with anything that matters" 😉
Feature freeze for 3.11 is upon us 🥶. The latest alpha release (3.11.0a7) is available for testing. Once the first beta for 3.11 is released in one month, no more features will be allowed in this version so if you have something in mind,now is the time🚀
Wanna see some ridiculously obscure bug of Python 3.11? 🐞🧙♂️ Check these two code samples. In the traceback of the first one, the last line is missing and the line number is wrong but changing the name of a variable (that doesn't even appear in the traceback) makes it work🤯
PEP 701 is accepted! 🎉🎉🎉🎉🤘
Thanks to my awesome co-authors
@isidentical
@lysnikolaou
and for the community for your help making the proposal even better.
Test you code with 3.11.0b4
Test you code with 3.11.0b4
Test you code with 3.11.0b4
Test you code with 3.11.0b4
Test you code with 3.11.0b4
Test you code with 3.11.0b4
Test you code with 3.11.0b4
Test you code with 3.11.0b4
My GitHub Sponsors profile is live!🚀 If you enjoy my work on better error messages 🖥️ for CPython (featured in Python 3.10) or any of the other areas I work actively on (there is a list in the link), you can sponsor me to support my open source work 💖
You haven't experienced true despair until you have gdb attached to another gdb attached to your program linked with a glibc version you just compiled yourself with extra debug symbols. I swear I am not making this up. The abyss is real and is made up of debuggers with bugs😵💫
As the person who released 3.10 and also added tons of new error messages in the parser, a new error message mechanism in the grammar and one entire new error message PEP, I would recommend to not ignore that smoke as it may be making too hard to appreciate the work of others
Third, horrible error messages. It's only in version THREE point TEN that they're even trying to make these readable. Heuristics help (ignore the smoke, look for the fire) but new programmers don't need pages of insane stack trace to get to a non-helpful error
Hi 👋This is Pablo from your friendly Python release manager team! We have a bunch of tasty bugfix releases for Python 3.10.10 and Python 3.11.2 and a new alpha for Python 3.12 that you don't want to miss!
This is super powerful because there are **a lot** of Python libraries that call native code 👾(C/C++/rust...) underneath and this will allow you to see how much time is spent on actual Python and how much in native code.🐍