Brioche Project Update - October 2025
Published on
By Kyle Lacy
Brioche is a new package manager and build tool that we're making from scratch! Build scripts are written in TypeScript, so you get type-checking and editor completions with no hassle. We have a growing package ecosystem, so you can bring your favorite languages and dev tools into your own projects!
Check out our docs if you want to give it a spin! If you like it, consider helping fund Brioche's development and hosting costs via Liberapay or GitHub Sponsors, or check out other ways you can get involved with Brioche!
This month has been a really exciting one… both for Brioche, and for me personally!
Oh, and this month we also crossed 300 total packages! 🎉
Status report
Status reportOfficially working part-time on Brioche!!
Officially working part-time on Brioche!!Even before it’s initial announcement, I’ve worked on Brioche as a side project, working on it on nights and weekends. Making time to work on Brioche outside my dayjob as a full-stack developer while keeping enough downtime to not burn myself out has been a challenge, to say the least!
Well, as of this month, I’ve since switched from working from full-time to part-time at my dayjob (now as an independent contractor). So now, I work 3 days a week as my source of income, and I currently spend 2 days a week dedicated to Brioche! That frees up my weekends for resting or socializing or other side projects or other hobbies (or, to be honest, more work on Brioche— but I’m trying to get better at letting myself not work on Brioche whenever I have free time)!
I’m really really excited about this and there’s a ton more I could say!! But a few major ones:
- I’m still funding Brioche out of my own pocket. Most of our recurring costs are from hosting the cache and registry (our build machines are self-hosted in our homelab).
- Even with my reduced income and paying for Brioche resources, our household finances are still sustainable for the forseeable future.
- …but this arrangement probably won’t be sustainable for me forever. Realistically, I’ll probably go back to working full-time again someday.
Now taking donations / sponsorships!
Now taking donations / sponsorships!Since I’m now working on Brioche as my part-time job (effectively), I felt it was finally the right time to start accepting patronage. If you’re interested in pitching in, I can take your money thorough either:
- Liberapay (a Liberapay “team” for Brioche, which right now just has me)
- GitHub Sponsors (my personal profile)
(there’s already a few links on the website pointing to both platforms— including on the new Get Involved page!— but it’s not consistent everywhere yet, so more links for both will probably show up in a few places)
I’m hoping that, as Brioche grows, a few folks would be willing to chip in enough to partially or fully cover Brioche’s recurring costs, or even to pay for more self-hosted hardware— like more build machines. Or if Brioche becomes a big success one day, it’d be a dream if those sponsorships could even sustain me for full-time work on Brioche indefinitely, or eventually be enough to pay to bring on other contributors part-time or full-time!
Small aside: this is something I’ve considered for a long time, but soliciting donations is something that I’ve felt a tinge of guilt around— I’m not sure why to be honest! But switching to part-time was enough of a push for me to finally go and get it set up. I’m staunchly against taking VC funding or other investments for Brioche, so asking for donations is the first step on the path to making Brioche sustainable long-term.
New docs for contributors
New docs for contributorsI added a few docs geared towards potential contributors:
- “Contributor’s Overview”: A breakdown of the different repos and structure of Brioche. Should help interested folks get their bearings and help them decide what to contribute to.
- “Packaging Guide”: Some general details on how to contribute new packages, with some specifics for a few common languages / ecosystems.
Both pages are sort of a “first pass”, and I think both could use improvement / iteration (if you have ideas to improve them, contributions are welcome in the brioche.dev repo!)
I also added a new “Get Involved!” page. This was meant to be a catch-all for folks that would be interested in discussing Brioche (links to Zulip/Discord/GitHub Discussions), contributing to Brioche (links to docs pages on contributing), or supporting Brioche (links to Liberapay + GitHub Sponsors). I always wanted to link to more things in the header, but it’s kinda space-constrained especially on mobile, so this was what I came up as an “umbrella” to cover multiple semi-related links at once.
Build Python with optimizations
Build Python with optimizations@jaudiger opened a PR to enable compiler optimizations and LTO for our python package: brioche-dev/brioche-packages#1522. A small change (and one that’s makes our CI runners sweat!), but a nice improvement for folks that use Python through Brioche!
More consistency fixes in brioche-packages
More consistency fixes in brioche-packages@jaudiger got a lot of PRs in to help fix miscellaneous issues in brioche-packages— especially issues related to absolute paths and to live-update scripts:
- Ensure
std.pkgConfigMakePathsRelativeandstd.libtoolSanitizeDependenciesfollow symlinks (#1536) - Add functions for live-updates from Gitea, GitLab, Go modules, and Python PyPI packages (#1532, #1468, #1396)
- Fix
freetypesofreetype-configuses relative paths (#1530) - Set
ACLOCAL_PATHwhen relevant (#1411) - Add package test for
linux(#1402) - Remove unused env vars from
re2c(#1355) - Remove unused CMake from
bubblewrapbuild (#1392)
Oh, and we had some discussions around the .pipe() method, and landed on our preferered style:
// Preferred:recipe.pipe(function1).pipe(function2);
// ...instead of:// recipe.pipe(// function1,// function2,// );See the discssion in #1594 for more context
Some packages CI / repo improvements
Some packages CI / repo improvements@jaudiger added some PR templates for adding / updating packages in the brioche-packages repo: https://github.com/brioche-dev/brioche-packages/tree/main/.github/PULL_REQUEST_TEMPLATE (permalink).
GitHub doesn’t support templates for PRs (today), but this will be useful to help new contributors make sure everything that’s needed is in place for a new package!
Also, @jaudiger got some fixes in to the CI pipeline itself to check for formatting (#1417), and to skip checks during the “publishing” step (#1413)— which will help get new packages and package updates released faster!
Installer & release work
Installer & release workIt’s been a while since the last Brioche release back in April. There haven’t been any huge new features, but there have been a few minor fixes— and linux-aarch64 support!— so it’d be nice to get a new release out.
…that’s how I’ve felt for a while, but the current release process is pretty painful, with a lot of manual steps. So, I worked on cleaning up the mess that was our release process, and almost all the pieces are in place now:
- Restructure build artifacts to unify packed / unpacked builds (#281)
- Sign binaries we build in CI (#281)
- Restructure release/update metadata in
https://releases.brioche.dev - Update self-updater to use new metadata format and to check signatures during updates (#281)
- Create separate repo for installer script: https://github.com/brioche-dev/brioche-installer
- (In progress) Add automated CI pipeline for releases
- (Post-release) Update website to serve new installer script
- (Post-release) Update
setup-briocheaction to directly use new installer script
As part of that work, I did publish a new prerelease build of Brioche: v0.1.6-rc.2 (don’t ask what happened to rc.1). This isn’t intended to be used directly, but was meant to kick the tires on the new work-in-progress automated release pipeline. There’ll also probably be one or more prereleases like this as a final pass.
Anyway, the hard parts should all be in place now. I’m really happy with how smooth the new release pipeline is turning out! Brioche v0.1.6 should be coming really soon!
Issues galore!
Issues galore!I spent some time just opening issues for miscellaneous Brioche ideas and improvements. For me, this is helpful to keep track on what I want to work on next, to have things to link to when discussing Brioche features, and to help give others an idea on the direction Brioche is heading. Plus, it’s useful for collaboration in case others want to help out (I try to write pretty detailed issues!), and for gathering discussion.
If you have any feedback, please don’t hesitate to comment on any open issues! A few that I’d like to call out that could use some discussion/feedback/ideas:
- Dependencies / imports via git repos (#333)
- Unified CLI syntax for projects/packages/exports (#320)
- Spawn recipes within recipes (sccache-like builds) (#343)
- Overhaul
brioche jobscommand (#339) - Support locking things in the lockfile using user-defined functions (#353)
- WebAssembly-based sandboxing (#322, not opened by me but still wanted to highlight it!)
Housekeeping
HousekeepingNew packages
New packagesSince the last update, there were 50 new packages
During October, we just crossed a huge milestone: we now have over 300 packages total!!! 🎉
New packages:
aks_mcp_serverbaconcargo_binutilscargo_bisect_rustccargo_ccargo_denycargo_editcargo_expandcargo_flamegraphcargo_fuzzcargo_generatecargo_llvm_linescargo_machetecargo_makecargo_outdatedcargo_releasecargo_smart_releaseck_searchduktapegitea_mcp_servergithub_copilot_cligithub_mcp_serverjson_clcms2libintlibsrtplibtifflibvpxlibxawlibxextlibxfixeslibxilibxmulibxrandrlibxrenderlibxtstlint_stagedmpdecimalopuspromptfoorust_analyzersendmeskimslangterraform_mcp_servertypstvelerowakatime_clixxhashyasm
Brioche core updates
Brioche core updates- #314: Update GitHub CI
- #315: ci: update workflow to use runs-on instead of runs_on
- #316: ci: update workflow to use matrix include syntax
- #317: refactor(ci): use latest version of
brioche-dev/setup-briocheto simplify Brioche installation - #323: build: update object_store to version 0.12.4
- #281: Sign and restructure built binaries
- #324: Switch to
xzfor Brioche release artifacts - #326: Add publish args to skip some checks when used in CI
- #335: build: update opentelemetry dependencies to latest versions
- #336: build: remove assert_matches from dependencies, add to dev-dependencies
- #337: Small tweaking here and there
- #342: Add internal post-install step for Brioche installation and updates
- #338: Update efficiency of format command when working with multiple projects
- #345: build: remove target setup from rust toolchain toml file
- #346: Update Dependabot config
- #352: Update CI to attest artifacts