Latest Python Updates

Latest Programming Updates: Python, Django, PySpark, PyCharm, VS-Code, and More! šŸ

Python 3.13.6 is now available

Posted by Thomas Wouters


Python 3.13.6

The latest version of Python 3.13 is now available! Python 3.13 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. 3.13.6 is the sixth maintenance release of 3.13, containing around 200 bugfixes, build improvements and documentation changes since 3.13.5. Full Changelog Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation, . especially now Regards from your package managers,

Python 3.14 release candidate 1 is go!

Posted by Hugo


Call to action

the first 3.14 release candidate! It’s https://www.python.org/downloads/release/python-3140rc1/ This release, , is the penultimate release preview. Entering the release candidate phase, only reviewed code changes which are clear bug fixes are allowed between this release candidate and the final release. The second candidate (and the last planned release preview) is scheduled for Tuesday, 2025-08-26, while the official release of 3.14.0 is scheduled for Tuesday, 2025-10-07. There will be from this point forward in the 3.14 series, and the goal is that there will be as few code changes as possible. We maintainers of third-party Python projects to prepare their projects for 3.14 during this phase, and where necessary publish Python 3.14 wheels on PyPI to be ready for the final release of 3.14.0, and to help other projects do their own testing. Any binary wheels built against Python 3.14.0rc1 with future versions of Python 3.14. As always, report any issues to . the Python bug tracker Please keep in mind that this is a preview release and while it’s as close to the final release as we can get it, its use is recommended for production environments. Some of the major new features and changes in Python 3.14 are: For more details on the changes to Python 3.14, see . The next pre-release of Python 3.14 will be the final release candidate, 3.14.0rc2, scheduled for 2025-08-26. What’s new in Python 3.14 The installer we offer for Windows is being replaced by our new install manager, which can be installed from or from its . See for more information. The JSON file available for download below contains the list of all the installable packages available as part of this release, including file URLs and hashes, but is not required to install the latest release. The traditional installer will remain available throughout the 3.14 and 3.15 releases. the Windows Store download page our documentation Today, 22nd July, is Pi Approximation Day, because 22/7 is a common approximation of and closer to than 3.14. 22/7 is a Diophantine approximation, named after Diophantus of Alexandria (3rd century CE), which is a way of estimating a real number as a ratio of two integers. 22/7 has been known since antiquity; Archimedes (3rd century BCE) wrote the first known proof that 22/7 overestimates by comparing 96-sided polygons to the circle it circumscribes. Another approximation is 355/113. In Chinese mathematics, 22/7 and 355/113 are respectively known as Yuelü (约玗; yuĆ„ā€œlÇœ; ā€œapproximate ratioā€) and Milü (į†çŽ—; mìlÇœ; ā€œclose ratioā€). Happy ! Pi Approximation Day Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from a Helsinki heatwave after an excellent , EuroPython Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.14.0 beta 4 is here!

Posted by Hugo


Major new features of the 3.14 series, compared to 3.13

the final 3.14 beta! It’s https://www.python.org/downloads/release/python-3140b4/ Python 3.14 is still in development. This release, 3.14.0b4, is the last of four planned beta releases. Beta release previews are intended to give the wider community the opportunity to test new features and bug fixes and to prepare their projects to support the new feature release. We maintainers of third-party Python projects to during the beta phase and report issues found to as soon as possible. While the release is planned to be feature-complete entering the beta phase, it is possible that features may be modified or, in rare cases, deleted up until the start of the release candidate phase (Tuesday 2025-07-22). Our goal is to have after beta 4 and as few code changes as possible after the first release candidate. To achieve that, it will be to get as much exposure for 3.14 as possible during the beta phase. the Python bug tracker This includes creating pre-release wheels for 3.14, as it helps other projects to do their own testing. However, we recommend that your regular production releases wait until 3.14.0rc1, to avoid the risk of ABI breaks. Please keep in mind that this is a preview release and its use is recommended for production environments. Some of the major new features and changes in Python 3.14 are: For more details on the changes to Python 3.14, see . The next pre-release of Python 3.14 will be the first release candidate, 3.14.0rc1, scheduled for 2025-07-22. What’s new in Python 3.14 The installer we offer for Windows is being replaced by our new install manager, which can be installed from or from its . See for more information. The JSON file available for download below contains the list of all the installable packages available as part of this release, including file URLs and hashes, but is not required to install the latest release. The traditional installer will remain available throughout the 3.14 and 3.15 releases. the Windows Store download page our documentation All this talk of and yet some say is wrong. (June 28th, 6/28 in the US) celebrates as the ā€œtrue circle constantā€, as the ratio of a circle’s circumference to its radius, = 6.283185… The declares ā€œa confusing and unnatural choice for the circle constantā€, in part because ā€œ occurs with astonishing frequency throughout mathematicsā€. Tau Day Tau Manifesto If you wish to embrace the good news is added to Python 3.6 in 2016: PEP 628 math.tau When working with radians, it is trivial to convert any given fraction of a circle to a value in radians in terms of . A quarter circle is , a half circle is , seven 25ths is , etc. In contrast with the equivalent expressions in terms of (, , ), the unnecessary and needlessly confusing multiplication by two is gone. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from a cloudy Helsinki, looking forward to Prague and next week, EuroPython Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.14.0 beta 3 is here!

Posted by Hugo


Major new features of the 3.14 series, compared to 3.13

It’s 3.14 beta 3! https://www.python.org/downloads/release/python-3140b3/ Python 3.14 is still in development. This release, 3.14.0b3, is the third of four planned beta releases. Beta release previews are intended to give the wider community the opportunity to test new features and bug fixes and to prepare their projects to support the new feature release. We maintainers of third-party Python projects to during the beta phase and report issues found to as soon as possible. While the release is planned to be feature-complete entering the beta phase, it is possible that features may be modified or, in rare cases, deleted up until the start of the release candidate phase (Tuesday 2025-07-22). Our goal is to have after beta 4 and as few code changes as possible after the first release candidate. To achieve that, it will be to get as much exposure for 3.14 as possible during the beta phase. the Python bug tracker This includes creating pre-release wheels for 3.14, as it helps other projects to do their own testing. However, we recommend that your regular production releases wait until 3.14.0rc1, to avoid the risk of ABI breaks. Please keep in mind that this is a preview release and its use is recommended for production environments. Some of the major new features and changes in Python 3.14 are: For more details on the changes to Python 3.14, see . The next pre-release of Python 3.14 will be the final beta, 3.14.0b4, scheduled for 2025-07-08. What’s new in Python 3.14 The installer we offer for Windows is being replaced by our new install manager, which can be installed from or . See for more information. The JSON file available for download below contains the list of all the installable packages available as part of this release, including file URLs and hashes, but is not required to install the latest release. The traditional installer will remain available throughout the 3.14 and 3.15 releases. the Windows Store our FTP page our documentation If you’re heading out to sea, remember the : Maritime Approximation mph = knots Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from sunny Helsinki with 19 hours of daylight, Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.13.5 is now available!

Posted by Thomas Wouters


Python 3.13.5

When I was younger we would call this a brown paper bag release, but actually, we shouldn’t hide from our mistakes. We’re only human. So, please enjoy: Python 3.13 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. 3.13.5 is the fifth maintenance release of 3.13. 3.13.5 is an expedited release to fix a couple of significant issues with the 3.13.4 release: Several other bug fixes (which would otherwise have waited until the next release) are also included. Special thanks to everyone who worked hard the last couple of days to fix these issues as quickly as possible. Full Changelog As always, upgrading is highly recommended to all users of 3.13. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. Regards from hey, it’s us again, your release team, Thomas Wouters Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.13.4, 3.12.11, 3.11.13, 3.10.18 and 3.9.23 are now available

Posted by Thomas Wouters


Python Release Party

It was only meant to be release day for 3.13.4 today, but poor number 13 looked so lonely… And hey, we had a couple of tarfile CVEs that we had to fix. So most of the Release Managers and all the Developers-in-Residence (including Security Developer-in-Residence Seth Michael Larson) came together to make it a full release party. In addition to the security fixed mentioned above, a few additional changes to the were backported to make the security fixes feasible. (See the full changelogs for each release for more details.) In addition to the security fixes, the fourth maintenance release of Python 3.13 contains more than 300 bugfixes, build improvements and documentation changes. https://www.python.org/downloads/release/python-3134/ https://www.python.org/downloads/release/python-31211/ https://www.python.org/downloads/release/python-31113/ Additional security content in this release (already fixed in older releases for the other versions): As always, upgrading is highly recommended to all users of affected versions. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. Regards from your very tireless release team, Thomas Wouters Pablo Galindo Salgado Ć…ļæ½ukasz Langa Ned Deily Steve Dower

Python 3.14.0 beta 2 is here!

Posted by Hugo


Major new features of the 3.14 series, compared to 3.13

Here’s the second 3.14 beta. https://www.python.org/downloads/release/python-3140b2/ Python 3.14 is still in development. This release, 3.14.0b2, is the second of four planned beta releases. Beta release previews are intended to give the wider community the opportunity to test new features and bug fixes and to prepare their projects to support the new feature release. We maintainers of third-party Python projects to during the beta phase and report issues found to as soon as possible. While the release is planned to be feature-complete entering the beta phase, it is possible that features may be modified or, in rare cases, deleted up until the start of the release candidate phase (Tuesday 2025-07-22). Our goal is to have after beta 4 and as few code changes as possible after the first release candidate. To achieve that, it will be to get as much exposure for 3.14 as possible during the beta phase. the Python bug tracker This includes creating pre-release wheels for 3.14, as it helps other projects to do their own testing. However, we recommend that your regular production releases wait until 3.14.0rc1, to avoid the risk of ABI breaks. Please keep in mind that this is a preview release and its use is recommended for production environments. Some of the major new features and changes in Python 3.14 are: For more details on the changes to Python 3.14, see . The next pre-release of Python 3.14 will be 3.14.0b3, scheduled for 2025-06-17. What’s new in Python 3.14 The installer we offer for Windows is being replaced by our new install manager, which can be installed from or . See for more information. The JSON file available for download below contains the list of all the installable packages available as part of this release, including file URLs and hashes, but is not required to install the latest release. The traditional installer will remain available throughout the 3.14 and 3.15 releases. the Windows Store our FTP page our documentation In 1897, the State of Indiana almost passed a bill defining as 3.2. Of course, it’s not that simple. Edwin J. Goodwin, M.D., claimed to have come up with a solution to an ancient geometrical problem called squaring the circle, first proposed in Greek mathematics. It involves trying to draw a circle and a square with the same area, using only a compass and a straight edge. It turns out to be impossible because is transcendental (and this had been proved just 13 years earlier by Ferdinand von Lindemann), but Goodwin fudged things so the value of was 3.2 (his writings have included at least nine different values of : including 4, 3.236, 3.232, 3.2325… and even 9.2376…). Goodwin had copyrighted his proof and offered it to the State of Indiana to use in their educational textbooks without paying royalties, provided they endorsed it. And so Indiana Bill No.Ā 246 was introduced to the House on 18th January 1897. It was not understood and initially referred to the House Committee on Canals, also called the Committee on Swamp Lands. They then referred it to the Committee on Education, who duly recommended on 2nd February that ā€œsaid bill do passā€. It passed its second reading on the 5th and the education chair moved that they suspend the constitutional rule that required bills to be read on three separate days. This passed 72-0, and the bill itself passed 67-0. The bill was referred to the Senate on 10th February, had its first reading on the 11th, and was referred to the Committee on Temperance, whose chair on the 12th recommended ā€œthat said bill do passā€. A mathematics professor, , happened to be in the State Capitol on the day the House passed the bill and walked in during the debate to hear an ex-teacher argue: Clarence Abiathar Waldo The case is perfectly simple. If we pass this bill which establishes a new and correct value for pi , the author offers to our state without cost the use of his discovery and its free publication in our school text books, while everyone else must pay him a royalty. Waldo ensured the senators were ā€œproperly coachedā€; and on the 12th, during the second reading, after an unsuccessful attempt to amend the bill it was postponed indefinitely. But not before the senators had some fun. The Indiana News reported on the 13th: …the bill was brought up and made fun of. The Senators made bad puns about it, ridiculed it and laughed over it. The fun lasted half an hour. Senator Hubbell said that it was not meet for the Senate, which was costing the State $250 a day, to waste its time in such frivolity. He said that in reading the leading newspapers of Chicago and the East, he found that the Indiana State Legislature had laid itself open to ridicule by the action already taken on the bill. He thought consideration of such a proposition was not dignified or worthy of the Senate. He moved the indefinite postponement of the bill, and the motion carried. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from Helsinki, still light at 10pm, Your release team, Hugo van KemenadeNed DeilySteve DowerĆ…ļæ½ukasz Langa

Latest Django Updates

Latest Programming Updates: Python, Django, PySpark, PyCharm, VS-Code, and More! šŸ

Welcome Our New Fellow - Jacob Tyler Walls

Posted by Django Fellowship Working Group •


We are pleased to welcome Jacob Tyler Walls as the newest member of the Django Fellowship team. Jacob joins Natalia Bidart and Sarah Boyce, who continue in their roles as Django Fellows. Jacob is a full-stack developer and open-source maintainer with five years of experience using and contributing to Django. He got involved in open source thanks to music technology. After majoring in music and philosophy at Williams College, Jacob earned a Ph.D. in music composition from the University of Pennsylvania. Programming coursework both fed into his creative output and also led to roles as a Python generalist working on music information retrieval and as a developer for an interactive music theory instruction site using Django. As a member of Django’s Triage & Review Team, Jacob is passionate about software testing and eager to pay forward the mentorship he received as a contributor. Jacob also co-maintains the Python projects music21 and pylint. Most recently, as part of his work as a core developer of Arches, an open-source Django/Vue framework for managing cultural heritage data, Jacob had the opportunity to explore the expressive potential of Django’s ORM. He gave a DjangoCon talk on his experience adapting QuerySets to work with highly generic data access patterns and an analogous talk for an audience of Arches developers. Since 2022, he has focused on developing GIS-powered Django apps at Azavea and later Farallon Geographics. When time permits, Jacob continues to teach music theory, including most recently as an adjunct faculty member at the University of Delaware. (Perhaps another time Django Reinhardt will end up on the syllabus.) You can find Jacob on GitHub as @jacobtylerwalls and follow occasional musical updates at jacobtylerwalls.com Thank you to all the applicants to the Fellowship. We hope to expand the program in the future, and knowing there are so many excellent candidates gives us great confidence as we work toward that goal.

Django’s accessibility contributing guide

Posted by Rahmat Akintola •


The Django accessibility team is excited to announce that our accessibility contribution guidelines are now live in the documentation šŸŽ‰ These new guidelines are designed to support contributors in making Django more accessible to all users — including those who navigate the web using screen readers, keyboard-only inputs, and other assistive technologies. They outline practical steps for designing and testing accessible user interfaces, how to contribute, follow up on ongoing accessibility issues, and contact the team. For beginners, we also recommend resources like The A11Y Project to get started. We welcome your feedback and contributions as we continue to improve accessibility across the Django ecosystem! Come say hi on the Django Forum: Accessibility contributing guide.

Django bugfix release issued: 5.2.5

Posted by Sarah Boyce •


Today we've issued the 5.2.5 bugfix release. The release package and checksums are available from our downloads page, as well as from the Python Package Index. The PGP key ID used for this release is : 3955B19851EA96EF

DSF member of the month - Jake Howard

Posted by Sarah Abderemane •


For July 2025, we welcome Jake Howard as our DSF member of the month! ⭐ Jake actively shares his knowledge through blog posts and community talks. He is part of the Security Team Working Group and he created the DEP 14. He has been a DSF member since June 2024. You can learn more about Jake by visiting Jake's website and his GitHub Profile. Let’s spend some time getting to know Jake better! Can you tell us a little about yourself (hobbies, education, etc) I’m Jake. I’m a Senior Systems Engineer at Torchbox, where I’ve been for a little over 4 years. ā€œSystems Engineerā€ is a fairly loaded title, and means different things to different people. I like to describe it as doing everything technical to do with Software Engineering which isn’t Programming (Sysadmin, Devops, IT support, Security, Networking), but also doing a fair bit of Programming. Most of my hobbies revolve around technology. I’m an avid self-hoster, running applications on servers both in ā€œthe cloudā€ and in my house. There’s been a server of some kind in my house for the last 10 years. I’m generally quite a private person, so I like to know what’s happening to my data. Since I started working remotely at the start of the 2020 pandemic, I’ve channeled some of this passion into posts on my website, with posts about all manner of things I’ve done from self-hosting to general software engineering. Away from my desk (sort of), I’m a volunteer for Student Robotics, inspiring college students into STEM through competitive robotics (no, not quite like Robot Wars). In school, I was always the quiet one, but now I seem completely at home with public speaking, commentary and otherwise being in front of large crowds of people. I wish I knew the secret - I’d make millions! My GitHub is also pretty active, with contributions all over the place (OpenZFS, Nebula VPN, Gitea, Plausible Analytics, OpenCV, Ansible…). I’m curious, where your nickname ā€œRealOrangeOneā€ comes from? Because a lot of life happens online (especially in the last 5 years), many people haven’t even seen pictures of me, let alone met me in person. I am not in fact a talking piece of fruit. For a while, I tried to stay anonymous, avoiding photos or videos of me on the internet. But since I discovered I enjoy public speaking, I’ve sort of given up on that (for the most part). By now, I’m sure many people have speak. But, for those who don’t know: I, like my father before me, am ginger šŸ”„ (the hair colour, not the plant). The exact specifics of how being ginger lead to ā€œTheOrangeOneā€ are sadly lost to time. I’ve owned theorangeone.net for well over a decade at this point. Unfortunately, it’s not a particularly original nickname, and I have to be fast to claim it when signing up to new services. In some places (where I wasn’t fast enough) I’m forced to sub out ā€œTheā€ for ā€œRealā€, which has lead to some confusions, but not too many. Canonically, I prefer ā€œTheOrangeOneā€, but as we all know, naming things is hard. How did you start using Django? I’ve been using Django since around the 1.8 release. My job at the time was at a Django development agency, so it was the first real Python framework I’d used. The first few weeks there was my first exposure to Django, pip, package management and collaborative software engineering - it was quite a lot to learn at once. I didn’t realise it at the time, but I was working working as a junior alongside a couple fairly well-known names in the Django community like Tom Christie (DRF, Starlette, HTTPX) and Jamie Matthews (django-readers, django-zen-queries). We mostly built single-page apps with React, so I learned Django and Django Rest Framework at the same time, which means I now often have to look back at the docs to remember how forms and templates work. As for contributing to Django, that came much later. My first commit to Django was in May 2024. Having used Django for a while, and written plenty of packages, I’d never stopped to look at how upstream was developed. Around the time of DEP 14 kicking off, I needed to look a bit more at the inner workings of the Django project, to learn what was in store for me. When scrolling through Trac tickets, I found an interesting looking ticket, and got to work. At the time of writing, I’ve now closed 9 Trac tickets across 12 PRs, and some pretty cool features (simple block tags, better Accept header parsing, performance improvements to the URL router) now have my name on them (metaphorically speaking). I wouldn’t call myself an ā€œactiveā€ contributor, but I try and keep an eye on the tickets and forum threads which interest me the most, and chime in when I can. What other framework do you know and if there is anything you would like to have in Django if you had magical powers? Since it’s the first framework I learned, and so far has done everything I need, I’ve mostly used Django. For a few smaller services, I’ve leaned more towards Starlette and AIOHTTP, but for anything even slightly large I’ve just used Django - since I’d end up recreating much of Django using the smaller frameworks anyway. A better (likely official) path for single-file Django (ie without some of the magic module handling) might help draw a few more people in and fill a few more of these ā€œmicro-serviceā€ style use-cases. I’m a class-based views person - I like the encapsulation and easy extension of base views. As with any opinion on the internet, I’m sure many people disagree with me, but to me it’s just personal preference. I’m still surprised it’s a pattern not seen by many other Python frameworks. Following in the footsteps of Python, I often wonder if Django could also do with some dead battery removal (or at least extracting into separate packages). Django is a pretty big framework, and whilst the contrib apps are intended to be separate, they also require hooks and assumptions in other areas of the codebase. I might be wrong (it happens quite a lot), but I suspect some of those packages would be better suited externally, perhaps improving some developer momentum - and lightening the load for the Fellows. Django’s sitemap and syndication (RSS) frameworks are 2 places I wish would get some more love. Outside of Python, I’m a big fan of Rust (as cliche as it may be). Whilst Rust is a popular language, there isn’t really a ā€œDjangoā€ like (batteries included) framework - it’s all composing the pieces you need yourself. However, that doesn’t stop people being very productive with it. As a result, most of the frameworks have very generic interfaces, letting developers pass state around as needed, rather than trying to do everything themselves. Outside of the obvious static typing debate (which I’m in favour of), I’d love to see Django embrace some dependencies, especially if they bring some performance improvements. It may end up being a bad idea, but it might also help those who want to use Django’s modules outside of Django. Many years ago, I tried to be a polyglot - switching between different programming languages (and frameworks) to find new ways of working and match the problem to the correct solution. Now, I’ve settled mostly on Python and Rust. They fit my needs well, I’m very productive in them, and between the 2 there’s not much they can’t handle. Given my background, and the fact most sysadmin-y tools are written in it, I’m really not a fan of Go. What projects are you working on now? Over time, I’ve slowly stepped back from having big side projects - being a new dad sure takes up time and energy. Large projects ended up feeling too much like work outside of work, and I end up either getting distracted or bored. After work, I want to do something fun, not that seems like yet another job. I’m the kind of person who gets the sudden urge to research something interesting for an evening, dive in, then not think about it again for several weeks. It’s not the most productive way of doing things, which is why my posts are all over the place, but it doesn’t feel much like work for me - I lean heavily on what interests me at any time to drive what I want to do. With that said, I’m currently in the process of rebuilding my website. Of course, both the current and new versions are built on Django, but the new build should be easier to maintain, faster, and hopefully won’t need rewriting again in just a couple years. Most of my other projects have been small tools to make my home server that bit nicer. Professionally, I’m not really a developer anymore. As a sysadmin (ish), much of my day-to-day doesn’t involve much programming. I spend much more of my time deploying, monitoring and administering Django applications than I do writing them. My main project at the moment is helping port a large Java / JS deployment over to Django and Wagtail, running on Kubernetes with some very high and interesting stability and scaling requirements. Since most of my professional live has been at software agencies, I’ve tended to bounce between different projects, rather than sitting on a single one. So I’m also supporting on a few other smaller projects as and when I’m needed. Which Django libraries are your favorite (core or 3rd party)? django-tasks, of course! … Oh right, a serious answer… I have to say, one of the most underrated modules in Django is django.utils. It’s not as glamourous as the ORM, forms or cache, but it’s a treasure trove of useful methods. I personally always like looking at the internal helper functions large frameworks use - see the problems they’ve had to solve time and time again. Whilst there’s not the same stability guarantees, I’ve definitely been helped out on a few occasions by some undocumented functions. In that theme, I’m a fan of libraries which do one thing and do it well. I quite like small libraries which aim to solve a problem. There’s definitely a line before that becomes a problem (anyone remember left-pad?), but libraries which scope creep are often harder to work with than the more narrow-scoped ones, whilst the smaller ones just keep on working and making my life easier. For example, django-environ makes reading and parsing environment variables into settings really easy and clean, and django-decorator-include helps including other urlpatterns whilst wrapping them in a decorator - particularly helpful for 3rd-party package’s URLs. Finally, I’ve got a real soft-spot for whitenoise (and ServeStatic for ASGI users). Django’s documentation deters people pretty hard from serving media and static files using Django - and rightly so in performance-critical environments. However, for most people, having to additionally maintain (and secure) nginx is more maintenance than necessary. whitenoise serves static files using Django directly, without any extra configuration, whilst also pre-compressing files for a nice performance boost. To me, it’s such a universally-useful library, I’d love to see it it included in Django itself someday. I’ll throw a bonus shout out for granian, a new (ish) WSGI / ASGI server written in Rust. gunicorn has a near monopoly on running Python apps in production, especially in the WSGI space, so it’s nice to see a newcomer. granian isn’t always faster, but doing the HTTP handling in Rust (and using popular libraries to do it) can improve stability and throughput, without holding the GIL. I’ve not run anything in production with it yet, but I’ve been using it on personal projects for almost a year without issue. What are the top three things in Django that you like? Contrary to what I’ve already said, I actually like Django’s batteries. Sure, there’s quite a few ā€œdeadā€ ones in need of some cleaning up and TLC, but having most of what I need already installed makes me far more productive. I don’t need to think about how to render my form on the page, save the results as a model, or properly handle errors - everything ā€œjust worksā€, and works together. Sure, batteries have their downsides - it makes swapping them out rather difficult, but I’d rather ship my feature sooner than compare the trade-offs of different ORMs. The auto-reloading in django-tasks is only around 8 lines of code thanks to django.utils.autoreload being so easy to hook in to. Secondly: Forms, but not for the reasons you might think. Most forms are created to take submissions from the user, validate them, then probably save them to a model. However, they’re great as general data validation. I’ve written plenty of views with complex querystring requirements, and leaning on forms to validate them saves a lot of boilerplate code. Sure, pydantic might be a bit faster and have more features, but given I’m already productive with django.forms, and it’s already installed and well understood by other developers in my team, I don’t feel the need to reach for something else. Finally, I wouldn’t say it’s quite a ā€œfavouriteā€, and it’s well-known as being far-from-perfect, but I’ve got a real soft-spot for the Django Admin. It lets me focus on building the core of an application, rather than the internal interface - particularly when there are no strong requirements for it, or it’s only going to be used by me and a few others. Since it’s a fair raw view of the database by default, I’ve definitely been bitten by some less-than-restrictive permissions, but there’s generally all the hooks I need. I don’t like building frontends, so only needing to build 1 rather than 2 makes me a lot happier, especially if it comes with authentication, permissions, read-only views and a dark mode šŸ˜Ž! How did you join the security team? I’d love to say it’s an interesting story, stroking my ego that I saved the day. But the reality is, as usual, far less glamorous. As an engineer, I’ve tended towards 2 specialties: Security and Performance, which usually go hand-in-hand. In early 2023, I was invited to join the Wagtail CMS Security team after reporting and subsequently helping fix a memory exhaustion issue. I was already involved in all things security at Torchbox, especially our ISO-27001 certification, so I was already known when I submitted a vulnerability report. Thibaud mentioned to me late last year that the project potentially looking for new members of the security team, to help with resourcing and some potential process improvements within the foundation. I naturally jumped at the opportunity - since the team is generally closed to new members and ā€œfully-staffedā€. After a few gentle reminders (he’s a busy guy), I received a message from Sarah formally inviting me in March. Since then, I’ve tried to review every report which came through, and helped author a few patches. A few reports even had to be raised upstream with Python’s Security Response Team (PSRT). It’s been an interesting experience, and I’m looking forward to seeing how the team developers over the coming years. I’m aware that you have created DEP 14 on the Background Workers, how the work is going so far? Do you need support from the community on anything? DEP 14 (the proposal to add a native background workers API to Django) has been a really interesting journey. I’m beyond humbled to see the community interest behind it. When I started down this road, I’d only intended to start the conversations and help rally the community interest. Since then, and 6000 lines of code later, I’m mostly single-handedly writing a database-backed production-grade task system. Right now, we’re at a bit of a cross-roads. Many of the foundational parts work, relatively well. The difficulty comes with the more complex features: Retries, dependencies, robust execution. Building a task system is easy - building a reliable one people want to actually use is incredibly difficult. If anyone out there is interested in getting involved, please do! Report issues, fix bugs, contribute to design discussions. Most of the APIs are based on what I think looks sensible. Software this large, pivotal and complex can’t be built in isolation - so it needs a diverse audience to ensure we (I) make the right decisions, and design an API people actually want to use that will last and scale for years to come. The next challenge on my list to tackle is timeouts - a highly requested feature. It sounds simple, but the reality is far from it. Many of those challenges sparked the topic of my upcoming PyCon UK talk later this year. Django is celebrating its 20th anniversary this month. Any nice story to share? My personal highlight was DjangoCon Europe 2024 - my first DjangoCon. I ended up bringing the stereotypically grey British weather with me, but I had a great week chatting Django with some interesting people, and putting faces to the names and handles I’d seen online. After the talk announcing DEP 14 and background tasks, I was inundated with people voicing their support - many wondering how it’d taken this long. But personally, I’m more interested in what’s to come. Of course, there’s django-tasks, but the next sets of releases are shaping up to be pretty interesting. Over the last 3-4 years or so, I’ve personally noticed a bit of a resurgence in people’s appetites for change in Django. The 6.x Steering Council have a lot of interesting ideas, and clearly the community agree. People are happy with what Django can do now, but want to bring it a little more up-to-date - and are happy to put in the work to do it. Only a few weeks ago, django-csp was included in core, making it easier to make more secure applications. I’m sure that’s just the start. The fact people are still keen on working on a framework which just celebrated 20 years shows it must be doing something right! Is there anything else you’d like to say? I’d like to thank whoever nominated me to be a DSF member in the first place. To this date, I have no idea who you are. Beyond that, I’m just looking forward to seeing what comes of Django, and Python in general over the next few years. Thank you for doing the interview, Jake !

Djangonaut Space is looking for contributors to be mentors

Posted by Djangonaut Space session organizers •


Hello Django 🌌 Universe! šŸ›°ļøā€ This is Djangonaut Space phoning home about Session 5! We're recruiting technical mentors (Navigators) to join our next 🌟stellar🌟 mission. šŸ‘©ā€šŸš€ We are looking for people who regularly contribute to Django or a Django related package, that want to mentor others. Our next session will be Oct-Nov. šŸš€ Come join us and be a cosmic contributor! Express your interest to be a mentor here. šŸ“š Want to learn more about what it means to be a Navigator: Here's a high-level overview of the role Here's the workbook each Navigator is provided šŸ¤ Interested people will have to complete a 30 minute meet & greet type interview with organizers. āœ‹ If you're interested in applying to be a Djangonaut, applications will open and close in September (dates to be determined). The latest information will be posted on our site, djangonaut.space. Please follow our social media accounts or subscribe to our newsletter for announcements. ā˜„ļø We'll see you around the cosmos! Djangonaut Space session organizers

DjangoCon Africa 2025 Heads to Arusha šŸ‡¹šŸ‡æ

Posted by Julius Boakye •


We’re excited to share that DjangoCon Africa is returning this year — and this time we’re heading to Arusha, Tanzania from August 11–15, 2025! šŸŽ‰ Arusha city view with Mount Meru in the background, credits Halidtz - CC BY-SA 4.0 This second edition builds on the incredible success of the inaugural DjangoCon Africa held in Zanzibar in 2023. That event welcomed over 200 attendees from 22+ countries, with more than half of the participants being women — a powerful statement about the growing diversity and strength of the African tech ecosystem. What to expect at DjangoCon Africa 2025 Five action-packed days of: šŸ’¬ Talks Three full days of diverse talks spanning programming, technology, society, career development, business, education, and more — all with voices from across Africa and around the globe. šŸ–„ļø Workshops Hands-on training led by Django and Python experts — perfect for deepening your skills and learning new ones. šŸ¤ Sprints Join code sprints and contribute to open source projects, including Django itself. šŸ‘©ā€šŸ’» Django Girls workshop A special pre-conference workshop for women interested in web development — part of a global initiative that has introduced thousands of women to Django. šŸ” Discovery & connections Meet developers, designers, educators, and innovators from across the continent. Share stories. Build partnerships. Celebrate African tech talent. Co-hosting with UbuCon Africa 2025 This year’s DjangoCon Africa comes with a special twist: we’re proud to co-host the first-ever UbuCon Africa — a regional gathering of Ubuntu users and contributors. From August 13–15, UbuCon Africa will bring together Linux and open source enthusiasts to celebrate people-powered tech, collaboration, and the Ubuntu spirit of ā€œI am because we are.ā€ Whether you're a die-hard Debian dev or just curious about Ubuntu — you’ll feel right at home. šŸŽŸ Secure your spot & get involved Whether you’re looking to attend, speak, sponsor, or volunteer, DjangoCon Africa has a place for you. šŸ‘‰ Get your tickets šŸ‘‰ Sponsor the event This is more than just a conference. It’s a celebration of community, learning, and open sourceĀ  built by and for people across Africa and beyond. Join us in Arusha this August. Let’s shape the future of Django together.

Happy 20th birthday Django!

Posted by Thibaud Colas & Benjamin Balder Bach •


On July 13th 2005, Jacob Kaplan-Moss made the first commit to the public repository that would become Django. Twenty years and 400+ releases later, here we are – Happy 20th birthday Django! šŸŽ‰ Join the celebrations We want to share this special occasion with you all! Our new 20-years of Django website showcases all online and local events happening around the world, through all of 2025. As well as other opportunities to celebrate! Expect birthday cake šŸŽ‚ and singing Happy Birthday A special quiz or two? see who knows all about Django trivia Showcase of great community achievements View our 20th birthday website Support Django As a birthday gift of sorts, consider whether you or your employer can support the project via donations to our non-profit Django Software Foundation. For this special event, we want to set a special goal! Over the next 20 days, we want to see 200 new donors, supporting Django with $20 or more, with at least 20 monthly donors. Help us making this happen: Donate on the Django website Donate on GitHub sponsors Or check out how to become a Corporate Member Once you’ve done it, post with #DjangoBirthday and tag us on Mastodon / on Bluesky / on X / on LinkedIn so we can say thank you! 26% Of our USĀ $300,000.00 goal for 2025, as of July 13th, 2025, we are at: 25.6% funded $76,707 donated Donate to support Django The next 20 years 20 years is a long time in open source – and we want to keep Django thriving for many more, so it keeps on being the web framework for perfectionists with deadlines as the industry evolves. We don’t know how the web will change it that time, but from Django, you can expect: Many new releases, each with years of support Thousands more packages in our thriving ecosystem An inclusive and supportive community with hundreds of thousands of developers Happy 20th birthday, Django!

Django bugfix release issued: 5.2.4

Posted by Natalia Bidart •


Today we've issued the 5.2.4 bugfix release. The release package and checksums are available from our downloads page, as well as from the Python Package Index. The PGP key ID used for this release is Natalia Bidart: 2EE82A8D9470983E

Our 2024 Annual Impact Report

Posted by Priya Pahwa •


Django has always been more than just a web framework; it’s a testament to what a dedicated community can build together. Behind every Django release, bug fix, or DjangoCon is a diverse network of people working steadily to strengthen our open-source ecosystem. To celebrate our collective effort, the Django Software Foundation (DSF) is excited to share our 2024 Annual Impact Report šŸŽ‰ In this report, you’ll discover key milestones, narratives of community folks, the impact of the events running throughout the year, and much more, ramping up to how we’re laying the groundwork for an even more resilient and inclusive Django community. 2024 Annual Impact Report Why we publish this report Transparency is essential for our community-driven organization. Everyone deserves to know how our work and investments translate into real impact. It’s more than just statistics. It’s our way to: Show how your contributions make a difference, with vibrant highlights from the past year.Ā  Reflect on community progress, recognizing the people and ideas that keep Django thriving. Invite more individuals and organizations to get involved. Looking ahead: call to action As we make progress through 2025, the Django Software Foundation remains dedicated to strengthening the ecosystem that supports developers, contributors, and users around the world. With a growing network of working groups, community initiatives, and the commitment of volunteers, we’re focused on nurturing the people and executing ideas that make Django what it is: the web framework for perfectionists with deadlines.Ā  Help keep this momentum strong by supporting Django through any of the following ways: Donate to Django to support future development Convince your company to become a Corporate Member Join the Foundation as an Individual Member Get involved with the working groups Join our community on the Django Forum or Discord server. Follow and re-share our posts on Mastodon, on Bluesky, or on X. Follow our page on LinkedIn. Donate to Django Thank you, everyone, for your dedication and efforts. Here’s to another year of collaboration, contribution, and shared success! Any feedback or questions about our report? Come say hi in our feedback thread on the Django forum.

Watch the DjangoCon Europe 2025 talks

Posted by Thibaud Colas •


They’re now all available to watch on YouTube, with a dedicated playlist ā­ļø DjangoCon Europe 2025 Dublin. For more quality Django talks in 2025, check out our next upcoming events! DjangoCon Africa 2025 Aug. 11, 2025 | Arusha, Tanzania šŸ‡¹šŸ‡æ DjangoCon US 2025 Sept. 8, 2025 | Chicago, Illinois, USA šŸ‡ŗšŸ‡ø DjangoDay India Nov. 2, 2025 (tentative) | Bangalore, India šŸ‡®šŸ‡³ All the DjangoCon Europe talks Welcome Session Keynote: Django needs you! (to do code review) End-to-end testing Django applications using Pytest with Playwright Turn back time: Converting integer fields to bigint using Django migrations at scale Data-Oriented Django Drei The fine print in Django release notes Django + HTMX: Patterns to Success How to solve a Python mystery Bulletproof Data Pipelines: Django, Celery, and the Power of Idempotency Logs, shells, caches and other strange words we use daily Day 1 Lightning Talks How to Enjoy Debugging in Production KEYNOTE: The Most Bizarre Software Bugs in History Passkeys in Django: the best of all possible worlds How we make decisions in Django 100 Million Parking Transactions Per Year with Django One more time about µDjango Steering Council introduction Supporting Adult Career Switchers: The Unbootcamp Method How to get Foreign Keys horribly wrong in Django Zango: Accelerating Business App Development with an Opinionated Django Meta Dynamic models without dynamic models Evolving Django: What We Learned by Integrating MongoDB Feature Flags: Deploy to some of the people all of the time, and all of the Day 2 Lightning Talks KEYNOTE: Django for Data Science: Deploying Machine Learning Models with Django The incredible Djangonaut Space project Anatomy of a Database Operation One Thousand and One Django Sites Django Admin at Scale: From Milliseconds to Microseconds šŸš€ Just-in-Time Development with Django and HTMX: Faster, Leaner, and Smarter Europe, Django and two-factor authentication Closing session Day 3 Lightning Talks