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 deb package 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::QemuBuilder now requires setting the path to the console log.

  • Ambient now has a lint for plan having a deb action and post-plan having a dput2 action or deb2 and dput. 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 shell actions 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 for shell actions.

  • The main error type is now called AmbientError, renamed from AmbientDriverError. 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 LocalRefsAnnounced events. 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.
    • npm at 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-north conference 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.

Links