atlas news
  Tall, Snarky Canadian
16  august     03h36
What’s missing to have reproducible builds on PyPI
Brett Cannon    While writing the section of my 2026 Python Packaging Council (PPC) nomination on secure supply chain, I realized that one thing related to having a...
10  august     22h22
My nomination statement for the 2026 Python packaging council
Brett Cannon    I have decided to run for the inaugural 2026 Python packaging council (PPC). I will say I have the support of my employer (Microsoft) to do this, but...
07  july     20h44
How to publish to PyPI using GitHub Actions securely
Brett Cannon    There have been several security incidents lately that involved compromising GitHub Actions workflows. This has led some to say GitHub Actions is the...
24  june     23h08
Why I wrote PEP 832 -- virtual environment discovery
Brett Cannon    While I decide what to do with PEP 832 after polling folks on their opinion, I thought I would write out why I’m even bothering with any of this.I’m...
26  march     03h59
Why pylock.toml includes digital attestations
Brett Cannon    A Python project got hacked where malicious releases were directly uploaded to PyPI. I said on Mastodon that had the project used trusted publishing...
02  march     19h28
State of WASI support for CPython: March 2026
Brett Cannon    It’s been a while since I posted about WASI support in CPython 😅 Up until now, most of the work I have been doing around WASI has been making...
21  february     22h37
CLI subcommands with lazy imports
Brett Cannon    In case you didn’t hear, PEP 810 got accepted which means Python 3.15 is going to support lazy imports One of the selling points of lazy imports is...
22  november     00h18
Should I rewrite the Python Launcher for Unix in Python?
Brett Cannon    I want to be upfront that this blog post is for me to write down some thoughts that I have on the idea of rewriting the Python Launcher for Unix from...
20  november     21h18
The varying strictness of TypedDict
Brett Cannon    I was writing some code where I was using httpx.get() and its params parameter. I decided to use a TypedDict for the dictionary I was passing as the...
11  october     03h46
Why it took 4 years to get a lock files specification
Brett Cannon    This is the blog post version of my keynote from EuroPython 2025 in Prague, Czechia.)We now have a lock file format specification. That might not...
16  may     05h19
Unravelling t-strings
Brett Cannon    PEP 750 introduced t-strings for Python 3.14. In fact, they are so new that as of Python 3.14.0b1 there still isn’t any documentation yet for t...
07  march     01h04
Why I won’t be attending PyCon US this year
Brett Cannon    I normally don’t talk about politics here, but as I write this the US has started a trade war with Canada (which is partially paused for a month, but...
23  january     04h43
My impressions of Gleam
Brett Cannon    When I was about to go on paternity leave, the Gleam programming language reached 1.0. It’s such a small language that I was able to learn it over...
26  november     23h28
What the PSF Conduct WG does
Brett Cannon    In the past week I had two people separately tell me what they thought the Python Software Foundation Conduct WG did and both were wrong (and...
02  november     22h00
Don’t return named tuples in new APIs
Brett Cannon    In my opinion, you should only introduce a named tuple to your code when you’re updating a preexisting API that was already returning a tuple or you...
1787073411