Radicle 1.3.0发布:去中心化代码协作协议的重大更新

Radicle 1.3.0版本带来了规范引用规则、Windows平台初步支持、改进的日志轮转机制等核心功能更新,该版本包含48个提交和7位贡献者的改进,进一步强化了这个基于Git的点对点代码协作协议。

Radicle 1.3.0

2025年8月12日

Radicle团队很高兴宣布发布Radicle 1.3.0 (29043134a)。此版本包含7位贡献者的48个提交。我们要感谢所有人通过贡献和使用报告帮助我们改进Radicle协议和工具的持续努力 👾

安装

1
curl -sSf https://radicle.xyz/install | sh -s -- --no-modify-path --version=1.3.0

规范引用

这个功能已经开发了相当长的时间,我们很自豪地宣布它已经准备好供您使用!

通过标识符xyz.radicle.crefs下的身份有效载荷条目引入了规范引用规则。以下是一个包含对refs/tags/releases/*下标签的单个规则的有效载荷示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
"xyz.radicle.crefs": {
  "rules": {
    "refs/tags/releases/*": {
      "allow": [
        "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
        "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
        "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM"
      ],
      "threshold": 2
    }
  }
}

规范引用规则现在用于检查规范更新。xyz.radicle.projectdefaultBranch规则是从身份文档字段合成的:thresholddelegates。这意味着在该规则集中不允许该引用的规则。这在执行rad id update时会被检查。

有关规范引用的更详细历史和使用方法,请查看随附的文章。

引入radicle-protocol

这组更改目前主要是表面上的。引入了一个新的crate radicle-protocol,为Radicle协议的无I/O实现提供一个家。该crate目前定义了协议的内部工作原理,而radicle-node依赖于它。

请注意,我们切换到了使用bytes crate,并且在使用预发布版本时我们目睹了来自此crate的panic。它没有再出现,但我们引入了回溯的使用来帮助进一步识别问题。因此,如果radicle-node因此问题停止,请报告回溯。

Windows支持路径

我们努力开始为能够在Windows上使用Radicle铺平道路。为此迈出了第一步,您现在可以在Windows机器上使用rad CLI - 无需WSL。

目前,git-remote-radradicle-node是完整Windows支持的阻碍因素。然而,上述无I/O方法将为实现在Windows上工作的radicle-node提供前进的道路,我们将继续研究获得完整Windows支持所需的其他修复。

改进的日志轮转

.radicle/node下的日志轮转现在使用编号系统工作,即node.log.1node.log.2等。当前运行的节点将记录到node.log,这是指向最新编号的符号链接。

这意味着日志将在运行之间持久化,这将需要偶尔清理。

显示完整节点ID

我们改进了节点ID和节点地址的格式。当输出是临时的时候,CLI将输出NID和地址的缩短形式,而在呈现给用户时输出完整形式。这将使您能够复制和粘贴这些标识符。

固定存储库的稳定顺序

固定存储库现在保持其插入顺序,这意味着它们不应因用户决定哪些存储库应首先显示之外的任何其他因素而重新排序。

放宽git-remote-rad的推送

git-remote-rad在执行推送时总是期望有一个工作副本和一个引用。这些约束被放宽以允许裸Git存储库和任何类型的Git修订。这应该会改善jj用户的体验。

连接尝试将报错

如果由于错误而无法进行连接尝试,则永远不会返回错误结果。这在使用rad node connect时经常导致超时。我们现在返回错误并可以报告它,而不是等待超时。

默认分支选择器

在运行rad init时,存储库defaultBranch的默认值现在由您所在的分支或Git配置选项init.defaultBranch提供。

变更日志

有关完整更改列表,请参见下文:

7a9d4512f radicle: 修复Canonical::quorum文档链接 fintan.halpenny@gmail.com
5d467418b term: 恢复使用inquire生成编辑器 lorenz.leutgeb@radicle.xyz
4934473b8 cli/node: 改进日志轮转 lorenz.leutgeb@radicle.xyz
3d352f23e canonical: 支持带注释的标签 lorenz.leutgeb@radicle.xyz
54fd8c40a node: 清理日志记录 erik@zirkular.io
174792813 node: 注册回溯 fintan.halpenny@gmail.com
0aaa81f82 cli: 在未知部分提及二进制名称 fintan.halpenny@gmail.com
fdb1ac4e3 radicle: 修复clippy::result_large_err lorenz.leutgeb@radicle.xyz
5bab3f9cc clippy: 允许doc_overindented_list_items lorenz.leutgeb@radicle.xyz
906803378 chore: 由clippy生成的自动修复 lorenz.leutgeb@radicle.xyz
586eefc3e rust-toolchain: 1.85 → 1.88 lorenz.leutgeb@radicle.xyz
efeefd0da chore(debian/changelog): 更新包版本以匹配上游 me@sebastinez.dev
2a47bc0c7 term: 提供默认HELP消息 fintan.halpenny@gmail.com
a998ce691 ssh: 在连接错误时提供路径 fintan.halpenny@gmail.com
8224819fe radicle/profile: 在Windows上启用主目录检测 lorenz.leutgeb@radicle.xyz
1e0a14ddc ssh: 移除对log的依赖 lorenz.leutgeb@radicle.xyz
8e6279a38 ssh: 移除对byteorder的依赖 lorenz.leutgeb@radicle.xyz
95b3303eb term: 移除未使用的依赖shlex lorenz.leutgeb@radicle.xyz
009436efa ssh: 在Windows上使用winpipe for SSH代理 lorenz.leutgeb@radicle.xyz
070550153 radicle: 依赖winpipe以获得Windows支持 lorenz.leutgeb@radicle.xyz
08b535d56 radicle: 仅在Unix上设置文件限制 lorenz.leutgeb@radicle.xyz
e7fb5647a term: 移除对libc的依赖 lorenz.leutgeb@radicle.xyz
70fb0d3fe term: 使用inquire生成编辑器 lorenz.leutgeb@radicle.xyz
a28fd65e8 term/ansi: 移除未使用的Windows模块 lorenz.leutgeb@radicle.xyz
d46d36ece term/spinner: 仅在Unix上处理信号 lorenz.leutgeb@radicle.xyz
92d77f9ec crypto/ssh/keystore: 减少DirBuilderExt的范围 lorenz.leutgeb@radicle.xyz
37ea81766 cli: 改进默认分支选择 sekhat@temporus.me

7c4b71ab8 radicle: 在配置中保持固定存储库有序 tobias.hunger@gmail.com
1fa30e2e8 cli: 测试规范仲裁的缺失提交 fintan.halpenny@gmail.com
afe64d517 remote-helper: 改进规范处理 fintan.halpenny@gmail.com
14444a43e remote-helper: 重构推送操作 fintan.halpenny@gmail.com
a9f75d47e remote-helper: 允许推送源中的任何修订 tobias.hunger@gmail.com
da72557cf git-remote-rad: 允许从裸存储库推送 tobias.hunger@gmail.com
271ef497d crypto: 修复ssh-key依赖的范围 lorenz.leutgeb@radicle.xyz
0e3f3f03d cli: 改进节点ID和地址的格式化 lorenz.leutgeb@radicle.xyz
010d5134e protocol: 修复Frame文档字符串 fintan.halpenny@gmail.com
3c5668edd protocol: 在bytes之上重新实现编码 lorenz.leutgeb@radicle.xyz
1c20f64a2 node, protocol: 重构 lorenz.leutgeb@radicle.xyz
61c468778 protocol: 通过从radicle-node移动创建骨架 lorenz.leutgeb@radicle.xyz
b9759c586 radicle: 使node::Link可复制并添加is_* lorenz.leutgeb@radicle.xyz
408d4f27e chore: 将规范引用添加到CHANGELOG fintan.halpenny@gmail.com
820122516 cli: 测试规范标签 fintan.halpenny@gmail.com
ff365e2d8 radicle: 不允许默认分支 fintan.halpenny@gmail.com
a69397386 cli: 提取文档更新逻辑 fintan.halpenny@gmail.com
7f646666b radicle: 规范引用有效载荷 fintan.halpenny@gmail.com
af6cf03ac radicle: 规范引用规则 fintan.halpenny@gmail.com
fb8681f5b radicle: 连接返回ConnectError fintan.halpenny@gmail.com

校验和

f09b4203a47611e1e6a78ea9087b5cae2f94cacc649ed195840a0869d821c861 radicle-1.3.0-x86_64-apple-darwin.tar.xz
a25c67276a86c9fbadadbacbd2ea9763202e99701aa85cf7fe5815662696988d radicle-1.3.0-x86_64-unknown-linux-musl.tar.xz
3a615bb99bc998b3fca5ad8582599c8dfb3cffb0beec291f5939d4b559270227 radicle-1.3.0-aarch64-unknown-linux-musl.tar.xz
7939e1d1bce232730843d8975f205558b0885479c6666b630abb1500b67756db radicle-1.3.0-aarch64-apple-darwin.tar.xz

在 🐘 Mastodon 或 🦋 Bluesky 上关注我们。 作为 🌱 播种者、🧙 开发者或通过在 Radicle 网络上 🪞 镜像您的存储库来为 Radicle 做出贡献。 加入我们的 💬 Zulip 社区,讨论您改进 Radicle 的想法。

(c) 2018-2025 The Radicle Team

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计