This month in Radicle CI, March 2026
This is a monthly newsletter about the current state of Radicle CI, what has happened recently, and near future plans.
Current status
Radicle CI is in production use. There are several CI nodes, and Lars runs a public one for open source Rust projects at https://callisto.liw.fi/.
Radicle CI use metrics
I now track Radicle CI use by counting job COBs that reach a public seed node run by Adrian. In the table below, "day" is day offset since the tracking started in early March. The data below excludes CI runs on my own CI nodes, to avoid skewing the numbers. I run CI a lot, as part of developing Radicle CI.
| day | repos | nodes | runs |
|---|---|---|---|
| 0 | 124 | 35 | 7879 |
| 1 | 124 | 35 | 7896 |
| 2 | 126 | 35 | 7982 |
| 4 | 128 | 35 | 8016 |
| 5 | 129 | 35 | 8029 |
| 6 | 129 | 35 | 8051 |
| 7 | 131 | 36 | 8149 |
| 9 | 130 | 36 | 7813 |
| 10 | 130 | 36 | 7860 |
| 11 | 130 | 36 | 7869 |
| 12 | 131 | 37 | 7876 |
| 13 | 131 | 38 | 8738 |
| 14 | 131 | 38 | 8746 |
I'm not sure I trust these numbers, yet. There's weirdness in the data, such as counts going downward, which I haven't investigated yet.
The data collection and reporting is done by job-cob-counts.
Issues and patches
As of 2026-03-16.
| Repository | Open issues | Oldest issue | Open patches | Oldest patch |
|---|---|---|---|---|
ambient-ci |
55 | 12 months | 0 | |
radicle-ci-broker |
72 | over a year | 0 | |
radicle-ci-ambient |
28 | over a year | 1 | 11 months |
radicle-native-ci |
0 | 0 | ||
rad-ci |
5 | 12 months | 0 |
Office hours
The Radicle CI office hour is a place where anyone can show up and ask questions about Radicle CI or Radicle or anything related to them. Sometimes Lars or someone else will have a demo or a short talk.
This happens weekly at https://meet.ffmuc.net/radicleciofficehour. It's Jitsi and you only need a web browser and mic, camera is optional.
Each office hour is announced on #Annoncements and #radicle-ci on the
Radicle Zulip, and on Lars' fediverse account (@liw@toot.liw.fi).
Upcoming:
- March 18 at 17:00 UTC
- March 25 at 08:00 UTC
- April 1 at 17:00 UTC
- April 8 at 08:00 UTC
- April 15 at 17:00 UTC
Overview of the past month
For the next month, Lars has worked on:
- Tooling collect data on CI runs in Radicle repositories and report on it.
- Improving Ambient run logs.
- Supporting generic cloud images.
- Download
debpackage dependencies in Ambient. - Download Rust toolchains for use in the Ambient VM.
- Preparation for talk on Radicle CI at the foss-north 2026 conference late April.
Lars meant to also work on improving Radicle CI installation and reproducible builds, but didn't. These will be picked up again in the future.
Radicle CI component releases
Ambient CI 0.13.0, released 2026-03-04
Other changes:
The HTML run log has been improved in various ways.
- Custom action output is included.
- Log messages say which part of a CI run they come from.
- The log page is also divided into sections, based on log message source.
- The HTML log uses synthesized log message to hide repetitive steps like "prepare to create directory" followed by "successfully created directory". The user now only sees "created directory" by default, but can click that open to see all the details. As part of this change, the library part for non-synthetic log messages is gone.
- The raw JSON log messages are included in the HTML log, just in case they are helpful some day.
- The VM console log is included in the HTML log to satisfy curious people.
- Log messages and sections have HTML element IDs to allow hyper- to them.
The HTML log now passes the W3C HTML validator.
The virtual machine console log is captured in the project state directory and HTML run log. In the Ambient crate library part, the
ambient_ci::qemu::QemuBuildernow requires setting the path to the console log.Ambient now has a lint for plan having a
debaction and post-plan having adput2action ordeb2anddput. The version of the actions are incompatible: they put the built packages in different directories. The lint catches this when a CI run starts, making the problem evident quickly.There is also a lint for
shellactions referring to the old name for the workspace,/workspace, instead of the new one,/ci. The old name will work until further notice, but the lint is there to nudge people to switch so that some day the old name can be retired safely.The Debian packaging now depends on
shellcheck, for the linting Ambient does forshellactions.The main error type is now called
AmbientError, renamed fromAmbientDriverError. The old name referred to an old name for Ambient.
Ambient CI 0.13.1, released 2026-03-06
- A bug that caused a panic in how the sequence of run log messages is parsed to create synthetic log messages has been fixed.
Radicle CI broker 0.26.0, released 2026-03-06
Defelo added support for the
LocalRefsAnnouncedevents. This means you can CI on your local machine and its Radicle node. If you push a change to your node, CI runs. This means it's not necessary to set up a separate CI node. A separate CI node is and will always be supported, though.The CI broker now depends on crates for Radicle 1.17, which is about to be released.
The installation documentation on a Debian system have been updated to refer to the Radicle APT repository, with release versions. Thank you to Yorgos for finding the problem.
Ambient adapter 0.15.0, released 2026-03-06
Depend on Ambient 0.13.1.
The repository name is now in the HTML log page title.
The HTML log has many changes that are meant to be usability improvements, which mostly come from Ambient CI 0.13.
Radicle native CI adapter 0.13.0, released 2026-03-06
- No user visible changes, as such, but depends on new Radicle and CI broker.
rad-ci 0.8.0, released 2026-03-06
- No user-visible changes, but depends on new versions of Radicle and CI components.
Goals for 2026 (unchanged)
The primary goal for Radicle CI in 2026 is to get more people using it. To achieve this, much work is needed to improve awareness, documentation, installation, configuration, and operation. Some feature work and bug fixing will also be needed. While the basics work and are in use, things could be much more polished.
In addition, a supporting goal is to start tracking how much Radicle CI is used, based on job COBs.
Future plans
For the next month, Lars plans to work on:
- Support for more language and packaging ecosystems for Ambient.
npmat least
- Improve remote troubleshooting.
- include adapter stderr in CI broker report pages
- Improve Ambient image handling.
- allow Ambient to manage a set of images and projects to declare the image (and version) they want to use
- Add a fake network interface to Ambient to make generic cloud images boot faster.
- Making installation of Radicle CI easier.
- systemd units for the components
- a shell script to provision a fresh Debian host as a CI node
- Improve development process so in-progress versions of Radicle CI components can be tested together.
- Prepare a demo for the
foss-northconference at end of April. - Make releases of CI components so that recent improvements can be deployed.
Notes
If you have an open source Rust project and want to try Radicle and Ambient on
callisto, see https://callisto.liw.fi/callisto/ for instructions.
Once Ambient supports more than Rust, callisto will accept non-Rust
projects, too. But still only open source projects.