Bruno Alla's Avatar

Bruno Alla

@browniebroke.com

Backend engineer, Pythonista, Djangonaut, OSS maintainer. French πŸ‡«πŸ‡· living in London πŸ‡¬πŸ‡§

467
Followers
173
Following
45
Posts
30.08.2023
Joined
Posts Following

Latest posts by Bruno Alla @browniebroke.com

20 different 'activate your account' emails for services i don't use

20 different 'activate your account' emails for services i don't use

hey can anyone tell me if this is good or not

04.02.2026 21:14 πŸ‘ 147 πŸ” 8 πŸ’¬ 36 πŸ“Œ 5
How to think about Gas Town Blog post: How to think about Gas Town by Steve Klabnik

How to think about Gas Town: steveklabnik.com/writing/how-...

15.01.2026 18:36 πŸ‘ 141 πŸ” 16 πŸ’¬ 21 πŸ“Œ 2
Updated XKCD "All modern digital infrastructure" looking even more perilous.

Updated XKCD "All modern digital infrastructure" looking even more perilous.

Give the wonderful folks on your systems and security teams lots of pats on the back.

This is the hellscape they inhabit daily.

20.11.2025 23:49 πŸ‘ 16 πŸ” 7 πŸ’¬ 2 πŸ“Œ 1
Two snakes enjoying a pie with 3.14 on the top and Ο€ crimping.

Two snakes enjoying a pie with 3.14 on the top and Ο€ crimping.

Just released! πŸš€

Please install and enjoy Python 3.14! πŸ₯§

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

#Python #Python314 #release

07.10.2025 14:29 πŸ‘ 49 πŸ” 25 πŸ’¬ 1 πŸ“Œ 3

TL;DR It's 2025, we have great tools to let users pin their dependencies in the final project

Don't do it in your PyPI package UNLESS you have a very good reason to (known incompatibility) - spoiler alert: you probably don't

This kind of thing just deter people from testing early releases

06.10.2025 21:16 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
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.

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

06.10.2025 21:16 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Code diagram showing usage of functools.Placeholder.
Full code:

from functools import Placeholder as _P, partial
import string

remove_punctuation = partial(
    str.translate,
    _P,
    str.maketrans("", "", string.punctuation),
)

remove_punctuation("Hello, world!")
# 'Hello world'

Code diagram showing usage of functools.Placeholder. Full code: from functools import Placeholder as _P, partial import string remove_punctuation = partial( str.translate, _P, str.maketrans("", "", string.punctuation), ) remove_punctuation("Hello, world!") # 'Hello world'

A good example of what `functools.Placeholder` from Python 3.14 allows.

31.08.2025 15:46 πŸ‘ 21 πŸ” 4 πŸ’¬ 2 πŸ“Œ 0
Preview
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

@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

12.08.2025 12:22 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image
19.07.2025 04:04 πŸ‘ 11 πŸ” 8 πŸ’¬ 2 πŸ“Œ 0

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

11.07.2025 07:16 πŸ‘ 15 πŸ” 3 πŸ’¬ 5 πŸ“Œ 0

Someone mentioned that at work a few months back and I was like WTF did I misunderstood something about dataclasses...

11.07.2025 09:11 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Doesn't explain the diff with test --parallel though

10.07.2025 13:45 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

There is an overhead with xdist and I found that it paid off on longer test suites. You'd go down to a few minutes from 10-15 mins, but when it takes ~60s to run the whole thing, gains are not as visible/impressive

10.07.2025 13:44 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

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

06.07.2025 18:44 πŸ‘ 55 πŸ” 18 πŸ’¬ 6 πŸ“Œ 4
Post image

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.

03.07.2025 01:55 πŸ‘ 236 πŸ” 43 πŸ’¬ 5 πŸ“Œ 3
The Missing 11th of the Month - David R Hagen Personal website of David R Hagen, scientific software engineer

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...

19.06.2025 11:40 πŸ‘ 3193 πŸ” 604 πŸ’¬ 60 πŸ“Œ 88
Preview
DSF calls for applicants for a Django Fellow Posted by The Fellowship Working Group on June 9, 2025

πŸ“£ 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

09.06.2025 21:25 πŸ‘ 13 πŸ” 11 πŸ’¬ 0 πŸ“Œ 0
Post image Post image Post image Post image

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…

10.06.2025 10:36 πŸ‘ 175 πŸ” 29 πŸ’¬ 13 πŸ“Œ 14

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.

06.06.2025 08:06 πŸ‘ 7 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
I am disappointed in the AI discourse

I am disappointed in the AI discourse steveklabnik.com/writing/i-am...

28.05.2025 17:33 πŸ‘ 915 πŸ” 179 πŸ’¬ 210 πŸ“Œ 88
Preview
The Who Cares Era | dansinker.com

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...

28.05.2025 06:24 πŸ‘ 45 πŸ” 5 πŸ’¬ 6 πŸ“Œ 2

Fair and well written! Was considering how to write such a policy for some projects. I'll bookmark this as an inspiration.

21.05.2025 21:10 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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/

21.05.2025 09:58 πŸ‘ 12 πŸ” 2 πŸ’¬ 2 πŸ“Œ 0

The trailer for the Python documentary is out!

https://youtu.be/pqBqdNIPrbo?si=9LLlghqZkJRAcnpF

18.05.2025 17:07 πŸ‘ 2 πŸ” 4 πŸ’¬ 1 πŸ“Œ 0
Just Write - Moll.dev

Just Write moll.dev/notes/justwr...

17.05.2025 19:18 πŸ‘ 54 πŸ” 10 πŸ’¬ 7 πŸ“Œ 1
Preview
State of Devs 2025 Take the State of Devs survey

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:

02.05.2025 17:10 πŸ‘ 103 πŸ” 31 πŸ’¬ 1 πŸ“Œ 2
Preview
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 ...

πŸ‘ 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...

02.05.2025 22:18 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
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.

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

26.04.2025 18:02 πŸ‘ 22 πŸ” 8 πŸ’¬ 0 πŸ“Œ 0
Post image

How to enjoy debugging in production by Karen Tracey @djangoconeurope
#djangoconeurope
#djangoconeurope2025

24.04.2025 11:57 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Post image

How to enjoy debugging in production by Karen Tracey @djangoconeurope
#djangoconeurope
#djangoconeurope2025

24.04.2025 11:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0