rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Created",
"patch": {
"id": "f77673e3daf3eb77c9ad3c95324f45df6fd58a9f",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"title": "node: test multiple offline inits",
"state": {
"status": "merged",
"conflicts": []
},
"before": "3403a66d0fc9c9cfab97eddaf5adeab40dc3bf23",
"after": "9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2",
"commits": [
"9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2"
],
"target": "3fc92f83fe089263c470b328414d923227cf0e4a",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "f77673e3daf3eb77c9ad3c95324f45df6fd58a9f",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Ensure that when a node initialises multiple repositories, those\nrepositories can successfully be fetched by another peer once they\nconnect.",
"base": "3403a66d0fc9c9cfab97eddaf5adeab40dc3bf23",
"oid": "9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2",
"timestamp": 1716456411
},
{
"id": "f67ff0f22297ed9d314361e77c9b6119f84cd31e",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Rebase.",
"base": "723e2741f54605c6404d0ff7f96cd6c14633cfb0",
"oid": "29e681210b1e568770ed6fc4d5ee11e7d346b5c4",
"timestamp": 1721638305
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "64b308e0-908a-4e18-8077-7697440df579"
},
"info_url": "https://cci.rad.levitte.org//64b308e0-908a-4e18-8077-7697440df579.html"
}
Started at: 2026-09-08 05:50:55.186562+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/64b308e0-908a-4e18-8077-7697440df579/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 189 issues · 38 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout f77673e3daf3eb77c9ad3c95324f45df6fd58a9f
✓ Switched to branch patch/f77673e at revision f77673e
✓ Branch patch/f77673e setup to track rad/patches/f77673e3daf3eb77c9ad3c95324f45df6fd58a9f
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2
HEAD is now at 9888ffe3 node: test multiple offline inits
Exit code: 0
$ rad patch show f77673e3daf3eb77c9ad3c95324f45df6fd58a9f -p
╭────────────────────────────────────────────────────────────────────────────────╮
│ Title node: test multiple offline inits │
│ Patch f77673e3daf3eb77c9ad3c95324f45df6fd58a9f │
│ Author fintohaps z6Mkire…SQZ3voM │
│ Head 9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2 │
│ Base 3403a66d0fc9c9cfab97eddaf5adeab40dc3bf23 │
│ Target master │
│ Branches patch/f77673e │
│ Commits ahead 1, behind 1323 │
│ Status merged │
│ │
│ Ensure that when a node initialises multiple repositories, those │
│ repositories can successfully be fetched by another peer once they │
│ connect. │
├────────────────────────────────────────────────────────────────────────────────┤
│ 9888ffe node: test multiple offline inits │
├────────────────────────────────────────────────────────────────────────────────┤
│ ● Revision f77673e @ 3403a66..9888ffe by fintohaps z6Mkire…SQZ3voM 2 years ago │
│ ↑ Revision f67ff0f @ 723e274..29e6812 by cloudhead z6MksFq…bS9wzpT 2 years ago │
│ └─ ✓ merged by cloudhead z6MksFq…bS9wzpT │
╰────────────────────────────────────────────────────────────────────────────────╯
commit 9888ffe3d8ff7c9ff25a94b04ea1594eb98a5bc2
Author: Fintan Halpenny <fintan.halpenny@gmail.com>
Date: Thu May 23 10:25:04 2024 +0100
node: test multiple offline inits
Ensure that when a node initialises multiple repositories, those
repositories can successfully be fetched by another peer once they
connect.
Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
diff --git a/radicle-node/src/tests/e2e.rs b/radicle-node/src/tests/e2e.rs
index af77677b7..33d4afd1d 100644
--- a/radicle-node/src/tests/e2e.rs
+++ b/radicle-node/src/tests/e2e.rs
@@ -1335,3 +1335,31 @@ fn test_catchup_on_refs_announcements() {
alice.connect(&seed);
alice.has_remote_of(&acme, &bob_id);
}
+
+#[test]
+fn test_multiple_offline_inits() {
+ logger::init(log::Level::Debug);
+
+ let tmp = tempfile::tempdir().unwrap();
+
+ let mut alice = Node::init(tmp.path(), config::relay("alice"));
+ let bob = Node::init(tmp.path(), config::relay("bob"));
+
+ let acme = alice.project("acme", "");
+ let radcliffe = alice.project("radcliffe", "");
+ let cobs = alice.project("cobs", "");
+ let projects = [acme, radcliffe, cobs];
+
+ let mut alice = alice.spawn();
+ let mut bob = bob.spawn();
+
+ for rid in &projects {
+ bob.handle.seed(*rid, Scope::All).unwrap();
+ }
+
+ alice.connect(&bob).converge([&bob]);
+
+ for repo in bob.storage.repositories().unwrap() {
+ assert!(projects.contains(&repo.rid), "Bob is missing {}", repo.rid);
+ }
+}
Exit code: 0
shell: 'cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny clippy::all cargo build --all-targets --workspace cargo doc --workspace cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name 64b308e0-908a-4e18-8077-7697440df579 -v /opt/radcis/ci.rad.levitte.org/cci/state/64b308e0-908a-4e18-8077-7697440df579/s:/64b308e0-908a-4e18-8077-7697440df579/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/64b308e0-908a-4e18-8077-7697440df579/w:/64b308e0-908a-4e18-8077-7697440df579/w -w /64b308e0-908a-4e18-8077-7697440df579/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /64b308e0-908a-4e18-8077-7697440df579/s/script.sh
+ cargo --version
info: syncing channel updates for '1.77-x86_64-unknown-linux-gnu'
info: latest update on 2024-04-09, rust version 1.77.2 (25ef9e3d8 2024-04-09)
info: downloading component 'cargo'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: installing component 'cargo'
info: installing component 'rust-std'
info: installing component 'rustc'
cargo 1.77.2 (e52e36006 2024-03-26)
+ rustc --version
rustc 1.77.2 (25ef9e3d8 2024-04-09)
+ cargo fmt --check
error: 'cargo-fmt' is not installed for the toolchain '1.77-x86_64-unknown-linux-gnu'.
To install, run `rustup component add --toolchain 1.77-x86_64-unknown-linux-gnu rustfmt`
Exit code: 1
{
"response": "finished",
"result": "failure"
}