Happy new year everyone! Tonight we celebrate 5 million pulls across the org, and while we don’t have an equivalent to the Bazzite Buzz I thought I’d take a minute to catch people up on what’s happening while I wait for the ball to drop.
Most of this update is developer experience related. Stock bluefin
has been finished for some time, but we’re nerds so let’s talk about bluefin-dx
vscode
Thanks to @jeefy @m2Giles and others we now have a fully functional vscode experience that comes out of the box with devcontainer support. We’ve gone ahead and added the docker extension as well, so maybe now vscode will stop bugging you about the extension (hah!). You’ll need to still manually put yourself into the docker group but we’re hoping to do that automatically soon. I’ve updated the documentation here:
I think the biggest change is we’re basically doubling down on the devcontainer pattern. Fedora is focusing on toolbox as a developer environment, but observations of users over the past few years has convinced me that people are just confused with toolboxes and dev environments. So we’ve decided to just explicitly split the command line experience from the dev experience.
Here’s some back story: Recommend docker as the default for vscode/devcontainers · Issue #726 · ublue-os/bluefin · GitHub
Just to be clear, podman and all the upstream tools Fedora ships with will all still be there (actually we need a volunteer to help curate a podman dev section in the first run wizard!) Nearly every dev I’ve talked to uses both podman and docker in some capacity, so whatever, ship em both. Let’s see what happens!
homebrew
Thanks to the work of the Wolfi OS community we now have a new container for you to play with. just bluefin-cli
will pull it down, and then follow the instructions distrobox tells you.
We were using homebrew on the host in the past, but found that having it on the host broke flatpaks. So we had to containerize it. Adding homebrew to the ubuntu container is doable but the thing was exploding in size (upwards of 800+ MB) so I wanted to base it on a more bottom-up approach like how Wolfi is doing container images. Here’s an intro blog post from the wolfi folks on their approach. The new bluefin-cli container is half the size and the team is very aggressive with updates.
The intent for this container is “what would rebuilding the entire unix command line look like?” We’re intending to ship a set of default packages in here that is built from the ground up. All those cool rust utils you read about, uutils by default, atuin, eza, micro, neovim, all that stuff. This will be our playground while the ubuntu and fedora containers will remain stock.
Prompt
Which leads me to prompt: Setting up the Ptyxis Terminal
We’ve needed a container-focused terminal for a while and those of you on bluefin:39
have been playing with it. Sorry about the broken keyboard shortcuts, we’re hoping to sort out the issues as fast as we can. The end state is a cli/terminal experience that’s entirely containerized and transparent without having to do the mental math of “am I in a container or on the host?” Ideally, always in a container.
The upstream project has been very receptive to fixing bugs and I’ve been emailing back and forth with Christian Hergert and things are looking great so far. I’m feeling pretty confident about how it’ll shape up in the spring. Which leads me to:
What’s left?
All Universal Blue images depend on this Fedora feature: Changes/OstreeNativeContainerStable - Fedora Project Wiki
If you’ve been following along this was supposed to land in Fedora 38. And then it got punted to Fedora 39. And then again got punted to Fedora 40. Sometimes that’s just how open source works.
We will still call these images “beta” until the work lands in Fedora. The teams at Fedora have been very supportive of our work, check out this Fedora podcast episode where we discuss Universal Blue with some Fedora folks!
Additionally the CoreOS and osbuild teams at Red Hat have been awesome, you might want to follow the osbuild project, which we hope will turn into really great offline images for us: GitHub - osbuild/osbuild: Build-Pipelines for Operating System Artifacts
And there’s also work going on in Anaconda to support OCI installers. If you’ve been following the project then you might be keenly aware of how awful the installation experience is, I’m really looking forward to 2024.
Incus
We’re big fans of the original lxc/lxd, and Brian Ketelsen is working on bringing Incus support in as a first class citizen. There’s work to be done here and it’s still early days, so mostly I just want to say that we’re working on it and there’ll be new updates on this at a later date.
How to help!
We’re an open source project so feel free to dive in. We’re still in need of ARM-knowledgeable folks to get ARM builds going, and everyone keeps asking about Asahi support but we need help in that front.
Eric Curtin has done some great work to get us there but it needs to be finished off, we’d love to be able to have first class support for ARM powered Macs, so if you’re into shiny fruit, apply within!
Have a happy new year and stay safe out there folks!