Bruno Alla
banner
browniebroke.com
Bruno Alla
@browniebroke.com
Backend engineer, Pythonista, Djangonaut, OSS maintainer. French 🇫🇷 living in London 🇬🇧
Reposted by Bruno Alla
Just released! 🚀

Please install and enjoy Python 3.14! 🥧

discuss.python.org/t/python-3-1...

#Python #Python314 #release
October 7, 2025 at 2:29 PM
Current status: trying to give Django 6.0a1 a spin on one of my project. Refuses to install as some of my dependencies require Django<6.0 grrrr

Forked them and removes the upper version pin, everything run smoothly grrr

iscinumpy.dev/post/bound-v...

#python #django #packaging
Should You Use Upper Bound Version Constraints? -
Bound version constraints (upper caps) are starting to show up in the Python ecosystem. This is causing real world problems with libraries following this recommendation, and is likely to continue to get worse; this practice does not scale to large numbers of libraries or large numbers of users. In this discussion I would like to explain why always providing an upper limit causes far more harm than good even for true SemVer libraries, why libraries that pin upper limits require more frequent updates rather than less, and why it is not scalable. After reading this, hopefully you will always consider every cap you add, you will know the (few) places where pinning an upper limit is reasonable, and will possibly even avoid using libraries that pin upper limits needlessly until the author updates them to remove these pins. If this 10,000 word behemoth is a bit long for you, then skip around using the table of contents, or see the TL;DR section at the end, or read version numbers by Bernát Gábor, which is shorter but is a fantastic read with good examples and cute dog pictures. Or Hynek’s Semantic Versioning Will Not Save You Be sure to check at least the JavaScript project analysis before you leave! Also be warned, I pick on Poetry quite a bit. The rising popularity of Poetry is likely due to the simplicity of having one tool vs. many for packaging, but it happens to also have a special dependency solver, a new upper bound syntax, and a strong recommendation to always limit upper versions - in direct opposition to members of the Python core developer team and PyPA developers. Not all libraries with excessive version capping are Poetry projects (like TensorFlow), but many, many of them are. To be clear, Poetry doesn’t force version pinning on you, but it does push you really, really hard to always version cap, and it’s targeting new Python users that don’t know any better yet than to accept bad recommendations. And these affect the whole ecosystem, including users who do not use poetry, but want to depend on libraries that do! I do really like other aspects of Poetry, and would like to eventually help it build binary packages with Scikit-build (CMake) via a plugin, and it has some great developers. If I don’t pick on Poetry enough for you, don’t worry, I have a follow-up post that picks on it in much more detail. Also, check out pdm, which gives many of the benefits of Poetry while following PEP standards. Also pixi, which works with the Conda ecosystem. If you come across something that can’t be solved, try using --exclude-newer <DATE> in uv and pdm. This limits the solve by ignoring packages newer than some date.
iscinumpy.dev
October 6, 2025 at 9:16 PM
Reposted by Bruno Alla
A good example of what `functools.Placeholder` from Python 3.14 allows.
August 31, 2025 at 3:46 PM
@pythonbytes.fm a small shameless plug to follow up on episode 444 on the topic of squashing Django migrations github.com/browniebroke...
@mkennedy.codes @brianokken.bsky.social
#django #migrations
GitHub - browniebroke/django-remake-migrations: A Django admin command to recreate all migrations in a project.
A Django admin command to recreate all migrations in a project. - browniebroke/django-remake-migrations
github.com
August 12, 2025 at 12:22 PM
Reposted by Bruno Alla
July 19, 2025 at 4:04 AM
Reposted by Bruno Alla
Since I've seen/heard it a few times now:

Where the hell is the nonsense coming from that Python data classes are not allowed/supposed to have methods!?

Is it their name (that I was somewhat unhappy w/ for that reason)? Did Eric or Guido say something I've missed?

1/4
July 11, 2025 at 7:16 AM
Reposted by Bruno Alla
Almost 4 months later, here it finally is:

uv: Making Python Local Workflows Fast and Boring in 2025

youtube.com/watch?v=TiBI... 1/3
https://youtube.com/watch?v=TiBIjouDGuI…
July 6, 2025 at 6:44 PM
Reposted by Bruno Alla
The uv build backend is now stable, and considered ready for production use.

An alternative to setuptools, hatchling, etc. for pure Python projects, with a focus on good defaults, user-friendly error messages, and performance.

When used with uv, it's 10-35x faster.
July 3, 2025 at 1:55 AM
Reposted by Bruno Alla
David R. Hagen just solved a small mystery that I mentioned 13 years ago in the mouseover text of a comic drhagen.com/blog/the-mis...
The Missing 11th of the Month - David R Hagen
Personal website of David R Hagen, scientific software engineer
drhagen.com
June 19, 2025 at 11:40 AM
Reposted by Bruno Alla
📣 The DSF is hiring a Django Fellow!

A paid, full-time role to help maintain Django. All the good stuff plus you'll be joining a dedicated team of Fellows 💚

Interested or know someone great?
👉 Apply by July 1: www.djangoproject.com/weblog/2025/...

#Django #Python #OpenSource
DSF calls for applicants for a Django Fellow
Posted by The Fellowship Working Group on June 9, 2025
www.djangoproject.com
June 9, 2025 at 9:25 PM
Reposted by Bruno Alla
What is happening right now?

ChatGPT/OpenAI outage for 3 hours

Heroku down for 4 hours (even their status page is down!) NVIDIA dev docs as well (runs on Heroku)

Pipedrive (CRM) issues for 4 hours

What else is down… and are these connected? Something started 4 hours ago…
June 10, 2025 at 10:36 AM
Reposted by Bruno Alla
If you've not tried it, pressing ? on any GitHub page will bring up a selection of keyboard shortcuts. I wish the window these are in were a little bigger but it shows you what's possible. I find going through notifications much easier with a keyboard than it ever was with a mouse.
June 6, 2025 at 8:06 AM
Reposted by Bruno Alla
I am disappointed in the AI discourse steveklabnik.com/writing/i-am...
I am disappointed in the AI discourse
steveklabnik.com
May 28, 2025 at 5:33 PM
Reposted by Bruno Alla
This piece is perfect. I am prepared to link this to people dozens of times over the next few years.

I am the antithesis of what’s described. If you care, follow me. I don’t care if there’s only a hundred of you, what I care about is we follow each other.

dansinker.com/posts/2025-0...
The Who Cares Era | dansinker.com
dansinker.com
May 28, 2025 at 6:24 AM
Reposted by Bruno Alla
On that note, huge thanks to @daniel.haxx.se for allowing me to copy & extend curl's recent AI guidelines for my projects. I've just added a corresponding section to OctoPrint's Contribution Guidelines and Security Policy:

github.com/OctoPrint/Oc...

octoprint.org/security/
May 21, 2025 at 9:58 AM
Reposted by Bruno Alla
The trailer for the Python documentary is out!

https://youtu.be/pqBqdNIPrbo?si=9LLlghqZkJRAcnpF
May 18, 2025 at 5:08 PM
Reposted by Bruno Alla
Just Write - Moll.dev
moll.dev
May 17, 2025 at 7:18 PM
Reposted by Bruno Alla
The folks behind the “State of …” surveys have a new one, and there are zero questions about coding! Instead, the focus is on us. ✨

The questions are about developer interests, health, work preferences, stuff like that. I’m *super* keen to see the results!

You can take the survey here:
State of Devs 2025
Take the State of Devs survey
survey.devographics.com
May 2, 2025 at 5:10 PM
Reposted by Bruno Alla
👏 Congrats to @browniebroke.com for this DX improvement PR finally getting merged! A nice little boost for 'startproject' and 'startapp' 🚀

#Django

github.com/django/djang...
Fixed #18296 -- Create custom target directory if missing in startproject and startapp by browniebroke · Pull Request #18387 · django/django
Trac ticket number ticket-18296 Branch description Given the following project structure, where apps is a directory: . ├── apps ├── manage.py └── myproject ├── __init__.py ├── asgi.py ...
github.com
May 2, 2025 at 10:18 PM
Reposted by Bruno Alla
pip 25.1 has been released and maintainer Richard Si has a great writeup about it, including:

- #PEP735 dependency groups
- Package installation progress bar
- Resumable downloads
- #PEP751 experimental lockfile generation: pip lock

ichard26.github.io/blog/2025/04...

#Python #pip #packaging
What's new in pip 25.1 - Dependency groups!
pip 25.1 introduces support for Dependency Groups (PEP 735), resumable downloads, and an installation progress bar. Dependency resolution has also received a raft of bugfixes and improvements.
ichard26.github.io
April 26, 2025 at 6:02 PM
How to enjoy debugging in production by Karen Tracey @djangoconeurope
#djangoconeurope
#djangoconeurope2025
April 24, 2025 at 11:57 AM
How to enjoy debugging in production by Karen Tracey @djangoconeurope
#djangoconeurope
#djangoconeurope2025
April 24, 2025 at 11:10 AM
April 24, 2025 at 10:26 AM
How to get foreign key wrong by Haki Benita
#djangoconeurope
#djangoconeurope2025
April 24, 2025 at 9:06 AM
April 24, 2025 at 8:52 AM