Radicle is a peer-to-peer, local-first code collaboration stack built on Git.
Radicle 1.2.1
17.07.2025The Radicle team is delighted to announce the release of Radicle 1.2.1 (29043134a). This release contains 50 commits by 11 contributors. Itβs amazing to see that we continue to have contributors in the double digits β thank you for your time and effort β¨
Installation
curl -sSf https://radicle.xyz/install | sh -s -- --no-modify-path --version=1.2.1
Migration of Node DNS Names (Action Required)
The DNS names for seed.radicle.garden and ash.radicle.garden are being slowly migrated to iris.radicle.xyz and rosa.radicle.xyz, respectively. This in an effort to unify these nodes under their radicle.xyz domain, leaving room for other things to live under radicle.garden.
You will notice that if you still use the old DNS names, then you will get a warning during rad node status or rad debug. The old names will continue to work, but we encourage you to change these entries to avoid any future errors.
rad node connect <nid>
Did you hate specifying the nodeβs address when wanting to connect? For example:
rad node connect z6Mkmqogy2qEM2ummccUthFEaaHvyYmYBYh3dbe9W4ebScxo@rosa.radicle.xyz:8776
Well, with 1.2.1 you can now simply use the Node ID, i.e. z6Mkmqogy2qEM2ummccUthFEaaHvyYmYBYh3dbe9W4ebScxo in the above, and it will attempt to look up the known address for that node and connect to it. One less thing to try and copy and paste π
Patch Review Improvements
The summaries of reviews on patches were lacking a little pizzazz. They have received some love to allow them have an edit history, as well as contain embeds.
Note: This change is backwards-compatible, however, there is no guarantee of forwards-compatibility. The evaluation of patches on previous versions may fail when they come across the improved edit action.
Improved Templates for Comments on Issues
When replying to or editing a comment in an issue, the comment text will now be prefilled with more helpful information, such as the the thread of comments you are replying to, including their author and ID. This should make it easier to contribute to a meaningful discussion.
JSON Schemas
We have published a developer tooling crate radicle-schemars for emitting the JSON schemas of the config.json and the nodeβs command and command result types. For the former, you can generate it using rad config schema. For the latter, a CLI can be installed using:
cargo install radicle-schemars
You can use it to generate all three:
radicle-schemars radicle::node::Command # generate schema for commands
radicle-schemars radicle::node::CommandResult # generate schema for command results
radicle-schemars radicle::profile::Config # generate schema for config
The idea for this crate and binary is to allow developers interacting with Radicle to generate types in their own languages β as opposed to a user facing tool.
Changelog
For a full list of changes, see below:
29043134aradicle: hotfix release 0.16.1 fintan.halpenny@gmail.com4e08eef8dradicle: add missingreview_reactmethods me@sebastinez.dev3a4700357radicle: add ReviewEdit getter methods fintan.halpenny@gmail.comb77809ae9chore: prepare crates release fintan.halpenny@gmail.comfe6a11d0dradicle: fix schemars macro on FetchPackSizeLimit fintan.halpenny@gmail.com4e429e440radicle: Fix doctests erik@zirkular.io34939253fradicle: improve reviews fintan.halpenny@gmail.comc30298fb8radicle: implement std::error::Error for AnnouncerError fintan.halpenny@gmail.come965d9a2cnode: clean upUploadErrorfintan.halpenny@gmail.comdb3b3b054flake: Delete Apps lorenz.leutgeb@radicle.xyz5a840983anode, cli: Refactor test environment lorenz@leutgeb.xyz9e010068edocs: Add issue instructions yorgos.work@proton.me38ff2652bradicle: remove unnecessary constraints fintan.halpenny@gmail.com895ca5d02cli: rad node connect using only NodeId johannes.kuehlewindt@gmail.com76e00a34ecli: change link direction symbols fintan.halpenny@gmail.com84427a56bradicle-term: Use crossterm instead of termion lorenz.leutgeb@radicle.xyzee8ffcc79radicle-term: Inlinetermion::get_ttyfor Unix lorenz.leutgeb@radicle.xyzec47566cbradicle-term: Remove custom pager lorenz.leutgeb@radicle.xyz570bfc3bbdebian: add missing env variables to debian build me@sebastinez.devdeb823f3bflake: Fix path to crates lorenz.leutgeb@radicle.xyze39653afcbuild: Rewrite tagging script lorenz@leutgeb.xyz6f34124d4radicle: improve config errors fintan.halpenny@gmail.com6686f86c6radicle: fix small typo me@sebastinez.devd8d00666dchore: remove radicle-tools fintan.halpenny@gmail.com42285e71cchore: remove radicle-crdt fintan.halpenny@gmail.com78ba263d0radicle-cli/issue: Improve comment templating lorenz.leutgeb@radicle.xyzaf35e6f4dradicle-cli: Warn when using old names of nodes lorenz.leutgeb@radicle.xyz727e4e72cradicle-cli/debug: UseBTreeMapfor consistent ordering lorenz.leutgeb@radicle.xyz1df8cf102radicle/bootstrap: Add rosa.radicle.xyz lorenz.leutgeb@radicle.xyza354686bbchore: Removeseed.radicle.xyzlorenz.leutgeb@radicle.xyze30e66e00radicle: add .external_template(false) to all other libgit2 calls jakob.kirsch@web.deab62dce68radicle: refactor Canonical fintan.halpenny@gmail.comb2bcd561cradicle: store threshold in Canonical fintan.halpenny@gmail.comb614167bdmeta: relax radicle-git dependencies fintan.halpenny@gmail.com6e9517a18fix Debian package building after crates have moved into a sub-dir liw@liw.fi5bc2dc677repo: Move workspace crates intocratessubdirectory lorenz.leutgeb@radicle.xyz6259a7032cargo: Useworkspace.packagetable lorenz.leutgeb@radicle.xyzeea6a9bc7cargo: Clean up dependencies lorenz.leutgeb@radicle.xyzd50df68b7chore: Remove dependencyonce_celllorenz.leutgeb@radicle.xyz3bc0db68fdoc: AddCHANGELOG.mdlorenz.leutgeb@radicle.xyz0fd8c8be4github: Add README.md lorenz.leutgeb@radicle.xyzbac719da2bootstrap: Migrate radicle.garden β radicle.xyz lorenz.leutgeb@radicle.xyz9d4aa59a1radicle: add .external_template(false) to libgit2 call jakob.kirsch@web.dea8ab718b9chore(debian/changelog): update package version to match upstream me@sebastinez.dev7380e2118chore(debian/control): add sebastinez to Uploaders me@sebastinez.deveceb7f29ccob: Simplify the ChangeGraph implementation leon.zach@posteo.de4cd0782f2radicle-schemars: Add crate for utility binary lorenz.leutgeb@radicle.xyzfcd1acd1dradicle/schemars: Annotate Commands and results lorenz.leutgeb@radicle.xyz05368e84fcargo: Make schemars a workspace dependency lorenz.leutgeb@radicle.xyz9dae540c8systemd: Provide user service for radicle-node tippfehlr@tippfehlr.devChecksums
08ba01a0c60599a97ef7ed117585c3d9ff2ffe3820e8adb63f45e0e4fb5ac3f3 radicle-1.2.1-aarch64-unknown-linux-musl.tar.xz
e3df804ef2d94e2b3d4b1ba9e6077f7c1a4c61881f1be6d1bd33179293d25c5a radicle-1.2.1-x86_64-unknown-linux-musl.tar.xz
dcd246d6917a2d95cc8763b060ecf060236d4d37f1ea28bbf0d55fb952b8c2d7 radicle-1.2.1-x86_64-apple-darwin.tar.xz
45c46e1bd88d20a3ef14bde6d331bed229f2c8b2ff3a2e84dbd7274ef6b8a296 radicle-1.2.1-aarch64-apple-darwin.tar.xz