In trying to rebuild the radicle 1.1.0 version now (2025-02-26), some months after 1.1.0 has been released, I see in my pipelines that the `cargo install cargo-zigbuild@0.19.3` instruction is now failing. This is because `home@0.5.11` has been released and this *patch* version bump requires a newer version of rust (1.81) (0.5.9 was ok with 1.80). See https://github.com/rust-lang/cargo/issues/14944 for more details. Adding `--locked` here prevents this issue from happening in the future. Importantly: newer versions of other crates being picked up by cargo here means the build isn't bit-for-bit reproducible. The error itself is: ``` [1/2] STEP 14/17: RUN curl -sSf -o zig.tar.xz https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz && curl -sSf -o zig.tar.xz.minisig https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz.minisig && minisign -Vm zig.tar.xz -P RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U && xz -d -c zig.tar.xz | tar -x && mv zig-linux-x86_64-0.12.0/zig /usr/bin/zig && mv zig-linux-x86_64-0.12.0/lib /usr/lib/zig && cargo install cargo-zigbuild@0.18.3 Signature and comment signature verified Trusted comment: timestamp:1713604063 file:zig-linux-x86_64-0.12.0.tar.xz hashed Updating crates.io index Downloading crates ... Downloaded cargo-zigbuild v0.18.3 Installing cargo-zigbuild v0.18.3 Updating crates.io index Locking 83 packages to latest compatible versions Adding cargo-platform v0.1.9 (latest: v0.2.0) Adding cargo-zigbuild v0.18.3 (latest: v0.19.8) Adding cargo_metadata v0.18.1 (latest: v0.19.1) Adding dirs v5.0.1 (latest: v6.0.0) Adding dirs-sys v0.4.1 (latest: v0.5.0) Adding fs-err v2.11.0 (latest: v3.1.0) Adding getrandom v0.2.15 (latest: v0.3.1) Adding linux-raw-sys v0.4.15 (latest: v0.9.0) Adding redox_users v0.4.6 (latest: v0.5.0) Adding target-lexicon v0.12.16 (latest: v0.13.2) Adding thiserror v1.0.69 (latest: v2.0.11) Adding thiserror-impl v1.0.69 (latest: v2.0.11) Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.14.1+wasi-0.2.3) Adding which v6.0.3 (latest: v7.0.2) Adding windows-sys v0.48.0 (latest: v0.59.0) Adding windows-targets v0.48.5 (latest: v0.53.0) Adding windows-targets v0.52.6 (latest: v0.53.0) Adding windows_aarch64_gnullvm v0.48.5 (latest: v0.53.0) Adding windows_aarch64_gnullvm v0.52.6 (latest: v0.53.0) Adding windows_aarch64_msvc v0.48.5 (latest: v0.53.0) Adding windows_aarch64_msvc v0.52.6 (latest: v0.53.0) Adding windows_i686_gnu v0.48.5 (latest: v0.53.0) Adding windows_i686_gnu v0.52.6 (latest: v0.53.0) Adding windows_i686_gnullvm v0.52.6 (latest: v0.53.0) Adding windows_i686_msvc v0.48.5 (latest: v0.53.0) Adding windows_i686_msvc v0.52.6 (latest: v0.53.0) Adding windows_x86_64_gnu v0.48.5 (latest: v0.53.0) Adding windows_x86_64_gnu v0.52.6 (latest: v0.53.0) Adding windows_x86_64_gnullvm v0.48.5 (latest: v0.53.0) Adding windows_x86_64_gnullvm v0.52.6 (latest: v0.53.0) Adding windows_x86_64_msvc v0.48.5 (latest: v0.53.0) Adding windows_x86_64_msvc v0.52.6 (latest: v0.53.0) Adding winsafe v0.0.19 (latest: v0.0.22) Downloading crates ... Downloaded anstyle v1.0.10 Downloaded anstyle-query v1.1.2 Downloaded cargo-platform v0.1.9 Downloaded bitflags v2.8.0 Downloaded cargo_metadata v0.18.1 Downloaded is_terminal_polyfill v1.70.1 Downloaded option-ext v0.2.0 Downloaded scroll_derive v0.12.0 Downloaded strsim v0.11.1 Downloaded autocfg v1.4.0 Downloaded anstream v0.6.18 Downloaded camino v1.1.9 Downloaded dirs-sys v0.4.1 Downloaded heck v0.5.0 Downloaded itoa v1.0.14 Downloaded home v0.5.11 Downloaded thiserror-impl v1.0.69 Downloaded which v6.0.3 Downloaded utf8parse v0.2.2 Downloaded either v1.14.0 Downloaded colorchoice v1.0.3 Downloaded clap_lex v0.7.4 Downloaded errno v0.3.10 Downloaded dirs v5.0.1 Downloaded fs-err v2.11.0 Downloaded shlex v1.3.0 Downloaded rustc_version v0.4.1 Downloaded path-slash v0.2.1 Downloaded thiserror v1.0.69 Downloaded terminal_size v0.4.1 Downloaded anstyle-parse v0.2.6 Downloaded clap_derive v4.5.28 Downloaded target-lexicon v0.12.16 Downloaded fat-macho v0.4.9 Downloaded semver v1.0.25 Downloaded scroll v0.12.0 Downloaded log v0.4.26 Downloaded proc-macro2 v1.0.93 Downloaded quote v1.0.38 Downloaded anyhow v1.0.96 Downloaded clap v4.5.31 Downloaded ryu v1.0.19 Downloaded serde_derive v1.0.218 Downloaded unicode-ident v1.0.17 Downloaded serde v1.0.218 Downloaded memchr v2.7.4 Downloaded serde_json v1.0.139 Downloaded clap_builder v4.5.31 Downloaded goblin v0.9.3 Downloaded syn v2.0.98 Downloaded rustix v0.38.44 Downloaded libc v0.2.170 Downloaded plain v0.2.3 Downloaded cargo-options v0.7.5 Downloaded linux-raw-sys v0.4.15 error: failed to compile `cargo-zigbuild v0.18.3`, intermediate artifacts can be found at `/tmp/cargo-installZ4q2vb`. To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path. Caused by: rustc 1.80.1 is not supported by the following package: home@0.5.11 requires rustc 1.81 Try re-running `cargo install` with `--locked` Error: building at STEP "RUN curl -sSf -o zig.tar.xz https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz && curl -sSf -o zig.tar.xz.minisig https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz.minisig && minisign -Vm zig.tar.xz -P RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U && xz -d -c zig.tar.xz | tar -x && mv zig-linux-x86_64-0.12.0/zig /usr/bin/zig && mv zig-linux-x86_64-0.12.0/lib /usr/lib/zig && cargo install cargo-zigbuild@0.18.3": while running runtime: exit status 101 ``` Signed-off-by: Yorgos Saslis <yorgos.work@proton.me> |
||
|---|---|---|
| .cargo | ||
| .config | ||
| .radicle | ||
| build | ||
| debian | ||
| radicle | ||
| radicle-cli | ||
| radicle-cli-test | ||
| radicle-cob | ||
| radicle-crdt | ||
| radicle-crypto | ||
| radicle-dag | ||
| radicle-fetch | ||
| radicle-node | ||
| radicle-remote-helper | ||
| radicle-signals | ||
| radicle-ssh | ||
| radicle-systemd | ||
| radicle-term | ||
| radicle-tools | ||
| scripts | ||
| systemd | ||
| .dockerignore | ||
| .env.seed | ||
| .envrc | ||
| .gitignore | ||
| .gitsigners | ||
| ARCHITECTURE.md | ||
| CONTRIBUTING.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| DCO | ||
| HACKING.md | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| VERSIONING.md | ||
| build.rs | ||
| deny.toml | ||
| flake.lock | ||
| flake.nix | ||
| git-remote-rad.1.adoc | ||
| rad-id.1.adoc | ||
| rad-patch.1.adoc | ||
| rad.1.adoc | ||
| radicle-node.1.adoc | ||
| rust-toolchain.toml | ||
README.md
❤️🪵
Radicle Heartwood Protocol & Stack
Heartwood is the third iteration of the Radicle Protocol, a powerful
peer-to-peer code collaboration and publishing stack. The repository contains a
full implementation of Heartwood, complete with a user-friendly command-line
interface (rad) and network daemon (radicle-node).
Radicle was designed to be a secure, decentralized and powerful alternative to code forges such as GitHub and GitLab that preserves user sovereignty and freedom.
See the Protocol Guide for an in-depth description of how Radicle works.
Installation
Requirements
- Linux or Unix based operating system.
- Git 2.34 or later
- OpenSSH 9.1 or later with
ssh-agent
📀 From binaries
Requires
curlandtar.
Run the following command to install the latest binary release:
curl -sSf https://radicle.xyz/install | sh
Or visit our download page.
📦 From source
Requires the Rust toolchain.
You can install the Radicle stack from source, by running the following commands from inside this repository:
cargo install --path radicle-cli --force --locked --root ~/.radicle
cargo install --path radicle-node --force --locked --root ~/.radicle
cargo install --path radicle-remote-helper --force --locked --root ~/.radicle
Or directly from our seed node:
cargo install --force --locked --root ~/.radicle \
--git https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git \
radicle-cli radicle-node radicle-remote-helper
Running
Systemd unit files are provided for the node under the /systemd folder.
They can be used as a starting point for further customization.
For running in debug mode, see HACKING.md.
Contributing
See CONTRIBUTING.md and HACKING.md for an introduction to contributing to Radicle.
License
Radicle is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.