
Radicle is a peer-to-peer, local-first code collaboration stack built on Git.
Radicle 1.2
02.06.2025The Radicle team is delighted to announce the release of Radicle 1.2. This release contains 106 commits by 16 contributors 📈.
To upgrade or install, head to the download section, or run the following command from your terminal:
curl -sSf https://radicle.xyz/install | sh -s -- --version=1.2.0
Huge thanks to all the contributors, many of which are contributors from outside of the team. We appreciate the community that is being built here 🌱
Thank you to:
- 🌱 Derick Eddington
- 🌱 Ivan Stanković
- 🌱 Lars Wirzenius
- 🌱 Leah Neukirchen
- 🌱 Richard Levitte
- 🌱 Sebastian Martinez
- 🌱 Sekhat Temporus
- 🌱 Yorgos Saslis
- 🌱 tippfehlr
Improved Repository Timings
There has been a huge improvement in initialising larger repositories. This was, unfortunately, due to libgit2
being a lot slower than git
when performing file protocol push and fetches (thanks for creating an issue 10 years ago Linus).
Better rad sync
Output
There has been a concerted effort to improve the fetching and announcing output when using rad sync
. This also helped us improve rad clone
which should not include many error messages, while also succeeding.
Breaking Changes
No breaking changes, as far as we are aware. Please report any issues via Radicle or message us on Zulip.
General Improvements
CLI
- Output JSON lines for
rad cob
- Allow showing multiple COBs at once
- Improvements to help documentation
- The full set of actions for patches are now available via
rad patch
- Better error context when
ssh-agent
connection fails - The remote helper will print
git range-diff
s when creating new patch revisions rad seed
andrad unseed
can now take multiple RIDsrad cob [create | update]
have been addedrad config schema
for emitting a JSONSchema of the configuration- Better syntax highlighting
rad cob show
handles broken pipes- Avoiding obtaining a signer when it is not necessary
- Print node addresses when syncing
Library
- Patch revisions can now be labelled and resolve comments
- Issues can be listed by status
- Extend the set of emojis that are supported
- Provide an API to do a reverse lookup from aliases to NIDs
- Use
signals_receipts
crate for improved signal handling - Integrate more up-to-date Gitoxide crates
- Ensuring an MSRV of 1.81
Changelog
Here is the full Radicle 1.2 changelog.
6f25d73d
build: remove quotes from rust-version fintan.halpenny@gmail.come9cf91e1
cob: bump major version fintan.halpenny@gmail.come6ef767f
radicle: remove job cob fintan.halpenny@gmail.comf4c8ff7a
chore: prepare crates release fintan.halpenny@gmail.comcaf9e241
cli: fix outputs fintan.halpenny@gmail.comae1165fa
build: do not assumerad
remote fintan.halpenny@gmail.comedcfcae7
build: fix ssh symlinking fintan.halpenny@gmail.com40e9b7ba
build: update cargo-zigbuild version to 0.20 fintan.halpenny@gmail.com7dcfe457
build: Dockerfile uses Rust version fromrust-toolchain.toml
fintan.halpenny@gmail.com924b9328
cli: change announcement message fintan.halpenny@gmail.comd1ba665e
radicle: introduce sync::announce tests fintan.halpenny@gmail.comaa7dcd92
radicle: use a struct to help announce success counts fintan.halpenny@gmail.com5a0c14cf
radicle: ensure preferred seeds are announced to fintan.halpenny@gmail.comc57d43f2
radicle: schemars test should be behind feature flag fintan.halpenny@gmail.com5b4cbc2c
radicle: introduce announcer fintan.halpenny@gmail.comfa9c6cd1
radicle: move PrivateNetwork tonode::sync
fintan.halpenny@gmail.comcc96b9ed
cli: improve rad clone fintan.halpenny@gmail.com059c8045
radicle: fix build when schemars feature is not enabled aclopte@gmail.com1a67ac18
cli: reword sync replicas help lorenz.leutgeb@radicle.xyzeec4dd45
radicle: improve sync fetching fintan.halpenny@gmail.comc205322c
node: fix e2e reader limit test fintan.halpenny@gmail.comb608a788
cli:rad config schema
emits JSON Schema n4ch7@r1v3nd3115a2f26ea
cli/node/status: Redesign lorenz.leutgeb@radicle.xyzee12f76c
cli/tests: Fix nextest running via Nix lorenz.leutgeb@radicle.xyz9988b63b
cob: abstract namespace identifier fintan.halpenny@gmail.com1f4fcc5e
radicle: move tosignature
crate fintan.halpenny@gmail.com41f9048d
nix: Add flake check that builds at MSRV lorenz@leutgeb.xyz105b65c2
workspace: set rust-version (MSRV) liw@liw.fi9f2c4e39
chore: use watch_file in .envrc fintan.halpenny@gmail.com5a0a334d
build(debian/rules): install into a location where Debian expects liw@liw.fie0d18b86
systemd: Add example configuration for DNS-SD lorenz@leutgeb.xyz98cf054b
git: Add .direnv to .gitignore lorenz@leutgeb.xyzf5fa84fa
test: set name and email for repository fixture fintan.halpenny@gmail.com59a10214
hook: Makecargo check
andcargo clippy
only execute pre-push lorenz@leutgeb.xyz5553a147
cli/tests: Relax expectations inrad-clone-partial-fail.md
lorenz@leutgeb.xyzf30760d6
cob: Add CobAction::produces_identifier and validation lorenz@leutgeb.xyze4d23fe5
cli: Introducecob [create|update]
lorenz@leutgeb.xyz547614a5
cli-test: Add current working directory to PATH lorenz@leutgeb.xyz30182233
cli: Allow multiple RIDs forrad unseed
sekhat@temporus.me6bbe919c
cli: allow multiple RIDs forrad seed
sekhat@temporus.mea90aabb1
node: rate limiter for channel reads fintan.halpenny@gmail.comf13afe49
remote-helper: Printgit range-diff
invocation lorenz@leutgeb.xyz6dcd5627
node: upload-pack inter-thread communication fintan.halpenny@gmail.comce8ac663
radicle: usegit fetch
over libigt2 in checkout fintan.halpenny@gmail.coma9fa31e5
docs: add links to to README.md to home page and Zulip liw@liw.ficbca3af2
chore: shellcheck fixes lorenz@leutgeb.xyzce07e92a
Add Git pre-commit hooks via Nix lorenz@leutgeb.xyz77386b0f
build: Upload Git archive of heartwood lorenz@leutgeb.xyz10daedf9
**cli: Add ‘rad node inventory –nid'** *<richard@levitte.org>* 8fd04483
radicle: usegit push
to avoidlibgit2
push fintan.halpenny@gmail.com433483e0
Add Lorenz Leutgeb to.gitsigners
lorenz@leutgeb.xyzdc1ff882
cli/sync: Also print node addresses lorenz@leutgeb.xyz72913b8c
fetch: integrate the latestgix-protocol
intoradicle-fetch
sebastian.thiel@icloud.com96637aca
chore: update rust-toolchain fintan.halpenny@gmail.com47c785b9
signals: Usesignals_receipts
crate instead kcired@pm.mec05434eb
cli: add emoji picker torad issue react
tippfehlr@gmail.com2af090ea
cli: fallible comment selector fintan.halpenny@gmail.com7eb07e1b
chore(debian/changelog): update package version to match upstream liw@liw.fi13ba2ef0
fix(debian/rules): cargo install offline liw@liw.fiebc8d037
ci(.radicle/ambient.yaml): CI plan for Radicle CI Ambient adapter liw@liw.fi9abedf44
cli: Don’t use ‘signer’ where not necessary richard@levitte.org538648c5
cli: document disallow and edit options in manpages fintan.halpenny@gmail.coma5665412
Cargo.lock: update crossbeam-channel to 0.5.15 istankovic@posteo.net9ef9c5d5
radicle: add Op::load method fintan.halpenny@gmail.comc847a16e
radicle: return iterator types for db policies fintan.halpenny@gmail.com7de82b50
radicle: useAlias
infollow
fintan.halpenny@gmail.com6940ac42
radicle: reverse lookup for AliasStore fintan.halpenny@gmail.com3dba4fbc
cli: cargo fmt fintan.halpenny@gmail.comdd5f7396
radicle: generic Transaction::initial fintan.halpenny@gmail.com170915ff
nix: Nix flake maintenance fintan.halpenny@gmail.comc2863c08
radicle: extend emoji support fintan.halpenny@gmail.coma9a4aac3
docs, cli: Mention feedback, also via e-mail lorenz@leutgeb.xyza7230682
cli: provide error context for ssh-agent connect fintan.halpenny@gmail.comffc86f8a
build: ensure zigbuild install doesn’t break reproducible build yorgos.work@proton.me3b5fac17
crypto: RefCell instead of Mutex in Agent lorenz@leutgeb.xyz62d000f7
radicle: fixparse_ref_*
documentation fintan.halpenny@gmail.comee0d19f2
man: make a note on draft patches fintan.halpenny@gmail.com4cced3dd
cli: add remaining patch actions fintan.halpenny@gmail.com7d28d1e6
ci: don’t build docs for depedencies liw@liw.fidfe89fb3
ci: only deny warnings, not all clippy lints liw@liw.fia1cd0e2f
cli: Add--title
and--description
edit option yorgos.work@proton.mef0390e00
cli: print success to console onrad issue state
fintan.halpenny@gmail.comffbdabe4
cli: add comment edit for rad issue fintan.halpenny@gmail.com98598746
radicle: addlist_by_status
method tocob::issue::Issues
me@sebastinez.dev7c902b69
radicle: Addresolves
andlabels
method tocob::patch::Revision
me@sebastinez.dev65982434
radicle: documentparse_ref
andparse_ref_namespaced
fintan.halpenny@gmail.com41c33901
radicle: use rlim_t when working with limits leah@vuxu.orgc8062bc4
docs: note that node logs may also be in the system journal liw@liw.fi4c82bb4c
radicle: add some documentation for node::events::Event liw@liw.fi2929146c
radicle: clarify RefsAt description liw@liw.fib6cf6fea
cli: Fixrad ls
help message me@sebastinez.dev87cb7bf5
build: Update zig installation method yorgos.work@proton.me87f6956e
build: Fixes to release script cloudhead@radicle.xyzd274b28a
scripts: Small fix to contributor count cloudhead@radicle.xyzd9c76893
cli: bump version to 0.12.1 fintan.halpenny@gmail.com19bbdbca
cli: fix syntax highlighting fintan.halpenny@gmail.com7ed72ec9
cli: Fix some clippy lints cloudhead@radicle.xyz61865b5b
cob: fix documentation fintan.halpenny@gmail.com8e2fe644
scripts: Improve changelog script cloudhead@radicle.xyz5fe3d5a7
cli: Handle broken pipe incob show
cloudhead@radicle.xyz7616dcb7
cli/cob: Output JSON Lines lorenz@leutgeb.xyz8865b559
cli/cob: Allow showing multiple COBs at once lorenz@leutgeb.xyz289e59bb
term: Bump version to 0.12.0 cloudhead@radicle.xyzb4f18f43
cli: Bump to 0.12.0 lorenz@leutgeb.xyz1fa1cafe
cli: Update tree-sitter lorenz@leutgeb.xyzfd892d00
Updateradicle
to 0.14 cloudhead@radicle.xyz
Checksums
179cc84f9bca81cc6bec0a2b70d0a5fdd569db128973d755025022f81eeb07de radicle-1.2.0-x86_64-unknown-linux-musl.tar.xz
63768853edd038bdb7dbf540c0ab9a6963cd6bf1bcf3e048d0eb0969544f5ffa radicle-1.2.0-aarch64-unknown-linux-musl.tar.xz
3fdb2f97d9bab419c9f066f73b5f175284197ef3d1116e7d91428c1c672f1739 radicle-1.2.0-aarch64-apple-darwin.tar.xz
c2d45feebc9d7c71158e6c2430a3f39e3cd631323e496d3a9ce0625ce115ff0b radicle-1.2.0-x86_64-apple-darwin.tar.xz
Follow us on 🐘 Mastodon or 🦋 Bluesky.
Contribute to Radicle as a 🌱 seeder, 🧙 developer or by 🪞 mirroring your repositories on the Radicle network.
Join our community on 💬 Zulip and discuss your ideas to improve Radicle.