Skip to content

Commit e912099

Browse files
committed
Publish Project Update 2025-12
1 parent 83c1cf7 commit e912099

3 files changed

Lines changed: 293 additions & 0 deletions

File tree

Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
---
2+
title: Brioche Project Update - December 2025
3+
pubDate: 2025-12-31T02:45:08-08:00
4+
author: Kyle Lacy
5+
authorUrl: https://kyle.space
6+
showBlurb: true
7+
tableOfContents: true
8+
---
9+
10+
import PackageList from "./project-update-2025-12/PackageList.astro";
11+
12+
It's the final project update of the year! With the holidays and... life stuff, this month was a little slower for me for Brioche work. But there's still a lot of exciting stuff to share, and we just crossed another major package milestone!!! 🎉
13+
14+
## Highlights from the year
15+
16+
With the year coming to a close, I wanted to start with a quick look back at some of the major milestones we reached this year:
17+
18+
- _Packages_: from **50 packages** at the start of January to [**over 500 packages 🎉**](#new-packages)
19+
- _Brioche_: **3 new releases** this year:
20+
- [Brioche v0.1.4](/blog/announcing-brioche-v0-1-4) (January): prettier output, packed Brioche builds
21+
- [Brioche v0.1.5](/blog/announcing-brioche-v0-1-5) (April): new cache, debug shell for failed builds
22+
- [Brioche v0.1.6](/blog/brioche-v0-1-6) (November): aarch64 support, new release process
23+
- Made possible with the help of **10 contributors** in the past year!
24+
- Members of the `brioche-dev` org: [**@jaudiger**](https://github.com/jaudiger), [**@asheliahut**](https://github.com/asheliahut), and [**@kylewlacy**](https://github.com/kylewlacy) (me!)
25+
- [**@chad-russell**](https://github.com/chad-russell), [**@jokeyrhyme**](https://github.com/jokeyrhyme), [**@paricbat**](https://github.com/paricbat), [**@kaathewisegit**](https://github.com/kaathewisegit), [**@running-grass**](https://github.com/running-grass), [**@nz366**](https://github.com/nz366), and [**@easrng**](https://github.com/easrng)
26+
- ...plus everyone who participated with issues, discussions, and ideas (and any other contributors I missed!)
27+
28+
## Status report
29+
30+
### TypeScript 5.9.3 upgrade
31+
32+
[**@jaudiger**](https://github.com/jaudiger) opened [#388](https://github.com/brioche-dev/brioche/pull/388) to upgrade the TypeScript version embedded in Brioche from v5.3.3 to v5.9.3! We didn't spot any breakages across the `brioche-packages` repo during this upgrade, so this should be a pretty safe update that should give us a few new type-level tools and checks for free.
33+
34+
This feels like the right time to upgrade, since this is the last TypeScript version before v6.0, which is then the final release before the native TypeScript port in v7.0! There was a blog post earlier this month about [TypeScript's progress towards the native port in v7.0](https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/). I'm hoping that we'll be able to integrate TypeScript 7 into Brioche not long after it's ready to go, so we can take advantage of the major speed boost in type-checking!
35+
36+
### `brioche fmt` improvements
37+
38+
The `brioche fmt` got some nice quality-of-life improvements from [**@jaudiger**](https://github.com/jaudiger) in [#386](https://github.com/brioche-dev/brioche/pull/386).
39+
40+
The `-p` flag is no longer necessary (since you'd only ever want to format a local project, never one remotely!), and additionally you can now format individual `.bri` files instead of a full project directory!
41+
42+
These commands are now all (roughly) equivalent:
43+
44+
```sh
45+
brioche fmt packages/std
46+
brioche fmt -p packages/std
47+
brioche fmt packages/std/**/*.bri
48+
```
49+
50+
### More major groundwork packages
51+
52+
[**@jaudiger**](https://github.com/jaudiger) has continued a streak of gettings lots of new exciting packages done, and that includes a ton more work towards Linux GUI applications! I'll share his summary of the changes from just the past week:
53+
54+
> I did a lot of things during the last week, I was mainly focused on:
55+
>
56+
> - packaging the core libraries to later build bigger ones such as Mesa, FFMPEG, Wayland, etc. We do need a lot of core things right now, but I'm moving in the right direction
57+
> - adding more common CLI tools to reach a broader audience
58+
59+
There's a _lot_ of X11/Wayland packages in the modern Linux desktop stack, but we're starting to get a lot of packages from that ecosystem wired up, so it's really exciting progress!
60+
61+
(and personally, ffmpeg is one I'm really excited about-- although that one is kind of its own little black hole of package management challenges!)
62+
63+
### Sad personal news
64+
65+
Midway through the month, we put our 15-year-old cat to sleep. She was amazing and lived a long, loving, happy life, but it was still sudden and it's been real hard.
66+
67+
![Adorable calico cat laying on the floor, basking in the sunlight from the window. She's laying on her side with her paws out and looking at you relaxedly, waiting for belly rubs.](./project-update-2025-12/abby.jpg)
68+
69+
So overall, this month has been pretty slow-going for me.
70+
71+
If you've got a cat or other fuzzy creature, give them cuddles and a big pet for me.
72+
73+
### Continued infrastructure work
74+
75+
Well, with the time I did spend on Brioche this month, I mostly continued on with the [infrastructure work I discussed last month](/blog/project-update-2025-11/#infrastructure-rework). I made some good steps forward, and the foundation is pretty sturdy now! ...although a lot of it is "in the weeds" Kubernetes stuff (Longhorn for storage, Grafana for monitoring, etc.), so nothing really exciting to share yet.
76+
77+
### Minor caching tweaks
78+
79+
I opened and merged [#379](https://github.com/brioche-dev/brioche/pull/379), which added some very minor tweaks to the cache:
80+
81+
- Retry `PUT` requests
82+
- Allow customizing cache timeouts through config / env vars
83+
84+
This change is pretty unassuming, but came up after a hair-pulling debugging session of failures in the `brioche-packages` repo, where builds were failing to upload to the cache sporadically. I think the root cause was related to some weird DNS quirks from some of my recent infrastructure work. But after getting this change in, then bumping up one of the timeouts in the `brioche-packages` workflow in [`brioche-dev/brioche-packages#2073`](https://github.com/brioche-dev/brioche-packages/pull/2073), things have been running smoothly.
85+
86+
## Housekeeping
87+
88+
### New packages
89+
90+
Since the last update, there were **159** new packages. During this month, we blew past another major milestone:
91+
92+
<div class="font-bold text-xl">🎉 Brioche now has over 500 packages! 🎉</div>
93+
94+
(At the time of writing, we're sitting at 514, with about 2 dozen more in the build queue!)
95+
96+
As is tradition, here are all the new packages this month:
97+
98+
<PackageList
99+
packages={[
100+
"3cpio",
101+
"6tunnel",
102+
"aardvark_dns",
103+
"acl",
104+
"acme_redirect",
105+
"act",
106+
"aerleon",
107+
"aften",
108+
"age",
109+
"age_plugin_yubikey",
110+
"argocd",
111+
"audit",
112+
"autoprefixer",
113+
"bacon_ls",
114+
"berkeley_db",
115+
"bkmr",
116+
"bosh_cli",
117+
"c_ares",
118+
"cairo",
119+
"cargo_shear",
120+
"ccusage",
121+
"cdebug",
122+
"cf_terraforming",
123+
"cglm",
124+
"cilium_cli",
125+
"cliproxyapi",
126+
"clive",
127+
"clorinde",
128+
"cloud_nuke",
129+
"comrak",
130+
"copilot_language_server",
131+
"coredns",
132+
"cpio",
133+
"cppcheck",
134+
"cubejs_cli",
135+
"docker_compose",
136+
"dolt",
137+
"dysk",
138+
"esbuild",
139+
"fabio",
140+
"fabric_ai",
141+
"flac",
142+
"fmt",
143+
"forgejo_runner",
144+
"freeimage",
145+
"fresh_editor",
146+
"gflags",
147+
"gfold",
148+
"giflib",
149+
"gitlab_runner",
150+
"gleam",
151+
"glib",
152+
"glm",
153+
"go_security_tracker",
154+
"gost",
155+
"graphite2",
156+
"graphql_client_cli",
157+
"hwloc",
158+
"ipsw",
159+
"jarl",
160+
"jbig2dec",
161+
"jd",
162+
"lazygit",
163+
"lefthook",
164+
"lf",
165+
"libaec",
166+
"libbsd",
167+
"libgcrypt",
168+
"libgpg_error",
169+
"libiconv",
170+
"libidn",
171+
"libidn2",
172+
"libmd",
173+
"libogg",
174+
"libpipeline",
175+
"libsamplerate",
176+
"libselinux",
177+
"libsemanage",
178+
"libsepol",
179+
"libtasn1",
180+
"libudev_zero",
181+
"liburing",
182+
"libvorbis",
183+
"libwebp",
184+
"lz4",
185+
"mailpit",
186+
"mcp_server_kubernetes",
187+
"meilisearch",
188+
"melange",
189+
"mesheryctl",
190+
"microsoft_gsl",
191+
"monocle",
192+
"mq",
193+
"munge",
194+
"nghttp2",
195+
"nghttp3",
196+
"npq",
197+
"numactl",
198+
"oh_my_posh",
199+
"open_policy_agent",
200+
"openjpeg",
201+
"orc",
202+
"oterm",
203+
"p11_kit",
204+
"pack",
205+
"parlay",
206+
"parquet_tools",
207+
"pcsc_lite",
208+
"pinact",
209+
"poetry",
210+
"popt",
211+
"prek",
212+
"prettier",
213+
"ragel",
214+
"range_v3",
215+
"rbspy",
216+
"resterm",
217+
"restish",
218+
"rnr",
219+
"robotframework",
220+
"rosa",
221+
"rqlite",
222+
"rust_bindgen",
223+
"rustic",
224+
"rv",
225+
"sass",
226+
"shadowsocks_rust",
227+
"simdjson",
228+
"soxr",
229+
"spirv_headers",
230+
"swc",
231+
"systemfd",
232+
"tinyxml2",
233+
"tllist",
234+
"tombi",
235+
"topgrade",
236+
"treemd",
237+
"tuios",
238+
"tzdata",
239+
"utf8proc",
240+
"valkey",
241+
"vespa_cli",
242+
"vgt",
243+
"vite",
244+
"viu",
245+
"watchexec",
246+
"wayland",
247+
"wayland_protocols",
248+
"weaviate",
249+
"xcb_util_cursor",
250+
"xcb_util_keysyms",
251+
"xcb_util_renderutil",
252+
"xcb_util_wm",
253+
"xk6",
254+
"xvidcore",
255+
"z3",
256+
"zerofs",
257+
"zimg",
258+
"zuban",
259+
]}
260+
/>
261+
262+
### Brioche core updates
263+
264+
- build: update dependencies in runtime NPM project ([#375](https://github.com/brioche-dev/brioche/pull/375))
265+
- Tweak cache timeouts and retries ([#379](https://github.com/brioche-dev/brioche/pull/379))
266+
- Update package-lock.json ([#377](https://github.com/brioche-dev/brioche/pull/377))
267+
- build: update transient dependencies to latest versions ([#378](https://github.com/brioche-dev/brioche/pull/378))
268+
- chore: resolve new warnings from Clippy 1.92 ([#387](https://github.com/brioche-dev/brioche/pull/387))
269+
- feat: update typescript to its latest version (5.3.3) ([#388](https://github.com/brioche-dev/brioche/pull/388))
270+
- Update Dependabot config to ignore major versions of Bincode ([#391](https://github.com/brioche-dev/brioche/pull/391))
271+
- chore: revamp the command format, and add the ability to format files ([#386](https://github.com/brioche-dev/brioche/pull/386))
272+
- Fix typo in dependabot.yml ([#393](https://github.com/brioche-dev/brioche/pull/393))
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
interface Props {
3+
packages: string[];
4+
}
5+
---
6+
7+
<div class="not-content">
8+
<ul
9+
class="text-sm/snug flex flex-wrap items-baseline pl-0 list-disc list-inside"
10+
>
11+
{
12+
Astro.props.packages.map((pkg) => (
13+
<li class="min-w-fit flex-1/2 pr-4 my-1">
14+
<code class="bg-(--sl-color-bg-inline-code) font-mono px-0.5 py-1 text-xs">
15+
{pkg}
16+
</code>
17+
</li>
18+
))
19+
}
20+
</ul>
21+
</div>
953 KB
Loading

0 commit comments

Comments
 (0)