↓ Skip to main content

Open Source

Posts on maintaining projects, contributor experience, and commons stewardship.

Planning a Python 3.15 upgrade

PEP 790 schedules Python 3.15.0 final for 2026-10-09. The full What's New is long by design, so this post is the shorter upgrade list I would check first: explicit lazy imports, UTF-8 as the default encoding, unpacking in comprehensions, the new profiling package with Tachyon, and frozendict. Each section stays short -- what changed, why it shows up in day-to-day work, and a small example where one helps. Lazy imports get a concrete beat from years of chasing import cost in the Open World Holidays Framework. Everything else worth planning around still lives in the official What's New and Porting guides.

PSF Board Candidates 2026

The 2026 PSF Board election fills four seats under Approval Voting through September 15. This post walks every nominee A-Z with links to nomination statements, AMAs, and PSF blog interviews, plus a short evaluative paragraph on each. I have no personal affiliation with any candidate. Facts and links are a best-effort snapshot from those public sources and may be incomplete or wrong. Read the primary materials before you vote, and contact me if something needs a correction.

AI slop: contribution gates that keep maintainer queues human

Unsolicited, low-effort pull requests burn maintainer attention on open projects, and AI made that volume cheaper to produce. This post starts from OWASP Nest queue pressure around mentorship seasons and the project's issue-first, assignment-before-code workflow. It then contrasts the archived check-pr-issue-action -- an assignee gate with an issue-link prerequisite -- with check-contribution-action's multi-check maintainer DX. The newer action adds selectable gates, selective auto-close, optional DCO and commit signatures, and safer wiring guidance for pull_request_target. Context also spans OWASP Nettacker and the Open World Holidays Framework, without pretending the bots can detect AI.