Advertise with Googlier.comblog.liw.fi
https://blog.liw.fi/
blog.liw.fiikiwikiWed, 21 Oct 2026 13:43:17 +0000This month in Radicle CI, October 2026https://blog.liw.fi/posts/2026/radicle-status-quo-10/
https://blog.liw.fi/posts/2026/radicle-status-quo-10/
newsletterradicleWed, 21 Oct 2026 13:42:20 +00002026-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 communityhttps://blog.liw.fi/posts/2026/obnam-community/
https://blog.liw.fi/posts/2026/obnam-community/
communityobnamSat, 17 Oct 2026 12:13:41 +00002026-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 2026https://blog.liw.fi/posts/2026/radicle-status-quo-09/
https://blog.liw.fi/posts/2026/radicle-status-quo-09/
newsletterradicleThu, 17 Sep 2026 14:35:27 +00002026-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>