Advertise with Googlier.com blog.liw.fi https://blog.liw.fi/ blog.liw.fi ikiwiki Wed, 21 Oct 2026 13:43:17 +0000 This month in Radicle CI, October 2026 https://blog.liw.fi/posts/2026/radicle-status-quo-10/ https://blog.liw.fi/posts/2026/radicle-status-quo-10/ newsletter radicle Wed, 21 Oct 2026 13:42:20 +0000 2026-10-21T13:43:17Z <p>This is a monthly newsletter about the current state of Radicle CI, what has happened recently, and near future plans.</p> <h1>Current status</h1> <p>Radicle CI is in production use. There are several CI nodes, and Lars runs a public one for open source projects at <a href="https://callisto.liw.fi/"><code>callisto.liw.fi</code></a>. It is now open to all open source projects, not just Rust projects.</p> <h2>CI node leaderboard</h2> <p>(Unfortunately, the node that collects CI run data is currently not running, but will return, hopefully soon. The data hasn't been updated.)</p> <p>This is a demonstration of a leaderboard of CI nodes that have opted into being on the board. For privacy reasons I won't publish node IDs whose owners haven't opted in. But the next version may have securely anonymized node identifiers for those who don't opt in.</p> <p>Tell Lars if you want your CI node to be included.</p> <p>Total 23561 CI runs across all nodes.</p> <table> <thead> <tr> <th style="text-align:right;">Pos</th> <th style="text-align:left;">Node ID</th> <th style="text-align:left;">Alias</th> <th style="text-align:right;">CI run count</th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> <code>z6Mki2ago1X2A5UWgKpoSxyCRLLhyZMwpam4T3EKvRmFTyuy</code> </td> <td style="text-align:left;"> callisto.liw.fi </td> <td style="text-align:right;"> 4760 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> <code>z6Mkfg8bP9CVPHYfHKiT4bkgrTdJvwFfxZCo48nYLjWmBvEp</code> </td> <td style="text-align:left;"> radicle.defelo.de </td> <td style="text-align:right;"> 1322 </td> </tr> </tbody> </table> <h2>Radicle CI use metrics</h2> <p>I track Radicle CI use by counting job COBs that reach a public seed node run by Adrian. 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.</p> <p>The data is collected in the <a href="https://radicle.network/nodes/rosa.radicle.network/rad%3Az34JRtFVLfWXz8N2hYA6v5xWfbiUo"><code>job-cob-data</code></a> repository by the <a href="https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3Az4PkSucs1qYVYPAaebz7dkUF3P37u"><code>job-cob-counts</code></a> software.</p> <p><img src="https://blog.liw.fi/2026-10-repos.svg" alt="" /> <img src="https://blog.liw.fi/2026-10-nodes.svg" alt="" /> <img src="https://blog.liw.fi/2026-10-runs.svg" alt="" /></p> <h2>Issues and patches</h2> <p>As of 2026-10-21.</p> <table> <thead> <tr> <th style="text-align:left;"> Repository </th> <th style="text-align:right;"> Open issues </th> <th style="text-align:right;"> Oldest issue </th> <th style="text-align:right;"> Open patches </th> <th style="text-align:right;"> Oldest patch </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"><code>ambient-ci</code></td> <td style="text-align:right;"> 37 </td> <td style="text-align:right;"> over a year </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 months </td> </tr> <tr> <td style="text-align:left;"><code>radicle-ci-broker</code></td> <td style="text-align:right;"> 78 </td> <td style="text-align:right;"> over a year </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> </tr> <tr> <td style="text-align:left;"><code>radicle-ci-ambient</code></td> <td style="text-align:right;"> 6 </td> <td style="text-align:right;"> over a year </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> </tr> <tr> <td style="text-align:left;"><code>radicle-native-ci</code></td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> </tr> <tr> <td style="text-align:left;"><code>rad-ci</code></td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> </tr> </tbody> </table> <h1>Office hours</h1> <p>Radicle CI office hours are on hold for now.</p> <h1>Overview of the past month</h1> <p>For the next month, Lars has worked on fixing the issue backlogs in the various CI components.</p> <h1>Goals for 2026 (unchanged)</h1> <p>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.</p> <p>In addition, a supporting goal is to start tracking how much Radicle CI is used, based on job COBs.</p> <h1>Future plans</h1> <p>For the next month, Lars plans to work on getting Radicle CI used more. This will involve updates to documentation and targeted demos and tutorials, such as setting up CI for a Radicle repository.</p> <h1>Notes</h1> <p>If you have an open source project and want to try Radicle and Ambient on <code>callisto</code>, see <a href="https://callisto.liw.fi/"><code>callisto.liw.fi</code></a> for instructions.</p> <h1>Links</h1> <ul> <li><a href="https://radicle.xyz/">Radicle home page</a></li> <li><a href="https://radicle-ci.liw.fi/">Radicle CI home page, unofficial</a></li> <li><a href="https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3AzwTxygwuz5LDGBq255RA2CbNGrz8">Radicle CI broker repository</a></li> <li><a href="https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3Az35CgFVYCKpqqDtJMzk8dyE6dViS6">Radicle CI Ambient adapter repository</a></li> <li><a href="https://explorer.radicle.gr/nodes/seed.radicle.gr/rad:z4Uh671FzoooaHjLvmtW9BtGMF9qm">Radicle CI integrations documentation</a></li> </ul> Obnam community https://blog.liw.fi/posts/2026/obnam-community/ https://blog.liw.fi/posts/2026/obnam-community/ community obnam Sat, 17 Oct 2026 12:13:41 +0000 2026-10-17T12:51:45Z <p><a href="https://obnam.org/">Obnam</a> is going to be an encrypting, de-duplicating, secure, and fast backup software implementation that's easy and convenient to use.</p> <p>I've been developing a new generation of Obnam for a couple of years now. So far I have mostly been exploring architectural and implementation design choices on my own. Obnam is now getting close to actually being able to make and restore backups. In a sense, it's becoming real.</p> <p>Open source software tends to be healthier and more useful to more people for longer if there is a supportive community around it. I would like to build such a community around Obnam. This blog post is the start of that.</p> <p>By community I mean a group of people with a shared interest in the software, who also feel they belong together, and who are interested in nurturing the community and software.</p> <p>I've been been building Obnam for my personal use and also because I can't stop thinking about the many fascinating technical problems of implementing backup software. As long as I'm the whole of the target audience, I have no time pressure or any other outside pressure to make it usable. I like this very much, although it does get a little lonely sometimes.</p> <p>While Obnam still isn't ready for use, it's getting there, and I've started to think about the future. Once I use Obnam myself, I expect others will also want to use it. This will bring in many kinds of pressure. I do not look forward to dealing with that entirely on my own.</p> <p>I'd like to build a community of people around Obnam for many reasons:</p> <ul> <li><p>mutual emotional support when building the software</p></li> <li><p>doing things together for each other is just more fun</p></li> <li><p>the software will be better when those who use it get heard</p></li> <li><p>while I'm the greatest hacker who will exist(1), I am painfully aware that I do not know everything and sometimes I make mistakes; a community can help guide me and others</p> <p>Footnote 1: That's a joke.</p></li> <li><p>sharing the burden will allow the community to carry a heavier load and avoid burning out an individual maintainer</p></li> <li><p>sharing knowledge will make the software live longer, and when I some day won't be available any more, the community can keep the software alive, and improve it, without me</p></li> <li><p>a vibrant community seems like a better way to defend the freedom of the software than relying on legal action</p></li> </ul> <p>I'm not particularly good with people or indeed with building or managing communities, but here's what I'm thinking as a start:</p> <ul> <li><p>Aim for a community of people that helps build and guide the software. This means people who contribute in any way. This means code changes, but perhaps more importantly, help with needs and wants ("acceptance criteria", or"requirements"): everyone's specific needs for backup software is a little different from others’, and discussing these is hugely important. (That doesn't mean everyone gets to have every wish fulfilled, but discussing needs and wants is the way to find out what's most important.)</p> <p>Just saying "thank you" is also an important contribution. It's amazing how much that helps. It's also quite unusual, I'm afraid, except for the very popular projects.</p> <p>Trying out the software and giving clear feedback is hugely important. This can be ad hoc, or more systematic. It can be running benchmarks, or trying things on unusual systems. Do you have a mechanical watch you built yourself that runs NetBSD on fourteen bits of storage? Telling the developers how the software behaves on that exposes limitations and assumptions that may be helpful for other use cases. Again, supporting your use case may be impossible, or too much work, but knowing about it is still useful.</p></li> <li><p>Helping run the community is itself important. Any group of people will need some level of management to thrive. Even if it's just two friends who occasionally meet for lunch. A larger group, especially of strangers, will need more work. What are the rules? How to change them? What kind of behavior is acceptable? How are decisions made? Who's in and who's out? I have opinions, but this is not my particular area of expertise, so other people stepping up is helpful.</p></li> </ul> <p>More concretely:</p> <ul> <li><p>I've set up an instance of the Zulip chat system (<a href="https://obnam.zulipchat.com/">https://obnam.zulipchat.com/</a>). A community needs a place to meet, and Zulip is my current preference, until the community chooses to change it. I will continue to post on the fediverse and the <code>obnam.org</code> blog. Documentation will go into the Obnam or website Git repositories. The chat is for discussion.</p></li> <li><p>I'll be the initial moderator for the chat. I’ve set up an initial code of conduct. As the community grows, I hope others will step up.</p></li> <li><p>Start building a culture of defining acceptance criteria, via the chat system. This will guide the design of the first release, which I expect to happen as soon as Obnam can make and restore backups reasonably conveniently.</p></li> </ul> <p>For any of this to work, people need to be interested in enough to participate and contribute. Would you? If so, join the Obnam Zulip and join the discussion. See you there.</p> This month in Radicle CI, September 2026 https://blog.liw.fi/posts/2026/radicle-status-quo-09/ https://blog.liw.fi/posts/2026/radicle-status-quo-09/ newsletter radicle Thu, 17 Sep 2026 14:35:27 +0000 2026-09-17T14:35:56Z <p>This is a monthly newsletter about the current state of Radicle CI, what has happened recently, and near future plans.</p> <h1>Current status</h1> <p>Radicle CI is in production use. There are several CI nodes, and Lars runs a public one for open source Rust projects at <a href="https://callisto.liw.fi/"><code>callisto.liw.fi</code></a>.</p> <h2>CI node leaderboard</h2> <p>This is a demonstration of a leaderboard of CI nodes that have opted into being on the board. For privacy reasons I won't publish node IDs whose owners haven't opted in. But the next version may have securely anonymized node identifiers for those who don't opt in.</p> <p>Tell Lars if you want your CI node to be included.</p> <p>Total 23561 CI runs across all nodes.</p> <table> <thead> <tr> <th style="text-align:right;">Pos</th> <th style="text-align:left;">Node ID</th> <th style="text-align:left;">Alias</th> <th style="text-align:right;">CI run count</th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> <code>z6Mki2ago1X2A5UWgKpoSxyCRLLhyZMwpam4T3EKvRmFTyuy</code> </td> <td style="text-align:left;"> callisto.liw.fi </td> <td style="text-align:right;"> 4760 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> <code>z6Mkfg8bP9CVPHYfHKiT4bkgrTdJvwFfxZCo48nYLjWmBvEp</code> </td> <td style="text-align:left;"> radicle.defelo.de </td> <td style="text-align:right;"> 1322 </td> </tr> </tbody> </table> <h2>Radicle CI use metrics</h2> <p>I track Radicle CI use by counting job COBs that reach a public seed node run by Adrian. 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.</p> <p>The data is collected in the <a href="https://radicle.network/nodes/rosa.radicle.network/rad%3Az34JRtFVLfWXz8N2hYA6v5xWfbiUo"><code>job-cob-data</code></a> repository by the <a href="https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3Az4PkSucs1qYVYPAaebz7dkUF3P37u"><code>job-cob-counts</code></a> software.</p> <p><img src="https://blog.liw.fi/2026-08-repos.svg" alt="" /> <img src="https://blog.liw.fi/2026-08-nodes.svg" alt="" /> <img src="https://blog.liw.fi/2026-08-runs.svg" alt="" /></p> <h2>Issues and patches</h2> <p>As of 2026-08-19.</p> <table> <thead> <tr> <th style="text-align:left;"> Repository </th> <th style="text-align:right;"> Open issues </th> <th style="text-align:right;"> Oldest issue </th> <th style="text-align:right;"> Open patches </th> <th style="text-align:right;"> Oldest patch </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"><code>ambient-ci</code></td> <td style="text-align:right;"> 55 </td> <td style="text-align:right;"> over a year </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 3 months </td> </tr> <tr> <td style="text-align:left;"><code>radicle-ci-broker</code></td> <td style="text-align:right;"> 84 </td> <td style="text-align:right;"> over a year </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 4 days </td> </tr> <tr> <td style="text-align:left;"><code>radicle-ci-ambient</code></td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> over a year </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 15 days </td> </tr> <tr> <td style="text-align:left;"><code>radicle-native-ci</code></td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> </tr> <tr> <td style="text-align:left;"><code>rad-ci</code></td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 6 months </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> </td> </tr> </tbody> </table> <h1>Office hours</h1> <p>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.</p> <p>This happens weekly at <a href="https://meet.ffmuc.net/radicleciofficehour">https://meet.ffmuc.net/radicleciofficehour</a>. It's Jitsi and you only need a web browser and mic, camera is optional.</p> <p>Each office hour is announced on <code>#Annoncements</code> and <code>#radicle-ci</code> on the Radicle Zulip, and on Lars' fediverse account (<code>@liw@toot.liw.fi</code>).</p> <p>Upcoming:</p> <table> <thead> <tr> <th style="text-align:left;"> Date </th> <th style="text-align:left;"> Time </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> September 23 </td> <td style="text-align:left;"> 07:00 UTC </td> </tr> <tr> <td style="text-align:left;"> September 30 </td> <td style="text-align:left;"> 16:00 UTC </td> </tr> <tr> <td style="text-align:left;"> October 7 </td> <td style="text-align:left;"> skipped </td> </tr> <tr> <td style="text-align:left;"> October 14 </td> <td style="text-align:left;"> 16:00 UTC </td> </tr> <tr> <td style="text-align:left;"> October 21 </td> <td style="text-align:left;"> 07:00 UTC </td> </tr> <tr> <td style="text-align:left;"> October 28 </td> <td style="text-align:left;"> 17:00 UTC </td> </tr> </tbody> </table> <h1>Overview of the past month</h1> <p>For the next month, Lars has worked on fixing the issue backlogs in the various CI components. In addition, the tight coupling between Ambient and its adapter has been loosened: it is now no longer necessary to update the adapter every time an action or log message in Ambient changes.</p> <p>Further, an as yet unreleased change is that the adapter is rewritten for much simplicity. The new version is half the code.</p> <h1>Goals for 2026 (unchanged)</h1> <p>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.</p> <p>In addition, a supporting goal is to start tracking how much Radicle CI is used, based on job COBs.</p> <h1>Future plans</h1> <p>For the next month, Lars plans to work on the following:</p> <ul> <li>Open <a href="https://callisto.liw.fi/"><code>callisto.liw.fi</code></a> for projects using Python or Go or anything else that works there now.</li> <li>Fix Ambient so that it can handle Debian security updates.</li> <li>Continue fixing issues from the backlog. There are too many issues still open and this makes it hard to manage the lists.</li> </ul> <h1>Notes</h1> <p>If you have an open source Rust project and want to try Radicle and Ambient on <code>callisto</code>, see <a href="https://callisto.liw.fi/"><code>callisto.liw.fi</code></a> for instructions.</p> <p>Once Ambient supports more than Rust, <code>callisto</code> will accept non-Rust projects, too. But still only open source projects.</p> <h1>Links</h1> <ul> <li><a href="https://radicle.xyz/">Radicle home page</a></li> <li><a href="https://radicle-ci.liw.fi/">Radicle CI home page, unofficial</a></li> <li><a href="https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3AzwTxygwuz5LDGBq255RA2CbNGrz8">Radicle CI broker repository</a></li> <li><a href="https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3Az35CgFVYCKpqqDtJMzk8dyE6dViS6">Radicle CI Ambient adapter repository</a></li> <li><a href="https://explorer.radicle.gr/nodes/seed.radicle.gr/rad:z4Uh671FzoooaHjLvmtW9BtGMF9qm">Radicle CI integrations documentation</a></li> </ul>