rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood5bc2dc677b24aa5c266957fd07122b81fc85a683
{
"request": "trigger",
"version": 1,
"event_type": "push",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"pusher": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": "fintohaps"
},
"before": "5bc2dc677b24aa5c266957fd07122b81fc85a683",
"after": "5bc2dc677b24aa5c266957fd07122b81fc85a683",
"branch": "master",
"commits": [
"5bc2dc677b24aa5c266957fd07122b81fc85a683",
"6259a70327041ba28ed9ed0bed3301f2fca2c92d",
"eea6a9bc70dae097f8c1bf22d94cbd9038cb7238",
"d50df68b742729e1d8a53e9090b0d4f78f0d6134"
]
}
{
"response": "triggered",
"run_id": {
"id": "111a687e-9b41-4bec-a0eb-bbd535d3a808"
},
"info_url": "https://cci.rad.levitte.org//111a687e-9b41-4bec-a0eb-bbd535d3a808.html"
}
Started at: 2025-06-12 13:07:28.335220+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFq…bS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaN…hzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6Mkire…SQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq…FGAnBGz
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPv…WX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 105 issues · 13 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 5bc2dc677b24aa5c266957fd07122b81fc85a683
HEAD is now at 5bc2dc67 repo: Move workspace crates into `crates` subdirectory
Exit code: 0
$ git show 5bc2dc677b24aa5c266957fd07122b81fc85a683
commit 5bc2dc677b24aa5c266957fd07122b81fc85a683
Author: Lorenz Leutgeb <lorenz.leutgeb@radicle.xyz>
Date: Mon Jun 9 14:40:04 2025 +0200
repo: Move workspace crates into `crates` subdirectory
This keeps the top level of the repo cleaner, e.g.
<https://github.com/radicle-dev/heartwood> scrolls less and
<https://app.radicle.xyz/nodes/rosa.radicle.xyz/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/>
might show more files at the top level.
This way we also don't have to explicitly name all crates in
`Cargo.toml`.
diff --git a/.gitignore b/.gitignore
index 82f0798f..1baafebd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
/target
-/radicle-cli/target
+/crates/*/target
/build/artifacts
/build/*.tar.gz
/.pre-commit-config.yaml
diff --git a/Cargo.toml b/Cargo.toml
index fc677a10..85072bd5 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,34 +1,5 @@
[workspace]
-members = [
- "radicle",
- "radicle-cob",
- "radicle-cli",
- "radicle-cli-test",
- "radicle-crdt",
- "radicle-crypto",
- "radicle-dag",
- "radicle-fetch",
- "radicle-node",
- "radicle-remote-helper",
- "radicle-ssh",
- "radicle-tools",
- "radicle-schemars",
- "radicle-signals",
- "radicle-systemd",
-]
-default-members = [
- "radicle",
- "radicle-cli",
- "radicle-cob",
- "radicle-crdt",
- "radicle-crypto",
- "radicle-node",
- "radicle-ssh",
- "radicle-remote-helper",
- "radicle-term",
- "radicle-signals",
- "radicle-systemd",
-]
+members = ["crates/*"]
resolver = "2"
[workspace.package]
@@ -67,19 +38,19 @@ nonempty = "0.9.0"
pretty_assertions = "1.3.0"
qcheck = { version = "1", default-features = false }
qcheck-macros = { version = "1", default-features = false }
-radicle = { path = "radicle" }
-radicle-cli = { path = "radicle-cli" }
-radicle-cli-test = { path = "radicle-cli-test" }
-radicle-cob = { path = "radicle-cob" }
-radicle-crypto = { path = "radicle-crypto" }
-radicle-dag = { path = "radicle-dag" }
-radicle-fetch = { path = "radicle-fetch" }
+radicle = { path = "crates/radicle" }
+radicle-cli = { path = "crates/radicle-cli" }
+radicle-cli-test = { path = "crates/radicle-cli-test" }
+radicle-cob = { path = "crates/radicle-cob" }
+radicle-crypto = { path = "crates/radicle-crypto" }
+radicle-dag = { path = "crates/radicle-dag" }
+radicle-fetch = { path = "crates/radicle-fetch" }
radicle-git-ext = { version = "0.8.0", default-features = false }
-radicle-node = { path = "radicle-node" }
-radicle-signals = { path = "radicle-signals" }
-radicle-ssh = { path = "radicle-ssh", default-features = false }
-radicle-systemd = { path = "radicle-systemd" }
-radicle-term = { path = "radicle-term" }
+radicle-node = { path = "crates/radicle-node" }
+radicle-signals = { path = "crates/radicle-signals" }
+radicle-ssh = { path = "crates/radicle-ssh", default-features = false }
+radicle-systemd = { path = "crates/radicle-systemd" }
+radicle-term = { path = "crates/radicle-term" }
schemars = { version = "1.0.0-alpha.17" }
serde = "1.0"
serde_json = "1.0"
diff --git a/radicle-cli-test/Cargo.toml b/crates/radicle-cli-test/Cargo.toml
similarity index 100%
rename from radicle-cli-test/Cargo.toml
rename to crates/radicle-cli-test/Cargo.toml
diff --git a/radicle-cli-test/README.md b/crates/radicle-cli-test/README.md
similarity index 100%
rename from radicle-cli-test/README.md
rename to crates/radicle-cli-test/README.md
diff --git a/radicle-cli-test/src/lib.rs b/crates/radicle-cli-test/src/lib.rs
similarity index 100%
rename from radicle-cli-test/src/lib.rs
rename to crates/radicle-cli-test/src/lib.rs
diff --git a/radicle-cli/Cargo.toml b/crates/radicle-cli/Cargo.toml
similarity index 100%
rename from radicle-cli/Cargo.toml
rename to crates/radicle-cli/Cargo.toml
diff --git a/crates/radicle-cli/build.rs b/crates/radicle-cli/build.rs
new file mode 120000
index 00000000..c6b197af
--- /dev/null
+++ b/crates/radicle-cli/build.rs
@@ -0,0 +1 @@
+../../build.rs
\ No newline at end of file
diff --git a/radicle-cli/examples/framework/home.md b/crates/radicle-cli/examples/framework/home.md
similarity index 100%
rename from radicle-cli/examples/framework/home.md
rename to crates/radicle-cli/examples/framework/home.md
diff --git a/radicle-cli/examples/git/git-fetch.md b/crates/radicle-cli/examples/git/git-fetch.md
similarity index 100%
rename from radicle-cli/examples/git/git-fetch.md
rename to crates/radicle-cli/examples/git/git-fetch.md
diff --git a/radicle-cli/examples/git/git-push-amend.md b/crates/radicle-cli/examples/git/git-push-amend.md
similarity index 100%
rename from radicle-cli/examples/git/git-push-amend.md
rename to crates/radicle-cli/examples/git/git-push-amend.md
diff --git a/radicle-cli/examples/git/git-push-converge.md b/crates/radicle-cli/examples/git/git-push-converge.md
similarity index 100%
rename from radicle-cli/examples/git/git-push-converge.md
rename to crates/radicle-cli/examples/git/git-push-converge.md
diff --git a/radicle-cli/examples/git/git-push-delete.md b/crates/radicle-cli/examples/git/git-push-delete.md
similarity index 100%
rename from radicle-cli/examples/git/git-push-delete.md
rename to crates/radicle-cli/examples/git/git-push-delete.md
diff --git a/radicle-cli/examples/git/git-push-diverge.md b/crates/radicle-cli/examples/git/git-push-diverge.md
similarity index 100%
rename from radicle-cli/examples/git/git-push-diverge.md
rename to crates/radicle-cli/examples/git/git-push-diverge.md
diff --git a/radicle-cli/examples/git/git-push-rollback.md b/crates/radicle-cli/examples/git/git-push-rollback.md
similarity index 100%
rename from radicle-cli/examples/git/git-push-rollback.md
rename to crates/radicle-cli/examples/git/git-push-rollback.md
diff --git a/radicle-cli/examples/git/git-push.md b/crates/radicle-cli/examples/git/git-push.md
similarity index 100%
rename from radicle-cli/examples/git/git-push.md
rename to crates/radicle-cli/examples/git/git-push.md
diff --git a/radicle-cli/examples/git/git-tag.md b/crates/radicle-cli/examples/git/git-tag.md
similarity index 100%
rename from radicle-cli/examples/git/git-tag.md
rename to crates/radicle-cli/examples/git/git-tag.md
diff --git a/radicle-cli/examples/rad-auth-errors.md b/crates/radicle-cli/examples/rad-auth-errors.md
similarity index 100%
rename from radicle-cli/examples/rad-auth-errors.md
rename to crates/radicle-cli/examples/rad-auth-errors.md
diff --git a/radicle-cli/examples/rad-auth.md b/crates/radicle-cli/examples/rad-auth.md
similarity index 100%
rename from radicle-cli/examples/rad-auth.md
rename to crates/radicle-cli/examples/rad-auth.md
diff --git a/radicle-cli/examples/rad-block.md b/crates/radicle-cli/examples/rad-block.md
similarity index 100%
rename from radicle-cli/examples/rad-block.md
rename to crates/radicle-cli/examples/rad-block.md
diff --git a/radicle-cli/examples/rad-checkout-repo-config-linux.md b/crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
similarity index 100%
rename from radicle-cli/examples/rad-checkout-repo-config-linux.md
rename to crates/radicle-cli/examples/rad-checkout-repo-config-linux.md
diff --git a/radicle-cli/examples/rad-checkout-repo-config-macos.md b/crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
similarity index 100%
rename from radicle-cli/examples/rad-checkout-repo-config-macos.md
rename to crates/radicle-cli/examples/rad-checkout-repo-config-macos.md
diff --git a/radicle-cli/examples/rad-checkout.md b/crates/radicle-cli/examples/rad-checkout.md
similarity index 100%
rename from radicle-cli/examples/rad-checkout.md
rename to crates/radicle-cli/examples/rad-checkout.md
diff --git a/radicle-cli/examples/rad-clean.md b/crates/radicle-cli/examples/rad-clean.md
similarity index 100%
rename from radicle-cli/examples/rad-clean.md
rename to crates/radicle-cli/examples/rad-clean.md
diff --git a/radicle-cli/examples/rad-clone-all.md b/crates/radicle-cli/examples/rad-clone-all.md
similarity index 100%
rename from radicle-cli/examples/rad-clone-all.md
rename to crates/radicle-cli/examples/rad-clone-all.md
diff --git a/radicle-cli/examples/rad-clone-connect.md b/crates/radicle-cli/examples/rad-clone-connect.md
similarity index 100%
rename from radicle-cli/examples/rad-clone-connect.md
rename to crates/radicle-cli/examples/rad-clone-connect.md
diff --git a/radicle-cli/examples/rad-clone-directory.md b/crates/radicle-cli/examples/rad-clone-directory.md
similarity index 100%
rename from radicle-cli/examples/rad-clone-directory.md
rename to crates/radicle-cli/examples/rad-clone-directory.md
diff --git a/radicle-cli/examples/rad-clone-partial-fail.md b/crates/radicle-cli/examples/rad-clone-partial-fail.md
similarity index 100%
rename from radicle-cli/examples/rad-clone-partial-fail.md
rename to crates/radicle-cli/examples/rad-clone-partial-fail.md
diff --git a/radicle-cli/examples/rad-clone-unknown.md b/crates/radicle-cli/examples/rad-clone-unknown.md
similarity index 100%
rename from radicle-cli/examples/rad-clone-unknown.md
rename to crates/radicle-cli/examples/rad-clone-unknown.md
diff --git a/radicle-cli/examples/rad-clone.md b/crates/radicle-cli/examples/rad-clone.md
similarity index 100%
rename from radicle-cli/examples/rad-clone.md
rename to crates/radicle-cli/examples/rad-clone.md
diff --git a/radicle-cli/examples/rad-cob-log.md b/crates/radicle-cli/examples/rad-cob-log.md
similarity index 100%
rename from radicle-cli/examples/rad-cob-log.md
rename to crates/radicle-cli/examples/rad-cob-log.md
diff --git a/radicle-cli/examples/rad-cob-migrate.md b/crates/radicle-cli/examples/rad-cob-migrate.md
similarity index 100%
rename from radicle-cli/examples/rad-cob-migrate.md
rename to crates/radicle-cli/examples/rad-cob-migrate.md
diff --git a/radicle-cli/examples/rad-cob-multiset b/crates/radicle-cli/examples/rad-cob-multiset
similarity index 100%
rename from radicle-cli/examples/rad-cob-multiset
rename to crates/radicle-cli/examples/rad-cob-multiset
diff --git a/radicle-cli/examples/rad-cob-multiset.md b/crates/radicle-cli/examples/rad-cob-multiset.md
similarity index 100%
rename from radicle-cli/examples/rad-cob-multiset.md
rename to crates/radicle-cli/examples/rad-cob-multiset.md
diff --git a/radicle-cli/examples/rad-cob-show.md b/crates/radicle-cli/examples/rad-cob-show.md
similarity index 100%
rename from radicle-cli/examples/rad-cob-show.md
rename to crates/radicle-cli/examples/rad-cob-show.md
diff --git a/radicle-cli/examples/rad-cob-update-identity.md b/crates/radicle-cli/examples/rad-cob-update-identity.md
similarity index 100%
rename from radicle-cli/examples/rad-cob-update-identity.md
rename to crates/radicle-cli/examples/rad-cob-update-identity.md
diff --git a/radicle-cli/examples/rad-cob-update.md b/crates/radicle-cli/examples/rad-cob-update.md
similarity index 100%
rename from radicle-cli/examples/rad-cob-update.md
rename to crates/radicle-cli/examples/rad-cob-update.md
diff --git a/radicle-cli/examples/rad-config.md b/crates/radicle-cli/examples/rad-config.md
similarity index 100%
rename from radicle-cli/examples/rad-config.md
rename to crates/radicle-cli/examples/rad-config.md
diff --git a/radicle-cli/examples/rad-diff.md b/crates/radicle-cli/examples/rad-diff.md
similarity index 100%
rename from radicle-cli/examples/rad-diff.md
rename to crates/radicle-cli/examples/rad-diff.md
diff --git a/radicle-cli/examples/rad-fetch.md b/crates/radicle-cli/examples/rad-fetch.md
similarity index 100%
rename from radicle-cli/examples/rad-fetch.md
rename to crates/radicle-cli/examples/rad-fetch.md
diff --git a/radicle-cli/examples/rad-fork.md b/crates/radicle-cli/examples/rad-fork.md
similarity index 100%
rename from radicle-cli/examples/rad-fork.md
rename to crates/radicle-cli/examples/rad-fork.md
diff --git a/radicle-cli/examples/rad-id-collaboration.md b/crates/radicle-cli/examples/rad-id-collaboration.md
similarity index 100%
rename from radicle-cli/examples/rad-id-collaboration.md
rename to crates/radicle-cli/examples/rad-id-collaboration.md
diff --git a/radicle-cli/examples/rad-id-conflict.md b/crates/radicle-cli/examples/rad-id-conflict.md
similarity index 100%
rename from radicle-cli/examples/rad-id-conflict.md
rename to crates/radicle-cli/examples/rad-id-conflict.md
diff --git a/radicle-cli/examples/rad-id-multi-delegate.md b/crates/radicle-cli/examples/rad-id-multi-delegate.md
similarity index 100%
rename from radicle-cli/examples/rad-id-multi-delegate.md
rename to crates/radicle-cli/examples/rad-id-multi-delegate.md
diff --git a/radicle-cli/examples/rad-id-private.md b/crates/radicle-cli/examples/rad-id-private.md
similarity index 100%
rename from radicle-cli/examples/rad-id-private.md
rename to crates/radicle-cli/examples/rad-id-private.md
diff --git a/radicle-cli/examples/rad-id-threshold-soft-fork.md b/crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
similarity index 100%
rename from radicle-cli/examples/rad-id-threshold-soft-fork.md
rename to crates/radicle-cli/examples/rad-id-threshold-soft-fork.md
diff --git a/radicle-cli/examples/rad-id-threshold.md b/crates/radicle-cli/examples/rad-id-threshold.md
similarity index 100%
rename from radicle-cli/examples/rad-id-threshold.md
rename to crates/radicle-cli/examples/rad-id-threshold.md
diff --git a/radicle-cli/examples/rad-id-unknown-field.md b/crates/radicle-cli/examples/rad-id-unknown-field.md
similarity index 100%
rename from radicle-cli/examples/rad-id-unknown-field.md
rename to crates/radicle-cli/examples/rad-id-unknown-field.md
diff --git a/radicle-cli/examples/rad-id-update-delete-field.md b/crates/radicle-cli/examples/rad-id-update-delete-field.md
similarity index 100%
rename from radicle-cli/examples/rad-id-update-delete-field.md
rename to crates/radicle-cli/examples/rad-id-update-delete-field.md
diff --git a/radicle-cli/examples/rad-id.md b/crates/radicle-cli/examples/rad-id.md
similarity index 100%
rename from radicle-cli/examples/rad-id.md
rename to crates/radicle-cli/examples/rad-id.md
diff --git a/radicle-cli/examples/rad-inbox.md b/crates/radicle-cli/examples/rad-inbox.md
similarity index 100%
rename from radicle-cli/examples/rad-inbox.md
rename to crates/radicle-cli/examples/rad-inbox.md
diff --git a/radicle-cli/examples/rad-init-existing.md b/crates/radicle-cli/examples/rad-init-existing.md
similarity index 100%
rename from radicle-cli/examples/rad-init-existing.md
rename to crates/radicle-cli/examples/rad-init-existing.md
diff --git a/radicle-cli/examples/rad-init-no-git.md b/crates/radicle-cli/examples/rad-init-no-git.md
similarity index 100%
rename from radicle-cli/examples/rad-init-no-git.md
rename to crates/radicle-cli/examples/rad-init-no-git.md
diff --git a/radicle-cli/examples/rad-init-no-seed.md b/crates/radicle-cli/examples/rad-init-no-seed.md
similarity index 100%
rename from radicle-cli/examples/rad-init-no-seed.md
rename to crates/radicle-cli/examples/rad-init-no-seed.md
diff --git a/radicle-cli/examples/rad-init-private-clone-seed.md b/crates/radicle-cli/examples/rad-init-private-clone-seed.md
similarity index 100%
rename from radicle-cli/examples/rad-init-private-clone-seed.md
rename to crates/radicle-cli/examples/rad-init-private-clone-seed.md
diff --git a/radicle-cli/examples/rad-init-private-clone.md b/crates/radicle-cli/examples/rad-init-private-clone.md
similarity index 100%
rename from radicle-cli/examples/rad-init-private-clone.md
rename to crates/radicle-cli/examples/rad-init-private-clone.md
diff --git a/radicle-cli/examples/rad-init-private-no-seed.md b/crates/radicle-cli/examples/rad-init-private-no-seed.md
similarity index 100%
rename from radicle-cli/examples/rad-init-private-no-seed.md
rename to crates/radicle-cli/examples/rad-init-private-no-seed.md
diff --git a/radicle-cli/examples/rad-init-private-seed.md b/crates/radicle-cli/examples/rad-init-private-seed.md
similarity index 100%
rename from radicle-cli/examples/rad-init-private-seed.md
rename to crates/radicle-cli/examples/rad-init-private-seed.md
diff --git a/radicle-cli/examples/rad-init-private.md b/crates/radicle-cli/examples/rad-init-private.md
similarity index 100%
rename from radicle-cli/examples/rad-init-private.md
rename to crates/radicle-cli/examples/rad-init-private.md
diff --git a/radicle-cli/examples/rad-init-sync-not-connected.md b/crates/radicle-cli/examples/rad-init-sync-not-connected.md
similarity index 100%
rename from radicle-cli/examples/rad-init-sync-not-connected.md
rename to crates/radicle-cli/examples/rad-init-sync-not-connected.md
diff --git a/radicle-cli/examples/rad-init-sync-preferred.md b/crates/radicle-cli/examples/rad-init-sync-preferred.md
similarity index 100%
rename from radicle-cli/examples/rad-init-sync-preferred.md
rename to crates/radicle-cli/examples/rad-init-sync-preferred.md
diff --git a/radicle-cli/examples/rad-init-sync-timeout.md b/crates/radicle-cli/examples/rad-init-sync-timeout.md
similarity index 100%
rename from radicle-cli/examples/rad-init-sync-timeout.md
rename to crates/radicle-cli/examples/rad-init-sync-timeout.md
diff --git a/radicle-cli/examples/rad-init-sync.md b/crates/radicle-cli/examples/rad-init-sync.md
similarity index 100%
rename from radicle-cli/examples/rad-init-sync.md
rename to crates/radicle-cli/examples/rad-init-sync.md
diff --git a/radicle-cli/examples/rad-init-with-existing-remote.md b/crates/radicle-cli/examples/rad-init-with-existing-remote.md
similarity index 100%
rename from radicle-cli/examples/rad-init-with-existing-remote.md
rename to crates/radicle-cli/examples/rad-init-with-existing-remote.md
diff --git a/radicle-cli/examples/rad-init.md b/crates/radicle-cli/examples/rad-init.md
similarity index 100%
rename from radicle-cli/examples/rad-init.md
rename to crates/radicle-cli/examples/rad-init.md
diff --git a/radicle-cli/examples/rad-inspect-noauth.md b/crates/radicle-cli/examples/rad-inspect-noauth.md
similarity index 100%
rename from radicle-cli/examples/rad-inspect-noauth.md
rename to crates/radicle-cli/examples/rad-inspect-noauth.md
diff --git a/radicle-cli/examples/rad-inspect.md b/crates/radicle-cli/examples/rad-inspect.md
similarity index 100%
rename from radicle-cli/examples/rad-inspect.md
rename to crates/radicle-cli/examples/rad-inspect.md
diff --git a/radicle-cli/examples/rad-issue.md b/crates/radicle-cli/examples/rad-issue.md
similarity index 100%
rename from radicle-cli/examples/rad-issue.md
rename to crates/radicle-cli/examples/rad-issue.md
diff --git a/radicle-cli/examples/rad-merge-after-update.md b/crates/radicle-cli/examples/rad-merge-after-update.md
similarity index 100%
rename from radicle-cli/examples/rad-merge-after-update.md
rename to crates/radicle-cli/examples/rad-merge-after-update.md
diff --git a/radicle-cli/examples/rad-merge-no-ff.md b/crates/radicle-cli/examples/rad-merge-no-ff.md
similarity index 100%
rename from radicle-cli/examples/rad-merge-no-ff.md
rename to crates/radicle-cli/examples/rad-merge-no-ff.md
diff --git a/radicle-cli/examples/rad-merge-via-push.md b/crates/radicle-cli/examples/rad-merge-via-push.md
similarity index 100%
rename from radicle-cli/examples/rad-merge-via-push.md
rename to crates/radicle-cli/examples/rad-merge-via-push.md
diff --git a/radicle-cli/examples/rad-node.md b/crates/radicle-cli/examples/rad-node.md
similarity index 100%
rename from radicle-cli/examples/rad-node.md
rename to crates/radicle-cli/examples/rad-node.md
diff --git a/radicle-cli/examples/rad-patch-ahead-behind.md b/crates/radicle-cli/examples/rad-patch-ahead-behind.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-ahead-behind.md
rename to crates/radicle-cli/examples/rad-patch-ahead-behind.md
diff --git a/radicle-cli/examples/rad-patch-change-base.md b/crates/radicle-cli/examples/rad-patch-change-base.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-change-base.md
rename to crates/radicle-cli/examples/rad-patch-change-base.md
diff --git a/radicle-cli/examples/rad-patch-checkout-force.md b/crates/radicle-cli/examples/rad-patch-checkout-force.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-checkout-force.md
rename to crates/radicle-cli/examples/rad-patch-checkout-force.md
diff --git a/radicle-cli/examples/rad-patch-checkout-revision.md b/crates/radicle-cli/examples/rad-patch-checkout-revision.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-checkout-revision.md
rename to crates/radicle-cli/examples/rad-patch-checkout-revision.md
diff --git a/radicle-cli/examples/rad-patch-checkout.md b/crates/radicle-cli/examples/rad-patch-checkout.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-checkout.md
rename to crates/radicle-cli/examples/rad-patch-checkout.md
diff --git a/radicle-cli/examples/rad-patch-delete.md b/crates/radicle-cli/examples/rad-patch-delete.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-delete.md
rename to crates/radicle-cli/examples/rad-patch-delete.md
diff --git a/radicle-cli/examples/rad-patch-detached-head.md b/crates/radicle-cli/examples/rad-patch-detached-head.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-detached-head.md
rename to crates/radicle-cli/examples/rad-patch-detached-head.md
diff --git a/radicle-cli/examples/rad-patch-diff.md b/crates/radicle-cli/examples/rad-patch-diff.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-diff.md
rename to crates/radicle-cli/examples/rad-patch-diff.md
diff --git a/radicle-cli/examples/rad-patch-draft.md b/crates/radicle-cli/examples/rad-patch-draft.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-draft.md
rename to crates/radicle-cli/examples/rad-patch-draft.md
diff --git a/radicle-cli/examples/rad-patch-edit.md b/crates/radicle-cli/examples/rad-patch-edit.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-edit.md
rename to crates/radicle-cli/examples/rad-patch-edit.md
diff --git a/radicle-cli/examples/rad-patch-fetch-1.md b/crates/radicle-cli/examples/rad-patch-fetch-1.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-fetch-1.md
rename to crates/radicle-cli/examples/rad-patch-fetch-1.md
diff --git a/radicle-cli/examples/rad-patch-fetch-2.md b/crates/radicle-cli/examples/rad-patch-fetch-2.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-fetch-2.md
rename to crates/radicle-cli/examples/rad-patch-fetch-2.md
diff --git a/radicle-cli/examples/rad-patch-merge-draft.md b/crates/radicle-cli/examples/rad-patch-merge-draft.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-merge-draft.md
rename to crates/radicle-cli/examples/rad-patch-merge-draft.md
diff --git a/radicle-cli/examples/rad-patch-open-explore.md b/crates/radicle-cli/examples/rad-patch-open-explore.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-open-explore.md
rename to crates/radicle-cli/examples/rad-patch-open-explore.md
diff --git a/radicle-cli/examples/rad-patch-pull-update.md b/crates/radicle-cli/examples/rad-patch-pull-update.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-pull-update.md
rename to crates/radicle-cli/examples/rad-patch-pull-update.md
diff --git a/radicle-cli/examples/rad-patch-revert-merge.md b/crates/radicle-cli/examples/rad-patch-revert-merge.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-revert-merge.md
rename to crates/radicle-cli/examples/rad-patch-revert-merge.md
diff --git a/radicle-cli/examples/rad-patch-update.md b/crates/radicle-cli/examples/rad-patch-update.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-update.md
rename to crates/radicle-cli/examples/rad-patch-update.md
diff --git a/radicle-cli/examples/rad-patch-via-push.md b/crates/radicle-cli/examples/rad-patch-via-push.md
similarity index 100%
rename from radicle-cli/examples/rad-patch-via-push.md
rename to crates/radicle-cli/examples/rad-patch-via-push.md
diff --git a/radicle-cli/examples/rad-patch.md b/crates/radicle-cli/examples/rad-patch.md
similarity index 100%
rename from radicle-cli/examples/rad-patch.md
rename to crates/radicle-cli/examples/rad-patch.md
diff --git a/radicle-cli/examples/rad-publish.md b/crates/radicle-cli/examples/rad-publish.md
similarity index 100%
rename from radicle-cli/examples/rad-publish.md
rename to crates/radicle-cli/examples/rad-publish.md
diff --git a/radicle-cli/examples/rad-push-and-pull-patches.md b/crates/radicle-cli/examples/rad-push-and-pull-patches.md
similarity index 100%
rename from radicle-cli/examples/rad-push-and-pull-patches.md
rename to crates/radicle-cli/examples/rad-push-and-pull-patches.md
diff --git a/radicle-cli/examples/rad-remote.md b/crates/radicle-cli/examples/rad-remote.md
similarity index 100%
rename from radicle-cli/examples/rad-remote.md
rename to crates/radicle-cli/examples/rad-remote.md
diff --git a/radicle-cli/examples/rad-review-by-hunk.md b/crates/radicle-cli/examples/rad-review-by-hunk.md
similarity index 100%
rename from radicle-cli/examples/rad-review-by-hunk.md
rename to crates/radicle-cli/examples/rad-review-by-hunk.md
diff --git a/radicle-cli/examples/rad-seed-and-follow.md b/crates/radicle-cli/examples/rad-seed-and-follow.md
similarity index 100%
rename from radicle-cli/examples/rad-seed-and-follow.md
rename to crates/radicle-cli/examples/rad-seed-and-follow.md
diff --git a/radicle-cli/examples/rad-seed-many.md b/crates/radicle-cli/examples/rad-seed-many.md
similarity index 100%
rename from radicle-cli/examples/rad-seed-many.md
rename to crates/radicle-cli/examples/rad-seed-many.md
diff --git a/radicle-cli/examples/rad-self.md b/crates/radicle-cli/examples/rad-self.md
similarity index 100%
rename from radicle-cli/examples/rad-self.md
rename to crates/radicle-cli/examples/rad-self.md
diff --git a/radicle-cli/examples/rad-sync-without-node.md b/crates/radicle-cli/examples/rad-sync-without-node.md
similarity index 100%
rename from radicle-cli/examples/rad-sync-without-node.md
rename to crates/radicle-cli/examples/rad-sync-without-node.md
diff --git a/radicle-cli/examples/rad-sync.md b/crates/radicle-cli/examples/rad-sync.md
similarity index 100%
rename from radicle-cli/examples/rad-sync.md
rename to crates/radicle-cli/examples/rad-sync.md
diff --git a/radicle-cli/examples/rad-unseed-many.md b/crates/radicle-cli/examples/rad-unseed-many.md
similarity index 100%
rename from radicle-cli/examples/rad-unseed-many.md
rename to crates/radicle-cli/examples/rad-unseed-many.md
diff --git a/radicle-cli/examples/rad-unseed.md b/crates/radicle-cli/examples/rad-unseed.md
similarity index 100%
rename from radicle-cli/examples/rad-unseed.md
rename to crates/radicle-cli/examples/rad-unseed.md
diff --git a/radicle-cli/examples/rad-watch.md b/crates/radicle-cli/examples/rad-watch.md
similarity index 100%
rename from radicle-cli/examples/rad-watch.md
rename to crates/radicle-cli/examples/rad-watch.md
diff --git a/radicle-cli/examples/workflow/1-new-project.md b/crates/radicle-cli/examples/workflow/1-new-project.md
similarity index 100%
rename from radicle-cli/examples/workflow/1-new-project.md
rename to crates/radicle-cli/examples/workflow/1-new-project.md
diff --git a/radicle-cli/examples/workflow/2-cloning.md b/crates/radicle-cli/examples/workflow/2-cloning.md
similarity index 100%
rename from radicle-cli/examples/workflow/2-cloning.md
rename to crates/radicle-cli/examples/workflow/2-cloning.md
diff --git a/radicle-cli/examples/workflow/3-issues.md b/crates/radicle-cli/examples/workflow/3-issues.md
similarity index 100%
rename from radicle-cli/examples/workflow/3-issues.md
rename to crates/radicle-cli/examples/workflow/3-issues.md
diff --git a/radicle-cli/examples/workflow/4-patching-contributor.md b/crates/radicle-cli/examples/workflow/4-patching-contributor.md
similarity index 100%
rename from radicle-cli/examples/workflow/4-patching-contributor.md
rename to crates/radicle-cli/examples/workflow/4-patching-contributor.md
diff --git a/radicle-cli/examples/workflow/5-patching-maintainer.md b/crates/radicle-cli/examples/workflow/5-patching-maintainer.md
similarity index 100%
rename from radicle-cli/examples/workflow/5-patching-maintainer.md
rename to crates/radicle-cli/examples/workflow/5-patching-maintainer.md
diff --git a/radicle-cli/examples/workflow/6-pulling-contributor.md b/crates/radicle-cli/examples/workflow/6-pulling-contributor.md
similarity index 100%
rename from radicle-cli/examples/workflow/6-pulling-contributor.md
rename to crates/radicle-cli/examples/workflow/6-pulling-contributor.md
diff --git a/radicle-cli/src/commands.rs b/crates/radicle-cli/src/commands.rs
similarity index 100%
rename from radicle-cli/src/commands.rs
rename to crates/radicle-cli/src/commands.rs
diff --git a/radicle-cli/src/commands/auth.rs b/crates/radicle-cli/src/commands/auth.rs
similarity index 100%
rename from radicle-cli/src/commands/auth.rs
rename to crates/radicle-cli/src/commands/auth.rs
diff --git a/radicle-cli/src/commands/block.rs b/crates/radicle-cli/src/commands/block.rs
similarity index 100%
rename from radicle-cli/src/commands/block.rs
rename to crates/radicle-cli/src/commands/block.rs
diff --git a/radicle-cli/src/commands/checkout.rs b/crates/radicle-cli/src/commands/checkout.rs
similarity index 100%
rename from radicle-cli/src/commands/checkout.rs
rename to crates/radicle-cli/src/commands/checkout.rs
diff --git a/radicle-cli/src/commands/clean.rs b/crates/radicle-cli/src/commands/clean.rs
similarity index 100%
rename from radicle-cli/src/commands/clean.rs
rename to crates/radicle-cli/src/commands/clean.rs
diff --git a/radicle-cli/src/commands/clone.rs b/crates/radicle-cli/src/commands/clone.rs
similarity index 100%
rename from radicle-cli/src/commands/clone.rs
rename to crates/radicle-cli/src/commands/clone.rs
diff --git a/radicle-cli/src/commands/cob.rs b/crates/radicle-cli/src/commands/cob.rs
similarity index 100%
rename from radicle-cli/src/commands/cob.rs
rename to crates/radicle-cli/src/commands/cob.rs
diff --git a/radicle-cli/src/commands/config.rs b/crates/radicle-cli/src/commands/config.rs
similarity index 100%
rename from radicle-cli/src/commands/config.rs
rename to crates/radicle-cli/src/commands/config.rs
diff --git a/radicle-cli/src/commands/debug.rs b/crates/radicle-cli/src/commands/debug.rs
similarity index 100%
rename from radicle-cli/src/commands/debug.rs
rename to crates/radicle-cli/src/commands/debug.rs
diff --git a/radicle-cli/src/commands/diff.rs b/crates/radicle-cli/src/commands/diff.rs
similarity index 100%
rename from radicle-cli/src/commands/diff.rs
rename to crates/radicle-cli/src/commands/diff.rs
diff --git a/radicle-cli/src/commands/follow.rs b/crates/radicle-cli/src/commands/follow.rs
similarity index 100%
rename from radicle-cli/src/commands/follow.rs
rename to crates/radicle-cli/src/commands/follow.rs
diff --git a/radicle-cli/src/commands/fork.rs b/crates/radicle-cli/src/commands/fork.rs
similarity index 100%
rename from radicle-cli/src/commands/fork.rs
rename to crates/radicle-cli/src/commands/fork.rs
diff --git a/radicle-cli/src/commands/help.rs b/crates/radicle-cli/src/commands/help.rs
similarity index 100%
rename from radicle-cli/src/commands/help.rs
rename to crates/radicle-cli/src/commands/help.rs
diff --git a/radicle-cli/src/commands/id.rs b/crates/radicle-cli/src/commands/id.rs
similarity index 100%
rename from radicle-cli/src/commands/id.rs
rename to crates/radicle-cli/src/commands/id.rs
diff --git a/radicle-cli/src/commands/inbox.rs b/crates/radicle-cli/src/commands/inbox.rs
similarity index 100%
rename from radicle-cli/src/commands/inbox.rs
rename to crates/radicle-cli/src/commands/inbox.rs
diff --git a/radicle-cli/src/commands/init.rs b/crates/radicle-cli/src/commands/init.rs
similarity index 100%
rename from radicle-cli/src/commands/init.rs
rename to crates/radicle-cli/src/commands/init.rs
diff --git a/radicle-cli/src/commands/inspect.rs b/crates/radicle-cli/src/commands/inspect.rs
similarity index 100%
rename from radicle-cli/src/commands/inspect.rs
rename to crates/radicle-cli/src/commands/inspect.rs
diff --git a/radicle-cli/src/commands/issue.rs b/crates/radicle-cli/src/commands/issue.rs
similarity index 100%
rename from radicle-cli/src/commands/issue.rs
rename to crates/radicle-cli/src/commands/issue.rs
diff --git a/radicle-cli/src/commands/issue/cache.rs b/crates/radicle-cli/src/commands/issue/cache.rs
similarity index 100%
rename from radicle-cli/src/commands/issue/cache.rs
rename to crates/radicle-cli/src/commands/issue/cache.rs
diff --git a/radicle-cli/src/commands/ls.rs b/crates/radicle-cli/src/commands/ls.rs
similarity index 100%
rename from radicle-cli/src/commands/ls.rs
rename to crates/radicle-cli/src/commands/ls.rs
diff --git a/radicle-cli/src/commands/node.rs b/crates/radicle-cli/src/commands/node.rs
similarity index 100%
rename from radicle-cli/src/commands/node.rs
rename to crates/radicle-cli/src/commands/node.rs
diff --git a/radicle-cli/src/commands/node/commands.rs b/crates/radicle-cli/src/commands/node/commands.rs
similarity index 100%
rename from radicle-cli/src/commands/node/commands.rs
rename to crates/radicle-cli/src/commands/node/commands.rs
diff --git a/radicle-cli/src/commands/node/control.rs b/crates/radicle-cli/src/commands/node/control.rs
similarity index 100%
rename from radicle-cli/src/commands/node/control.rs
rename to crates/radicle-cli/src/commands/node/control.rs
diff --git a/radicle-cli/src/commands/node/events.rs b/crates/radicle-cli/src/commands/node/events.rs
similarity index 100%
rename from radicle-cli/src/commands/node/events.rs
rename to crates/radicle-cli/src/commands/node/events.rs
diff --git a/radicle-cli/src/commands/node/routing.rs b/crates/radicle-cli/src/commands/node/routing.rs
similarity index 100%
rename from radicle-cli/src/commands/node/routing.rs
rename to crates/radicle-cli/src/commands/node/routing.rs
diff --git a/radicle-cli/src/commands/patch.rs b/crates/radicle-cli/src/commands/patch.rs
similarity index 100%
rename from radicle-cli/src/commands/patch.rs
rename to crates/radicle-cli/src/commands/patch.rs
diff --git a/radicle-cli/src/commands/patch/archive.rs b/crates/radicle-cli/src/commands/patch/archive.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/archive.rs
rename to crates/radicle-cli/src/commands/patch/archive.rs
diff --git a/radicle-cli/src/commands/patch/assign.rs b/crates/radicle-cli/src/commands/patch/assign.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/assign.rs
rename to crates/radicle-cli/src/commands/patch/assign.rs
diff --git a/radicle-cli/src/commands/patch/cache.rs b/crates/radicle-cli/src/commands/patch/cache.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/cache.rs
rename to crates/radicle-cli/src/commands/patch/cache.rs
diff --git a/radicle-cli/src/commands/patch/checkout.rs b/crates/radicle-cli/src/commands/patch/checkout.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/checkout.rs
rename to crates/radicle-cli/src/commands/patch/checkout.rs
diff --git a/radicle-cli/src/commands/patch/comment.rs b/crates/radicle-cli/src/commands/patch/comment.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/comment.rs
rename to crates/radicle-cli/src/commands/patch/comment.rs
diff --git a/radicle-cli/src/commands/patch/comment/edit.rs b/crates/radicle-cli/src/commands/patch/comment/edit.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/comment/edit.rs
rename to crates/radicle-cli/src/commands/patch/comment/edit.rs
diff --git a/radicle-cli/src/commands/patch/comment/react.rs b/crates/radicle-cli/src/commands/patch/comment/react.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/comment/react.rs
rename to crates/radicle-cli/src/commands/patch/comment/react.rs
diff --git a/radicle-cli/src/commands/patch/comment/redact.rs b/crates/radicle-cli/src/commands/patch/comment/redact.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/comment/redact.rs
rename to crates/radicle-cli/src/commands/patch/comment/redact.rs
diff --git a/radicle-cli/src/commands/patch/common.rs b/crates/radicle-cli/src/commands/patch/common.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/common.rs
rename to crates/radicle-cli/src/commands/patch/common.rs
diff --git a/radicle-cli/src/commands/patch/delete.rs b/crates/radicle-cli/src/commands/patch/delete.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/delete.rs
rename to crates/radicle-cli/src/commands/patch/delete.rs
diff --git a/radicle-cli/src/commands/patch/diff.rs b/crates/radicle-cli/src/commands/patch/diff.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/diff.rs
rename to crates/radicle-cli/src/commands/patch/diff.rs
diff --git a/radicle-cli/src/commands/patch/edit.rs b/crates/radicle-cli/src/commands/patch/edit.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/edit.rs
rename to crates/radicle-cli/src/commands/patch/edit.rs
diff --git a/radicle-cli/src/commands/patch/label.rs b/crates/radicle-cli/src/commands/patch/label.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/label.rs
rename to crates/radicle-cli/src/commands/patch/label.rs
diff --git a/radicle-cli/src/commands/patch/list.rs b/crates/radicle-cli/src/commands/patch/list.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/list.rs
rename to crates/radicle-cli/src/commands/patch/list.rs
diff --git a/radicle-cli/src/commands/patch/react.rs b/crates/radicle-cli/src/commands/patch/react.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/react.rs
rename to crates/radicle-cli/src/commands/patch/react.rs
diff --git a/radicle-cli/src/commands/patch/ready.rs b/crates/radicle-cli/src/commands/patch/ready.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/ready.rs
rename to crates/radicle-cli/src/commands/patch/ready.rs
diff --git a/radicle-cli/src/commands/patch/redact.rs b/crates/radicle-cli/src/commands/patch/redact.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/redact.rs
rename to crates/radicle-cli/src/commands/patch/redact.rs
diff --git a/radicle-cli/src/commands/patch/resolve.rs b/crates/radicle-cli/src/commands/patch/resolve.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/resolve.rs
rename to crates/radicle-cli/src/commands/patch/resolve.rs
diff --git a/radicle-cli/src/commands/patch/review.rs b/crates/radicle-cli/src/commands/patch/review.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/review.rs
rename to crates/radicle-cli/src/commands/patch/review.rs
diff --git a/radicle-cli/src/commands/patch/review/builder.rs b/crates/radicle-cli/src/commands/patch/review/builder.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/review/builder.rs
rename to crates/radicle-cli/src/commands/patch/review/builder.rs
diff --git a/radicle-cli/src/commands/patch/show.rs b/crates/radicle-cli/src/commands/patch/show.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/show.rs
rename to crates/radicle-cli/src/commands/patch/show.rs
diff --git a/radicle-cli/src/commands/patch/update.rs b/crates/radicle-cli/src/commands/patch/update.rs
similarity index 100%
rename from radicle-cli/src/commands/patch/update.rs
rename to crates/radicle-cli/src/commands/patch/update.rs
diff --git a/radicle-cli/src/commands/path.rs b/crates/radicle-cli/src/commands/path.rs
similarity index 100%
rename from radicle-cli/src/commands/path.rs
rename to crates/radicle-cli/src/commands/path.rs
diff --git a/radicle-cli/src/commands/publish.rs b/crates/radicle-cli/src/commands/publish.rs
similarity index 100%
rename from radicle-cli/src/commands/publish.rs
rename to crates/radicle-cli/src/commands/publish.rs
diff --git a/radicle-cli/src/commands/remote.rs b/crates/radicle-cli/src/commands/remote.rs
similarity index 100%
rename from radicle-cli/src/commands/remote.rs
rename to crates/radicle-cli/src/commands/remote.rs
diff --git a/radicle-cli/src/commands/remote/add.rs b/crates/radicle-cli/src/commands/remote/add.rs
similarity index 100%
rename from radicle-cli/src/commands/remote/add.rs
rename to crates/radicle-cli/src/commands/remote/add.rs
diff --git a/radicle-cli/src/commands/remote/list.rs b/crates/radicle-cli/src/commands/remote/list.rs
similarity index 100%
rename from radicle-cli/src/commands/remote/list.rs
rename to crates/radicle-cli/src/commands/remote/list.rs
diff --git a/radicle-cli/src/commands/remote/rm.rs b/crates/radicle-cli/src/commands/remote/rm.rs
similarity index 100%
rename from radicle-cli/src/commands/remote/rm.rs
rename to crates/radicle-cli/src/commands/remote/rm.rs
diff --git a/radicle-cli/src/commands/seed.rs b/crates/radicle-cli/src/commands/seed.rs
similarity index 100%
rename from radicle-cli/src/commands/seed.rs
rename to crates/radicle-cli/src/commands/seed.rs
diff --git a/radicle-cli/src/commands/self.rs b/crates/radicle-cli/src/commands/self.rs
similarity index 100%
rename from radicle-cli/src/commands/self.rs
rename to crates/radicle-cli/src/commands/self.rs
diff --git a/radicle-cli/src/commands/stats.rs b/crates/radicle-cli/src/commands/stats.rs
similarity index 100%
rename from radicle-cli/src/commands/stats.rs
rename to crates/radicle-cli/src/commands/stats.rs
diff --git a/radicle-cli/src/commands/sync.rs b/crates/radicle-cli/src/commands/sync.rs
similarity index 100%
rename from radicle-cli/src/commands/sync.rs
rename to crates/radicle-cli/src/commands/sync.rs
diff --git a/radicle-cli/src/commands/unblock.rs b/crates/radicle-cli/src/commands/unblock.rs
similarity index 100%
rename from radicle-cli/src/commands/unblock.rs
rename to crates/radicle-cli/src/commands/unblock.rs
diff --git a/radicle-cli/src/commands/unfollow.rs b/crates/radicle-cli/src/commands/unfollow.rs
similarity index 100%
rename from radicle-cli/src/commands/unfollow.rs
rename to crates/radicle-cli/src/commands/unfollow.rs
diff --git a/radicle-cli/src/commands/unseed.rs b/crates/radicle-cli/src/commands/unseed.rs
similarity index 100%
rename from radicle-cli/src/commands/unseed.rs
rename to crates/radicle-cli/src/commands/unseed.rs
diff --git a/radicle-cli/src/commands/watch.rs b/crates/radicle-cli/src/commands/watch.rs
similarity index 100%
rename from radicle-cli/src/commands/watch.rs
rename to crates/radicle-cli/src/commands/watch.rs
diff --git a/radicle-cli/src/git.rs b/crates/radicle-cli/src/git.rs
similarity index 100%
rename from radicle-cli/src/git.rs
rename to crates/radicle-cli/src/git.rs
diff --git a/radicle-cli/src/git/ddiff.rs b/crates/radicle-cli/src/git/ddiff.rs
similarity index 100%
rename from radicle-cli/src/git/ddiff.rs
rename to crates/radicle-cli/src/git/ddiff.rs
diff --git a/radicle-cli/src/git/pretty_diff.rs b/crates/radicle-cli/src/git/pretty_diff.rs
similarity index 100%
rename from radicle-cli/src/git/pretty_diff.rs
rename to crates/radicle-cli/src/git/pretty_diff.rs
diff --git a/radicle-cli/src/git/unified_diff.rs b/crates/radicle-cli/src/git/unified_diff.rs
similarity index 100%
rename from radicle-cli/src/git/unified_diff.rs
rename to crates/radicle-cli/src/git/unified_diff.rs
diff --git a/radicle-cli/src/lib.rs b/crates/radicle-cli/src/lib.rs
similarity index 100%
rename from radicle-cli/src/lib.rs
rename to crates/radicle-cli/src/lib.rs
diff --git a/radicle-cli/src/main.rs b/crates/radicle-cli/src/main.rs
similarity index 100%
rename from radicle-cli/src/main.rs
rename to crates/radicle-cli/src/main.rs
diff --git a/radicle-cli/src/node.rs b/crates/radicle-cli/src/node.rs
similarity index 100%
rename from radicle-cli/src/node.rs
rename to crates/radicle-cli/src/node.rs
diff --git a/radicle-cli/src/pager.rs b/crates/radicle-cli/src/pager.rs
similarity index 100%
rename from radicle-cli/src/pager.rs
rename to crates/radicle-cli/src/pager.rs
diff --git a/radicle-cli/src/project.rs b/crates/radicle-cli/src/project.rs
similarity index 100%
rename from radicle-cli/src/project.rs
rename to crates/radicle-cli/src/project.rs
diff --git a/radicle-cli/src/terminal.rs b/crates/radicle-cli/src/terminal.rs
similarity index 100%
rename from radicle-cli/src/terminal.rs
rename to crates/radicle-cli/src/terminal.rs
diff --git a/radicle-cli/src/terminal/args.rs b/crates/radicle-cli/src/terminal/args.rs
similarity index 100%
rename from radicle-cli/src/terminal/args.rs
rename to crates/radicle-cli/src/terminal/args.rs
diff --git a/radicle-cli/src/terminal/cob.rs b/crates/radicle-cli/src/terminal/cob.rs
similarity index 100%
rename from radicle-cli/src/terminal/cob.rs
rename to crates/radicle-cli/src/terminal/cob.rs
diff --git a/radicle-cli/src/terminal/comment.rs b/crates/radicle-cli/src/terminal/comment.rs
similarity index 100%
rename from radicle-cli/src/terminal/comment.rs
rename to crates/radicle-cli/src/terminal/comment.rs
diff --git a/radicle-cli/src/terminal/format.rs b/crates/radicle-cli/src/terminal/format.rs
similarity index 100%
rename from radicle-cli/src/terminal/format.rs
rename to crates/radicle-cli/src/terminal/format.rs
diff --git a/radicle-cli/src/terminal/highlight.rs b/crates/radicle-cli/src/terminal/highlight.rs
similarity index 100%
rename from radicle-cli/src/terminal/highlight.rs
rename to crates/radicle-cli/src/terminal/highlight.rs
diff --git a/radicle-cli/src/terminal/io.rs b/crates/radicle-cli/src/terminal/io.rs
similarity index 100%
rename from radicle-cli/src/terminal/io.rs
rename to crates/radicle-cli/src/terminal/io.rs
diff --git a/radicle-cli/src/terminal/issue.rs b/crates/radicle-cli/src/terminal/issue.rs
similarity index 100%
rename from radicle-cli/src/terminal/issue.rs
rename to crates/radicle-cli/src/terminal/issue.rs
diff --git a/radicle-cli/src/terminal/json.rs b/crates/radicle-cli/src/terminal/json.rs
similarity index 100%
rename from radicle-cli/src/terminal/json.rs
rename to crates/radicle-cli/src/terminal/json.rs
diff --git a/radicle-cli/src/terminal/patch.rs b/crates/radicle-cli/src/terminal/patch.rs
similarity index 100%
rename from radicle-cli/src/terminal/patch.rs
rename to crates/radicle-cli/src/terminal/patch.rs
diff --git a/radicle-cli/src/terminal/patch/common.rs b/crates/radicle-cli/src/terminal/patch/common.rs
similarity index 100%
rename from radicle-cli/src/terminal/patch/common.rs
rename to crates/radicle-cli/src/terminal/patch/common.rs
diff --git a/radicle-cli/src/terminal/patch/timeline.rs b/crates/radicle-cli/src/terminal/patch/timeline.rs
similarity index 100%
rename from radicle-cli/src/terminal/patch/timeline.rs
rename to crates/radicle-cli/src/terminal/patch/timeline.rs
diff --git a/radicle-cli/src/terminal/upload_pack.rs b/crates/radicle-cli/src/terminal/upload_pack.rs
similarity index 100%
rename from radicle-cli/src/terminal/upload_pack.rs
rename to crates/radicle-cli/src/terminal/upload_pack.rs
diff --git a/radicle-cli/tests/commands.rs b/crates/radicle-cli/tests/commands.rs
similarity index 100%
rename from radicle-cli/tests/commands.rs
rename to crates/radicle-cli/tests/commands.rs
diff --git a/radicle-cli/tests/data/ddiff_hunk.diff b/crates/radicle-cli/tests/data/ddiff_hunk.diff
similarity index 100%
rename from radicle-cli/tests/data/ddiff_hunk.diff
rename to crates/radicle-cli/tests/data/ddiff_hunk.diff
diff --git a/radicle-cli/tests/data/diff.diff b/crates/radicle-cli/tests/data/diff.diff
similarity index 100%
rename from radicle-cli/tests/data/diff.diff
rename to crates/radicle-cli/tests/data/diff.diff
diff --git a/radicle-cli/tests/data/diff_body.diff b/crates/radicle-cli/tests/data/diff_body.diff
similarity index 100%
rename from radicle-cli/tests/data/diff_body.diff
rename to crates/radicle-cli/tests/data/diff_body.diff
diff --git a/radicle-cob/Cargo.toml b/crates/radicle-cob/Cargo.toml
similarity index 100%
rename from radicle-cob/Cargo.toml
rename to crates/radicle-cob/Cargo.toml
diff --git a/radicle-cob/src/backend.rs b/crates/radicle-cob/src/backend.rs
similarity index 100%
rename from radicle-cob/src/backend.rs
rename to crates/radicle-cob/src/backend.rs
diff --git a/radicle-cob/src/backend/git.rs b/crates/radicle-cob/src/backend/git.rs
similarity index 100%
rename from radicle-cob/src/backend/git.rs
rename to crates/radicle-cob/src/backend/git.rs
diff --git a/radicle-cob/src/backend/git/change.rs b/crates/radicle-cob/src/backend/git/change.rs
similarity index 100%
rename from radicle-cob/src/backend/git/change.rs
rename to crates/radicle-cob/src/backend/git/change.rs
diff --git a/radicle-cob/src/backend/git/stable.rs b/crates/radicle-cob/src/backend/git/stable.rs
similarity index 100%
rename from radicle-cob/src/backend/git/stable.rs
rename to crates/radicle-cob/src/backend/git/stable.rs
diff --git a/radicle-cob/src/change.rs b/crates/radicle-cob/src/change.rs
similarity index 100%
rename from radicle-cob/src/change.rs
rename to crates/radicle-cob/src/change.rs
diff --git a/radicle-cob/src/change/store.rs b/crates/radicle-cob/src/change/store.rs
similarity index 100%
rename from radicle-cob/src/change/store.rs
rename to crates/radicle-cob/src/change/store.rs
diff --git a/radicle-cob/src/change_graph.rs b/crates/radicle-cob/src/change_graph.rs
similarity index 100%
rename from radicle-cob/src/change_graph.rs
rename to crates/radicle-cob/src/change_graph.rs
diff --git a/radicle-cob/src/history.rs b/crates/radicle-cob/src/history.rs
similarity index 100%
rename from radicle-cob/src/history.rs
rename to crates/radicle-cob/src/history.rs
diff --git a/radicle-cob/src/lib.rs b/crates/radicle-cob/src/lib.rs
similarity index 100%
rename from radicle-cob/src/lib.rs
rename to crates/radicle-cob/src/lib.rs
diff --git a/radicle-cob/src/object.rs b/crates/radicle-cob/src/object.rs
similarity index 100%
rename from radicle-cob/src/object.rs
rename to crates/radicle-cob/src/object.rs
diff --git a/radicle-cob/src/object/collaboration.rs b/crates/radicle-cob/src/object/collaboration.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration.rs
rename to crates/radicle-cob/src/object/collaboration.rs
diff --git a/radicle-cob/src/object/collaboration/create.rs b/crates/radicle-cob/src/object/collaboration/create.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/create.rs
rename to crates/radicle-cob/src/object/collaboration/create.rs
diff --git a/radicle-cob/src/object/collaboration/error.rs b/crates/radicle-cob/src/object/collaboration/error.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/error.rs
rename to crates/radicle-cob/src/object/collaboration/error.rs
diff --git a/radicle-cob/src/object/collaboration/get.rs b/crates/radicle-cob/src/object/collaboration/get.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/get.rs
rename to crates/radicle-cob/src/object/collaboration/get.rs
diff --git a/radicle-cob/src/object/collaboration/info.rs b/crates/radicle-cob/src/object/collaboration/info.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/info.rs
rename to crates/radicle-cob/src/object/collaboration/info.rs
diff --git a/radicle-cob/src/object/collaboration/list.rs b/crates/radicle-cob/src/object/collaboration/list.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/list.rs
rename to crates/radicle-cob/src/object/collaboration/list.rs
diff --git a/radicle-cob/src/object/collaboration/remove.rs b/crates/radicle-cob/src/object/collaboration/remove.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/remove.rs
rename to crates/radicle-cob/src/object/collaboration/remove.rs
diff --git a/radicle-cob/src/object/collaboration/update.rs b/crates/radicle-cob/src/object/collaboration/update.rs
similarity index 100%
rename from radicle-cob/src/object/collaboration/update.rs
rename to crates/radicle-cob/src/object/collaboration/update.rs
diff --git a/radicle-cob/src/object/storage.rs b/crates/radicle-cob/src/object/storage.rs
similarity index 100%
rename from radicle-cob/src/object/storage.rs
rename to crates/radicle-cob/src/object/storage.rs
diff --git a/radicle-cob/src/sign.rs b/crates/radicle-cob/src/sign.rs
similarity index 100%
rename from radicle-cob/src/sign.rs
rename to crates/radicle-cob/src/sign.rs
diff --git a/radicle-cob/src/signatures.rs b/crates/radicle-cob/src/signatures.rs
similarity index 100%
rename from radicle-cob/src/signatures.rs
rename to crates/radicle-cob/src/signatures.rs
diff --git a/radicle-cob/src/signatures/error.rs b/crates/radicle-cob/src/signatures/error.rs
similarity index 100%
rename from radicle-cob/src/signatures/error.rs
rename to crates/radicle-cob/src/signatures/error.rs
diff --git a/radicle-cob/src/test.rs b/crates/radicle-cob/src/test.rs
similarity index 100%
rename from radicle-cob/src/test.rs
rename to crates/radicle-cob/src/test.rs
diff --git a/radicle-cob/src/test/arbitrary.rs b/crates/radicle-cob/src/test/arbitrary.rs
similarity index 100%
rename from radicle-cob/src/test/arbitrary.rs
rename to crates/radicle-cob/src/test/arbitrary.rs
diff --git a/radicle-cob/src/test/identity.rs b/crates/radicle-cob/src/test/identity.rs
similarity index 100%
rename from radicle-cob/src/test/identity.rs
rename to crates/radicle-cob/src/test/identity.rs
diff --git a/radicle-cob/src/test/identity/person.rs b/crates/radicle-cob/src/test/identity/person.rs
similarity index 100%
rename from radicle-cob/src/test/identity/person.rs
rename to crates/radicle-cob/src/test/identity/person.rs
diff --git a/radicle-cob/src/test/identity/project.rs b/crates/radicle-cob/src/test/identity/project.rs
similarity index 100%
rename from radicle-cob/src/test/identity/project.rs
rename to crates/radicle-cob/src/test/identity/project.rs
diff --git a/radicle-cob/src/test/storage.rs b/crates/radicle-cob/src/test/storage.rs
similarity index 100%
rename from radicle-cob/src/test/storage.rs
rename to crates/radicle-cob/src/test/storage.rs
diff --git a/radicle-cob/src/tests.rs b/crates/radicle-cob/src/tests.rs
similarity index 100%
rename from radicle-cob/src/tests.rs
rename to crates/radicle-cob/src/tests.rs
diff --git a/radicle-cob/src/trailers.rs b/crates/radicle-cob/src/trailers.rs
similarity index 100%
rename from radicle-cob/src/trailers.rs
rename to crates/radicle-cob/src/trailers.rs
diff --git a/radicle-cob/src/type_name.rs b/crates/radicle-cob/src/type_name.rs
similarity index 100%
rename from radicle-cob/src/type_name.rs
rename to crates/radicle-cob/src/type_name.rs
diff --git a/radicle-crdt/Cargo.toml b/crates/radicle-crdt/Cargo.toml
similarity index 100%
rename from radicle-crdt/Cargo.toml
rename to crates/radicle-crdt/Cargo.toml
diff --git a/radicle-crdt/src/clock.rs b/crates/radicle-crdt/src/clock.rs
similarity index 100%
rename from radicle-crdt/src/clock.rs
rename to crates/radicle-crdt/src/clock.rs
diff --git a/radicle-crdt/src/gmap.rs b/crates/radicle-crdt/src/gmap.rs
similarity index 100%
rename from radicle-crdt/src/gmap.rs
rename to crates/radicle-crdt/src/gmap.rs
diff --git a/radicle-crdt/src/gset.rs b/crates/radicle-crdt/src/gset.rs
similarity index 100%
rename from radicle-crdt/src/gset.rs
rename to crates/radicle-crdt/src/gset.rs
diff --git a/radicle-crdt/src/immutable.rs b/crates/radicle-crdt/src/immutable.rs
similarity index 100%
rename from radicle-crdt/src/immutable.rs
rename to crates/radicle-crdt/src/immutable.rs
diff --git a/radicle-crdt/src/lib.rs b/crates/radicle-crdt/src/lib.rs
similarity index 100%
rename from radicle-crdt/src/lib.rs
rename to crates/radicle-crdt/src/lib.rs
diff --git a/radicle-crdt/src/lwwmap.rs b/crates/radicle-crdt/src/lwwmap.rs
similarity index 100%
rename from radicle-crdt/src/lwwmap.rs
rename to crates/radicle-crdt/src/lwwmap.rs
diff --git a/radicle-crdt/src/lwwreg.rs b/crates/radicle-crdt/src/lwwreg.rs
similarity index 100%
rename from radicle-crdt/src/lwwreg.rs
rename to crates/radicle-crdt/src/lwwreg.rs
diff --git a/radicle-crdt/src/lwwset.rs b/crates/radicle-crdt/src/lwwset.rs
similarity index 100%
rename from radicle-crdt/src/lwwset.rs
rename to crates/radicle-crdt/src/lwwset.rs
diff --git a/radicle-crdt/src/ord.rs b/crates/radicle-crdt/src/ord.rs
similarity index 100%
rename from radicle-crdt/src/ord.rs
rename to crates/radicle-crdt/src/ord.rs
diff --git a/radicle-crdt/src/redactable.rs b/crates/radicle-crdt/src/redactable.rs
similarity index 100%
rename from radicle-crdt/src/redactable.rs
rename to crates/radicle-crdt/src/redactable.rs
diff --git a/radicle-crdt/src/test.rs b/crates/radicle-crdt/src/test.rs
similarity index 100%
rename from radicle-crdt/src/test.rs
rename to crates/radicle-crdt/src/test.rs
diff --git a/radicle-crypto/Cargo.toml b/crates/radicle-crypto/Cargo.toml
similarity index 100%
rename from radicle-crypto/Cargo.toml
rename to crates/radicle-crypto/Cargo.toml
diff --git a/radicle-crypto/src/lib.rs b/crates/radicle-crypto/src/lib.rs
similarity index 100%
rename from radicle-crypto/src/lib.rs
rename to crates/radicle-crypto/src/lib.rs
diff --git a/radicle-crypto/src/ssh.rs b/crates/radicle-crypto/src/ssh.rs
similarity index 100%
rename from radicle-crypto/src/ssh.rs
rename to crates/radicle-crypto/src/ssh.rs
diff --git a/radicle-crypto/src/ssh/agent.rs b/crates/radicle-crypto/src/ssh/agent.rs
similarity index 100%
rename from radicle-crypto/src/ssh/agent.rs
rename to crates/radicle-crypto/src/ssh/agent.rs
diff --git a/radicle-crypto/src/ssh/keystore.rs b/crates/radicle-crypto/src/ssh/keystore.rs
similarity index 100%
rename from radicle-crypto/src/ssh/keystore.rs
rename to crates/radicle-crypto/src/ssh/keystore.rs
diff --git a/radicle-crypto/src/test.rs b/crates/radicle-crypto/src/test.rs
similarity index 100%
rename from radicle-crypto/src/test.rs
rename to crates/radicle-crypto/src/test.rs
diff --git a/radicle-crypto/src/test/arbitrary.rs b/crates/radicle-crypto/src/test/arbitrary.rs
similarity index 100%
rename from radicle-crypto/src/test/arbitrary.rs
rename to crates/radicle-crypto/src/test/arbitrary.rs
diff --git a/radicle-crypto/src/test/signer.rs b/crates/radicle-crypto/src/test/signer.rs
similarity index 100%
rename from radicle-crypto/src/test/signer.rs
rename to crates/radicle-crypto/src/test/signer.rs
diff --git a/radicle-dag/Cargo.toml b/crates/radicle-dag/Cargo.toml
similarity index 100%
rename from radicle-dag/Cargo.toml
rename to crates/radicle-dag/Cargo.toml
diff --git a/radicle-dag/src/lib.rs b/crates/radicle-dag/src/lib.rs
similarity index 100%
rename from radicle-dag/src/lib.rs
rename to crates/radicle-dag/src/lib.rs
diff --git a/radicle-fetch/Cargo.toml b/crates/radicle-fetch/Cargo.toml
similarity index 100%
rename from radicle-fetch/Cargo.toml
rename to crates/radicle-fetch/Cargo.toml
diff --git a/radicle-fetch/src/git.rs b/crates/radicle-fetch/src/git.rs
similarity index 100%
rename from radicle-fetch/src/git.rs
rename to crates/radicle-fetch/src/git.rs
diff --git a/radicle-fetch/src/git/mem.rs b/crates/radicle-fetch/src/git/mem.rs
similarity index 100%
rename from radicle-fetch/src/git/mem.rs
rename to crates/radicle-fetch/src/git/mem.rs
diff --git a/radicle-fetch/src/git/packfile.rs b/crates/radicle-fetch/src/git/packfile.rs
similarity index 100%
rename from radicle-fetch/src/git/packfile.rs
rename to crates/radicle-fetch/src/git/packfile.rs
diff --git a/radicle-fetch/src/git/refs.rs b/crates/radicle-fetch/src/git/refs.rs
similarity index 100%
rename from radicle-fetch/src/git/refs.rs
rename to crates/radicle-fetch/src/git/refs.rs
diff --git a/radicle-fetch/src/git/refs/update.rs b/crates/radicle-fetch/src/git/refs/update.rs
similarity index 100%
rename from radicle-fetch/src/git/refs/update.rs
rename to crates/radicle-fetch/src/git/refs/update.rs
diff --git a/radicle-fetch/src/git/repository.rs b/crates/radicle-fetch/src/git/repository.rs
similarity index 100%
rename from radicle-fetch/src/git/repository.rs
rename to crates/radicle-fetch/src/git/repository.rs
diff --git a/radicle-fetch/src/git/repository/error.rs b/crates/radicle-fetch/src/git/repository/error.rs
similarity index 100%
rename from radicle-fetch/src/git/repository/error.rs
rename to crates/radicle-fetch/src/git/repository/error.rs
diff --git a/radicle-fetch/src/handle.rs b/crates/radicle-fetch/src/handle.rs
similarity index 100%
rename from radicle-fetch/src/handle.rs
rename to crates/radicle-fetch/src/handle.rs
diff --git a/radicle-fetch/src/lib.rs b/crates/radicle-fetch/src/lib.rs
similarity index 100%
rename from radicle-fetch/src/lib.rs
rename to crates/radicle-fetch/src/lib.rs
diff --git a/radicle-fetch/src/policy.rs b/crates/radicle-fetch/src/policy.rs
similarity index 100%
rename from radicle-fetch/src/policy.rs
rename to crates/radicle-fetch/src/policy.rs
diff --git a/radicle-fetch/src/refs.rs b/crates/radicle-fetch/src/refs.rs
similarity index 100%
rename from radicle-fetch/src/refs.rs
rename to crates/radicle-fetch/src/refs.rs
diff --git a/radicle-fetch/src/sigrefs.rs b/crates/radicle-fetch/src/sigrefs.rs
similarity index 100%
rename from radicle-fetch/src/sigrefs.rs
rename to crates/radicle-fetch/src/sigrefs.rs
diff --git a/radicle-fetch/src/stage.rs b/crates/radicle-fetch/src/stage.rs
similarity index 100%
rename from radicle-fetch/src/stage.rs
rename to crates/radicle-fetch/src/stage.rs
diff --git a/radicle-fetch/src/state.rs b/crates/radicle-fetch/src/state.rs
similarity index 100%
rename from radicle-fetch/src/state.rs
rename to crates/radicle-fetch/src/state.rs
diff --git a/radicle-fetch/src/transport.rs b/crates/radicle-fetch/src/transport.rs
similarity index 100%
rename from radicle-fetch/src/transport.rs
rename to crates/radicle-fetch/src/transport.rs
diff --git a/radicle-fetch/src/transport/fetch.rs b/crates/radicle-fetch/src/transport/fetch.rs
similarity index 100%
rename from radicle-fetch/src/transport/fetch.rs
rename to crates/radicle-fetch/src/transport/fetch.rs
diff --git a/radicle-fetch/src/transport/ls_refs.rs b/crates/radicle-fetch/src/transport/ls_refs.rs
similarity index 100%
rename from radicle-fetch/src/transport/ls_refs.rs
rename to crates/radicle-fetch/src/transport/ls_refs.rs
diff --git a/radicle-node/Cargo.toml b/crates/radicle-node/Cargo.toml
similarity index 100%
rename from radicle-node/Cargo.toml
rename to crates/radicle-node/Cargo.toml
diff --git a/crates/radicle-node/build.rs b/crates/radicle-node/build.rs
new file mode 120000
index 00000000..c6b197af
--- /dev/null
+++ b/crates/radicle-node/build.rs
@@ -0,0 +1 @@
+../../build.rs
\ No newline at end of file
diff --git a/radicle-node/src/bounded.rs b/crates/radicle-node/src/bounded.rs
similarity index 100%
rename from radicle-node/src/bounded.rs
rename to crates/radicle-node/src/bounded.rs
diff --git a/radicle-node/src/control.rs b/crates/radicle-node/src/control.rs
similarity index 100%
rename from radicle-node/src/control.rs
rename to crates/radicle-node/src/control.rs
diff --git a/radicle-node/src/deserializer.rs b/crates/radicle-node/src/deserializer.rs
similarity index 100%
rename from radicle-node/src/deserializer.rs
rename to crates/radicle-node/src/deserializer.rs
diff --git a/radicle-node/src/lib.rs b/crates/radicle-node/src/lib.rs
similarity index 100%
rename from radicle-node/src/lib.rs
rename to crates/radicle-node/src/lib.rs
diff --git a/radicle-node/src/main.rs b/crates/radicle-node/src/main.rs
similarity index 100%
rename from radicle-node/src/main.rs
rename to crates/radicle-node/src/main.rs
diff --git a/radicle-node/src/runtime.rs b/crates/radicle-node/src/runtime.rs
similarity index 100%
rename from radicle-node/src/runtime.rs
rename to crates/radicle-node/src/runtime.rs
diff --git a/radicle-node/src/runtime/handle.rs b/crates/radicle-node/src/runtime/handle.rs
similarity index 100%
rename from radicle-node/src/runtime/handle.rs
rename to crates/radicle-node/src/runtime/handle.rs
diff --git a/radicle-node/src/runtime/thread.rs b/crates/radicle-node/src/runtime/thread.rs
similarity index 100%
rename from radicle-node/src/runtime/thread.rs
rename to crates/radicle-node/src/runtime/thread.rs
diff --git a/radicle-node/src/service.rs b/crates/radicle-node/src/service.rs
similarity index 100%
rename from radicle-node/src/service.rs
rename to crates/radicle-node/src/service.rs
diff --git a/radicle-node/src/service/filter.rs b/crates/radicle-node/src/service/filter.rs
similarity index 100%
rename from radicle-node/src/service/filter.rs
rename to crates/radicle-node/src/service/filter.rs
diff --git a/radicle-node/src/service/gossip.rs b/crates/radicle-node/src/service/gossip.rs
similarity index 100%
rename from radicle-node/src/service/gossip.rs
rename to crates/radicle-node/src/service/gossip.rs
diff --git a/radicle-node/src/service/gossip/store.rs b/crates/radicle-node/src/service/gossip/store.rs
similarity index 100%
rename from radicle-node/src/service/gossip/store.rs
rename to crates/radicle-node/src/service/gossip/store.rs
diff --git a/radicle-node/src/service/io.rs b/crates/radicle-node/src/service/io.rs
similarity index 100%
rename from radicle-node/src/service/io.rs
rename to crates/radicle-node/src/service/io.rs
diff --git a/radicle-node/src/service/limiter.rs b/crates/radicle-node/src/service/limiter.rs
similarity index 100%
rename from radicle-node/src/service/limiter.rs
rename to crates/radicle-node/src/service/limiter.rs
diff --git a/radicle-node/src/service/message.rs b/crates/radicle-node/src/service/message.rs
similarity index 100%
rename from radicle-node/src/service/message.rs
rename to crates/radicle-node/src/service/message.rs
diff --git a/radicle-node/src/service/session.rs b/crates/radicle-node/src/service/session.rs
similarity index 100%
rename from radicle-node/src/service/session.rs
rename to crates/radicle-node/src/service/session.rs
diff --git a/radicle-node/src/test.rs b/crates/radicle-node/src/test.rs
similarity index 100%
rename from radicle-node/src/test.rs
rename to crates/radicle-node/src/test.rs
diff --git a/radicle-node/src/test/arbitrary.rs b/crates/radicle-node/src/test/arbitrary.rs
similarity index 100%
rename from radicle-node/src/test/arbitrary.rs
rename to crates/radicle-node/src/test/arbitrary.rs
diff --git a/radicle-node/src/test/environment.rs b/crates/radicle-node/src/test/environment.rs
similarity index 100%
rename from radicle-node/src/test/environment.rs
rename to crates/radicle-node/src/test/environment.rs
diff --git a/radicle-node/src/test/gossip.rs b/crates/radicle-node/src/test/gossip.rs
similarity index 100%
rename from radicle-node/src/test/gossip.rs
rename to crates/radicle-node/src/test/gossip.rs
diff --git a/radicle-node/src/test/handle.rs b/crates/radicle-node/src/test/handle.rs
similarity index 100%
rename from radicle-node/src/test/handle.rs
rename to crates/radicle-node/src/test/handle.rs
diff --git a/radicle-node/src/test/peer.rs b/crates/radicle-node/src/test/peer.rs
similarity index 100%
rename from radicle-node/src/test/peer.rs
rename to crates/radicle-node/src/test/peer.rs
diff --git a/radicle-node/src/test/simulator.rs b/crates/radicle-node/src/test/simulator.rs
similarity index 100%
rename from radicle-node/src/test/simulator.rs
rename to crates/radicle-node/src/test/simulator.rs
diff --git a/radicle-node/src/tests.rs b/crates/radicle-node/src/tests.rs
similarity index 100%
rename from radicle-node/src/tests.rs
rename to crates/radicle-node/src/tests.rs
diff --git a/radicle-node/src/tests/e2e.rs b/crates/radicle-node/src/tests/e2e.rs
similarity index 100%
rename from radicle-node/src/tests/e2e.rs
rename to crates/radicle-node/src/tests/e2e.rs
diff --git a/radicle-node/src/wire.rs b/crates/radicle-node/src/wire.rs
similarity index 100%
rename from radicle-node/src/wire.rs
rename to crates/radicle-node/src/wire.rs
diff --git a/radicle-node/src/wire/frame.rs b/crates/radicle-node/src/wire/frame.rs
similarity index 100%
rename from radicle-node/src/wire/frame.rs
rename to crates/radicle-node/src/wire/frame.rs
diff --git a/radicle-node/src/wire/message.rs b/crates/radicle-node/src/wire/message.rs
similarity index 100%
rename from radicle-node/src/wire/message.rs
rename to crates/radicle-node/src/wire/message.rs
diff --git a/radicle-node/src/wire/protocol.rs b/crates/radicle-node/src/wire/protocol.rs
similarity index 100%
rename from radicle-node/src/wire/protocol.rs
rename to crates/radicle-node/src/wire/protocol.rs
diff --git a/radicle-node/src/wire/varint.rs b/crates/radicle-node/src/wire/varint.rs
similarity index 100%
rename from radicle-node/src/wire/varint.rs
rename to crates/radicle-node/src/wire/varint.rs
diff --git a/radicle-node/src/worker.rs b/crates/radicle-node/src/worker.rs
similarity index 100%
rename from radicle-node/src/worker.rs
rename to crates/radicle-node/src/worker.rs
diff --git a/radicle-node/src/worker/channels.rs b/crates/radicle-node/src/worker/channels.rs
similarity index 100%
rename from radicle-node/src/worker/channels.rs
rename to crates/radicle-node/src/worker/channels.rs
diff --git a/radicle-node/src/worker/fetch.rs b/crates/radicle-node/src/worker/fetch.rs
similarity index 100%
rename from radicle-node/src/worker/fetch.rs
rename to crates/radicle-node/src/worker/fetch.rs
diff --git a/radicle-node/src/worker/fetch/error.rs b/crates/radicle-node/src/worker/fetch/error.rs
similarity index 100%
rename from radicle-node/src/worker/fetch/error.rs
rename to crates/radicle-node/src/worker/fetch/error.rs
diff --git a/radicle-node/src/worker/garbage.rs b/crates/radicle-node/src/worker/garbage.rs
similarity index 100%
rename from radicle-node/src/worker/garbage.rs
rename to crates/radicle-node/src/worker/garbage.rs
diff --git a/radicle-node/src/worker/upload_pack.rs b/crates/radicle-node/src/worker/upload_pack.rs
similarity index 100%
rename from radicle-node/src/worker/upload_pack.rs
rename to crates/radicle-node/src/worker/upload_pack.rs
diff --git a/radicle-remote-helper/Cargo.toml b/crates/radicle-remote-helper/Cargo.toml
similarity index 100%
rename from radicle-remote-helper/Cargo.toml
rename to crates/radicle-remote-helper/Cargo.toml
diff --git a/crates/radicle-remote-helper/build.rs b/crates/radicle-remote-helper/build.rs
new file mode 120000
index 00000000..c6b197af
--- /dev/null
+++ b/crates/radicle-remote-helper/build.rs
@@ -0,0 +1 @@
+../../build.rs
\ No newline at end of file
diff --git a/radicle-remote-helper/src/fetch.rs b/crates/radicle-remote-helper/src/fetch.rs
similarity index 100%
rename from radicle-remote-helper/src/fetch.rs
rename to crates/radicle-remote-helper/src/fetch.rs
diff --git a/radicle-remote-helper/src/git-remote-rad.rs b/crates/radicle-remote-helper/src/git-remote-rad.rs
similarity index 100%
rename from radicle-remote-helper/src/git-remote-rad.rs
rename to crates/radicle-remote-helper/src/git-remote-rad.rs
diff --git a/radicle-remote-helper/src/lib.rs b/crates/radicle-remote-helper/src/lib.rs
similarity index 100%
rename from radicle-remote-helper/src/lib.rs
rename to crates/radicle-remote-helper/src/lib.rs
diff --git a/radicle-remote-helper/src/list.rs b/crates/radicle-remote-helper/src/list.rs
similarity index 100%
rename from radicle-remote-helper/src/list.rs
rename to crates/radicle-remote-helper/src/list.rs
diff --git a/radicle-remote-helper/src/push.rs b/crates/radicle-remote-helper/src/push.rs
similarity index 100%
rename from radicle-remote-helper/src/push.rs
rename to crates/radicle-remote-helper/src/push.rs
diff --git a/radicle-schemars/Cargo.toml b/crates/radicle-schemars/Cargo.toml
similarity index 100%
rename from radicle-schemars/Cargo.toml
rename to crates/radicle-schemars/Cargo.toml
diff --git a/radicle-schemars/src/main.rs b/crates/radicle-schemars/src/main.rs
similarity index 100%
rename from radicle-schemars/src/main.rs
rename to crates/radicle-schemars/src/main.rs
diff --git a/radicle-signals/Cargo.toml b/crates/radicle-signals/Cargo.toml
similarity index 100%
rename from radicle-signals/Cargo.toml
rename to crates/radicle-signals/Cargo.toml
diff --git a/radicle-signals/src/lib.rs b/crates/radicle-signals/src/lib.rs
similarity index 100%
rename from radicle-signals/src/lib.rs
rename to crates/radicle-signals/src/lib.rs
diff --git a/radicle-ssh/Cargo.toml b/crates/radicle-ssh/Cargo.toml
similarity index 100%
rename from radicle-ssh/Cargo.toml
rename to crates/radicle-ssh/Cargo.toml
diff --git a/radicle-ssh/LICENSE b/crates/radicle-ssh/LICENSE
similarity index 100%
rename from radicle-ssh/LICENSE
rename to crates/radicle-ssh/LICENSE
diff --git a/radicle-ssh/src/agent.rs b/crates/radicle-ssh/src/agent.rs
similarity index 100%
rename from radicle-ssh/src/agent.rs
rename to crates/radicle-ssh/src/agent.rs
diff --git a/radicle-ssh/src/agent/client.rs b/crates/radicle-ssh/src/agent/client.rs
similarity index 100%
rename from radicle-ssh/src/agent/client.rs
rename to crates/radicle-ssh/src/agent/client.rs
diff --git a/radicle-ssh/src/agent/msg.rs b/crates/radicle-ssh/src/agent/msg.rs
similarity index 100%
rename from radicle-ssh/src/agent/msg.rs
rename to crates/radicle-ssh/src/agent/msg.rs
diff --git a/radicle-ssh/src/encoding.rs b/crates/radicle-ssh/src/encoding.rs
similarity index 100%
rename from radicle-ssh/src/encoding.rs
rename to crates/radicle-ssh/src/encoding.rs
diff --git a/radicle-ssh/src/lib.rs b/crates/radicle-ssh/src/lib.rs
similarity index 100%
rename from radicle-ssh/src/lib.rs
rename to crates/radicle-ssh/src/lib.rs
diff --git a/radicle-systemd/Cargo.toml b/crates/radicle-systemd/Cargo.toml
similarity index 100%
rename from radicle-systemd/Cargo.toml
rename to crates/radicle-systemd/Cargo.toml
diff --git a/radicle-systemd/src/lib.rs b/crates/radicle-systemd/src/lib.rs
similarity index 100%
rename from radicle-systemd/src/lib.rs
rename to crates/radicle-systemd/src/lib.rs
diff --git a/radicle-term/Cargo.toml b/crates/radicle-term/Cargo.toml
similarity index 100%
rename from radicle-term/Cargo.toml
rename to crates/radicle-term/Cargo.toml
diff --git a/radicle-term/src/ansi.rs b/crates/radicle-term/src/ansi.rs
similarity index 100%
rename from radicle-term/src/ansi.rs
rename to crates/radicle-term/src/ansi.rs
diff --git a/radicle-term/src/ansi/color.rs b/crates/radicle-term/src/ansi/color.rs
similarity index 100%
rename from radicle-term/src/ansi/color.rs
rename to crates/radicle-term/src/ansi/color.rs
diff --git a/radicle-term/src/ansi/paint.rs b/crates/radicle-term/src/ansi/paint.rs
similarity index 100%
rename from radicle-term/src/ansi/paint.rs
rename to crates/radicle-term/src/ansi/paint.rs
diff --git a/radicle-term/src/ansi/style.rs b/crates/radicle-term/src/ansi/style.rs
similarity index 100%
rename from radicle-term/src/ansi/style.rs
rename to crates/radicle-term/src/ansi/style.rs
diff --git a/radicle-term/src/ansi/tests.rs b/crates/radicle-term/src/ansi/tests.rs
similarity index 100%
rename from radicle-term/src/ansi/tests.rs
rename to crates/radicle-term/src/ansi/tests.rs
diff --git a/radicle-term/src/ansi/windows.rs b/crates/radicle-term/src/ansi/windows.rs
similarity index 100%
rename from radicle-term/src/ansi/windows.rs
rename to crates/radicle-term/src/ansi/windows.rs
diff --git a/radicle-term/src/args.rs b/crates/radicle-term/src/args.rs
similarity index 100%
rename from radicle-term/src/args.rs
rename to crates/radicle-term/src/args.rs
diff --git a/radicle-term/src/cell.rs b/crates/radicle-term/src/cell.rs
similarity index 100%
rename from radicle-term/src/cell.rs
rename to crates/radicle-term/src/cell.rs
diff --git a/radicle-term/src/colors.rs b/crates/radicle-term/src/colors.rs
similarity index 100%
rename from radicle-term/src/colors.rs
rename to crates/radicle-term/src/colors.rs
diff --git a/radicle-term/src/command.rs b/crates/radicle-term/src/command.rs
similarity index 100%
rename from radicle-term/src/command.rs
rename to crates/radicle-term/src/command.rs
diff --git a/radicle-term/src/editor.rs b/crates/radicle-term/src/editor.rs
similarity index 100%
rename from radicle-term/src/editor.rs
rename to crates/radicle-term/src/editor.rs
diff --git a/radicle-term/src/element.rs b/crates/radicle-term/src/element.rs
similarity index 100%
rename from radicle-term/src/element.rs
rename to crates/radicle-term/src/element.rs
diff --git a/radicle-term/src/format.rs b/crates/radicle-term/src/format.rs
similarity index 100%
rename from radicle-term/src/format.rs
rename to crates/radicle-term/src/format.rs
diff --git a/radicle-term/src/hstack.rs b/crates/radicle-term/src/hstack.rs
similarity index 100%
rename from radicle-term/src/hstack.rs
rename to crates/radicle-term/src/hstack.rs
diff --git a/radicle-term/src/io.rs b/crates/radicle-term/src/io.rs
similarity index 100%
rename from radicle-term/src/io.rs
rename to crates/radicle-term/src/io.rs
diff --git a/radicle-term/src/label.rs b/crates/radicle-term/src/label.rs
similarity index 100%
rename from radicle-term/src/label.rs
rename to crates/radicle-term/src/label.rs
diff --git a/radicle-term/src/lib.rs b/crates/radicle-term/src/lib.rs
similarity index 100%
rename from radicle-term/src/lib.rs
rename to crates/radicle-term/src/lib.rs
diff --git a/radicle-term/src/pager.rs b/crates/radicle-term/src/pager.rs
similarity index 100%
rename from radicle-term/src/pager.rs
rename to crates/radicle-term/src/pager.rs
diff --git a/radicle-term/src/spinner.rs b/crates/radicle-term/src/spinner.rs
similarity index 100%
rename from radicle-term/src/spinner.rs
rename to crates/radicle-term/src/spinner.rs
diff --git a/radicle-term/src/table.rs b/crates/radicle-term/src/table.rs
similarity index 100%
rename from radicle-term/src/table.rs
rename to crates/radicle-term/src/table.rs
diff --git a/radicle-term/src/textarea.rs b/crates/radicle-term/src/textarea.rs
similarity index 100%
rename from radicle-term/src/textarea.rs
rename to crates/radicle-term/src/textarea.rs
diff --git a/radicle-term/src/vstack.rs b/crates/radicle-term/src/vstack.rs
similarity index 100%
rename from radicle-term/src/vstack.rs
rename to crates/radicle-term/src/vstack.rs
diff --git a/radicle-tools/Cargo.toml b/crates/radicle-tools/Cargo.toml
similarity index 100%
rename from radicle-tools/Cargo.toml
rename to crates/radicle-tools/Cargo.toml
diff --git a/radicle-tools/src/rad-agent.rs b/crates/radicle-tools/src/rad-agent.rs
similarity index 100%
rename from radicle-tools/src/rad-agent.rs
rename to crates/radicle-tools/src/rad-agent.rs
diff --git a/radicle-tools/src/rad-cli-demo.rs b/crates/radicle-tools/src/rad-cli-demo.rs
similarity index 100%
rename from radicle-tools/src/rad-cli-demo.rs
rename to crates/radicle-tools/src/rad-cli-demo.rs
diff --git a/radicle-tools/src/rad-init.rs b/crates/radicle-tools/src/rad-init.rs
similarity index 100%
rename from radicle-tools/src/rad-init.rs
rename to crates/radicle-tools/src/rad-init.rs
diff --git a/radicle-tools/src/rad-merge.rs b/crates/radicle-tools/src/rad-merge.rs
similarity index 100%
rename from radicle-tools/src/rad-merge.rs
rename to crates/radicle-tools/src/rad-merge.rs
diff --git a/radicle-tools/src/rad-push.rs b/crates/radicle-tools/src/rad-push.rs
similarity index 100%
rename from radicle-tools/src/rad-push.rs
rename to crates/radicle-tools/src/rad-push.rs
diff --git a/radicle-tools/src/rad-self.rs b/crates/radicle-tools/src/rad-self.rs
similarity index 100%
rename from radicle-tools/src/rad-self.rs
rename to crates/radicle-tools/src/rad-self.rs
diff --git a/radicle-tools/src/rad-set-canonical-refs.rs b/crates/radicle-tools/src/rad-set-canonical-refs.rs
similarity index 100%
rename from radicle-tools/src/rad-set-canonical-refs.rs
rename to crates/radicle-tools/src/rad-set-canonical-refs.rs
diff --git a/radicle/Cargo.toml b/crates/radicle/Cargo.toml
similarity index 100%
rename from radicle/Cargo.toml
rename to crates/radicle/Cargo.toml
diff --git a/radicle/src/canonical.rs b/crates/radicle/src/canonical.rs
similarity index 100%
rename from radicle/src/canonical.rs
rename to crates/radicle/src/canonical.rs
diff --git a/radicle/src/canonical/formatter.rs b/crates/radicle/src/canonical/formatter.rs
similarity index 100%
rename from radicle/src/canonical/formatter.rs
rename to crates/radicle/src/canonical/formatter.rs
diff --git a/radicle/src/cli.rs b/crates/radicle/src/cli.rs
similarity index 100%
rename from radicle/src/cli.rs
rename to crates/radicle/src/cli.rs
diff --git a/radicle/src/cob.rs b/crates/radicle/src/cob.rs
similarity index 100%
rename from radicle/src/cob.rs
rename to crates/radicle/src/cob.rs
diff --git a/radicle/src/cob/cache.rs b/crates/radicle/src/cob/cache.rs
similarity index 100%
rename from radicle/src/cob/cache.rs
rename to crates/radicle/src/cob/cache.rs
diff --git a/radicle/src/cob/cache/migrations.rs b/crates/radicle/src/cob/cache/migrations.rs
similarity index 100%
rename from radicle/src/cob/cache/migrations.rs
rename to crates/radicle/src/cob/cache/migrations.rs
diff --git a/radicle/src/cob/cache/migrations/1.sql b/crates/radicle/src/cob/cache/migrations/1.sql
similarity index 100%
rename from radicle/src/cob/cache/migrations/1.sql
rename to crates/radicle/src/cob/cache/migrations/1.sql
diff --git a/radicle/src/cob/cache/migrations/2.rs b/crates/radicle/src/cob/cache/migrations/2.rs
similarity index 100%
rename from radicle/src/cob/cache/migrations/2.rs
rename to crates/radicle/src/cob/cache/migrations/2.rs
diff --git a/radicle/src/cob/cache/migrations/samples/patch.v1.json b/crates/radicle/src/cob/cache/migrations/samples/patch.v1.json
similarity index 100%
rename from radicle/src/cob/cache/migrations/samples/patch.v1.json
rename to crates/radicle/src/cob/cache/migrations/samples/patch.v1.json
diff --git a/radicle/src/cob/cache/migrations/samples/patch.v2.json b/crates/radicle/src/cob/cache/migrations/samples/patch.v2.json
similarity index 100%
rename from radicle/src/cob/cache/migrations/samples/patch.v2.json
rename to crates/radicle/src/cob/cache/migrations/samples/patch.v2.json
diff --git a/radicle/src/cob/common.rs b/crates/radicle/src/cob/common.rs
similarity index 100%
rename from radicle/src/cob/common.rs
rename to crates/radicle/src/cob/common.rs
diff --git a/radicle/src/cob/external.rs b/crates/radicle/src/cob/external.rs
similarity index 100%
rename from radicle/src/cob/external.rs
rename to crates/radicle/src/cob/external.rs
diff --git a/radicle/src/cob/identity.rs b/crates/radicle/src/cob/identity.rs
similarity index 100%
rename from radicle/src/cob/identity.rs
rename to crates/radicle/src/cob/identity.rs
diff --git a/radicle/src/cob/issue.rs b/crates/radicle/src/cob/issue.rs
similarity index 100%
rename from radicle/src/cob/issue.rs
rename to crates/radicle/src/cob/issue.rs
diff --git a/radicle/src/cob/issue/cache.rs b/crates/radicle/src/cob/issue/cache.rs
similarity index 100%
rename from radicle/src/cob/issue/cache.rs
rename to crates/radicle/src/cob/issue/cache.rs
diff --git a/radicle/src/cob/op.rs b/crates/radicle/src/cob/op.rs
similarity index 100%
rename from radicle/src/cob/op.rs
rename to crates/radicle/src/cob/op.rs
diff --git a/radicle/src/cob/patch.rs b/crates/radicle/src/cob/patch.rs
similarity index 100%
rename from radicle/src/cob/patch.rs
rename to crates/radicle/src/cob/patch.rs
diff --git a/radicle/src/cob/patch/cache.rs b/crates/radicle/src/cob/patch/cache.rs
similarity index 100%
rename from radicle/src/cob/patch/cache.rs
rename to crates/radicle/src/cob/patch/cache.rs
diff --git a/radicle/src/cob/store.rs b/crates/radicle/src/cob/store.rs
similarity index 100%
rename from radicle/src/cob/store.rs
rename to crates/radicle/src/cob/store.rs
diff --git a/radicle/src/cob/test.rs b/crates/radicle/src/cob/test.rs
similarity index 100%
rename from radicle/src/cob/test.rs
rename to crates/radicle/src/cob/test.rs
diff --git a/radicle/src/cob/thread.rs b/crates/radicle/src/cob/thread.rs
similarity index 100%
rename from radicle/src/cob/thread.rs
rename to crates/radicle/src/cob/thread.rs
diff --git a/radicle/src/collections.rs b/crates/radicle/src/collections.rs
similarity index 100%
rename from radicle/src/collections.rs
rename to crates/radicle/src/collections.rs
diff --git a/radicle/src/explorer.rs b/crates/radicle/src/explorer.rs
similarity index 100%
rename from radicle/src/explorer.rs
rename to crates/radicle/src/explorer.rs
diff --git a/radicle/src/git.rs b/crates/radicle/src/git.rs
similarity index 100%
rename from radicle/src/git.rs
rename to crates/radicle/src/git.rs
diff --git a/radicle/src/git/canonical.rs b/crates/radicle/src/git/canonical.rs
similarity index 100%
rename from radicle/src/git/canonical.rs
rename to crates/radicle/src/git/canonical.rs
diff --git a/radicle/src/identity.rs b/crates/radicle/src/identity.rs
similarity index 100%
rename from radicle/src/identity.rs
rename to crates/radicle/src/identity.rs
diff --git a/radicle/src/identity/did.rs b/crates/radicle/src/identity/did.rs
similarity index 100%
rename from radicle/src/identity/did.rs
rename to crates/radicle/src/identity/did.rs
diff --git a/radicle/src/identity/doc.rs b/crates/radicle/src/identity/doc.rs
similarity index 100%
rename from radicle/src/identity/doc.rs
rename to crates/radicle/src/identity/doc.rs
diff --git a/radicle/src/identity/doc/id.rs b/crates/radicle/src/identity/doc/id.rs
similarity index 100%
rename from radicle/src/identity/doc/id.rs
rename to crates/radicle/src/identity/doc/id.rs
diff --git a/radicle/src/identity/project.rs b/crates/radicle/src/identity/project.rs
similarity index 100%
rename from radicle/src/identity/project.rs
rename to crates/radicle/src/identity/project.rs
diff --git a/radicle/src/io.rs b/crates/radicle/src/io.rs
similarity index 100%
rename from radicle/src/io.rs
rename to crates/radicle/src/io.rs
diff --git a/radicle/src/lib.rs b/crates/radicle/src/lib.rs
similarity index 100%
rename from radicle/src/lib.rs
rename to crates/radicle/src/lib.rs
diff --git a/radicle/src/logger.rs b/crates/radicle/src/logger.rs
similarity index 100%
rename from radicle/src/logger.rs
rename to crates/radicle/src/logger.rs
diff --git a/radicle/src/logger/test.rs b/crates/radicle/src/logger/test.rs
similarity index 100%
rename from radicle/src/logger/test.rs
rename to crates/radicle/src/logger/test.rs
diff --git a/radicle/src/node.rs b/crates/radicle/src/node.rs
similarity index 100%
rename from radicle/src/node.rs
rename to crates/radicle/src/node.rs
diff --git a/radicle/src/node/address.rs b/crates/radicle/src/node/address.rs
similarity index 100%
rename from radicle/src/node/address.rs
rename to crates/radicle/src/node/address.rs
diff --git a/radicle/src/node/address/store.rs b/crates/radicle/src/node/address/store.rs
similarity index 100%
rename from radicle/src/node/address/store.rs
rename to crates/radicle/src/node/address/store.rs
diff --git a/radicle/src/node/config.rs b/crates/radicle/src/node/config.rs
similarity index 100%
rename from radicle/src/node/config.rs
rename to crates/radicle/src/node/config.rs
diff --git a/radicle/src/node/db.rs b/crates/radicle/src/node/db.rs
similarity index 100%
rename from radicle/src/node/db.rs
rename to crates/radicle/src/node/db.rs
diff --git a/radicle/src/node/db/migrations/1.sql b/crates/radicle/src/node/db/migrations/1.sql
similarity index 100%
rename from radicle/src/node/db/migrations/1.sql
rename to crates/radicle/src/node/db/migrations/1.sql
diff --git a/radicle/src/node/db/migrations/2.sql b/crates/radicle/src/node/db/migrations/2.sql
similarity index 100%
rename from radicle/src/node/db/migrations/2.sql
rename to crates/radicle/src/node/db/migrations/2.sql
diff --git a/radicle/src/node/db/migrations/3.sql b/crates/radicle/src/node/db/migrations/3.sql
similarity index 100%
rename from radicle/src/node/db/migrations/3.sql
rename to crates/radicle/src/node/db/migrations/3.sql
diff --git a/radicle/src/node/db/migrations/4.sql b/crates/radicle/src/node/db/migrations/4.sql
similarity index 100%
rename from radicle/src/node/db/migrations/4.sql
rename to crates/radicle/src/node/db/migrations/4.sql
diff --git a/radicle/src/node/db/migrations/5.sql b/crates/radicle/src/node/db/migrations/5.sql
similarity index 100%
rename from radicle/src/node/db/migrations/5.sql
rename to crates/radicle/src/node/db/migrations/5.sql
diff --git a/radicle/src/node/db/migrations/6.sql b/crates/radicle/src/node/db/migrations/6.sql
similarity index 100%
rename from radicle/src/node/db/migrations/6.sql
rename to crates/radicle/src/node/db/migrations/6.sql
diff --git a/radicle/src/node/db/schema.sql b/crates/radicle/src/node/db/schema.sql
similarity index 100%
rename from radicle/src/node/db/schema.sql
rename to crates/radicle/src/node/db/schema.sql
diff --git a/radicle/src/node/device.rs b/crates/radicle/src/node/device.rs
similarity index 100%
rename from radicle/src/node/device.rs
rename to crates/radicle/src/node/device.rs
diff --git a/radicle/src/node/events.rs b/crates/radicle/src/node/events.rs
similarity index 100%
rename from radicle/src/node/events.rs
rename to crates/radicle/src/node/events.rs
diff --git a/radicle/src/node/events/upload_pack.rs b/crates/radicle/src/node/events/upload_pack.rs
similarity index 100%
rename from radicle/src/node/events/upload_pack.rs
rename to crates/radicle/src/node/events/upload_pack.rs
diff --git a/radicle/src/node/features.rs b/crates/radicle/src/node/features.rs
similarity index 100%
rename from radicle/src/node/features.rs
rename to crates/radicle/src/node/features.rs
diff --git a/radicle/src/node/notifications.rs b/crates/radicle/src/node/notifications.rs
similarity index 100%
rename from radicle/src/node/notifications.rs
rename to crates/radicle/src/node/notifications.rs
diff --git a/radicle/src/node/notifications/schema.sql b/crates/radicle/src/node/notifications/schema.sql
similarity index 100%
rename from radicle/src/node/notifications/schema.sql
rename to crates/radicle/src/node/notifications/schema.sql
diff --git a/radicle/src/node/notifications/store.rs b/crates/radicle/src/node/notifications/store.rs
similarity index 100%
rename from radicle/src/node/notifications/store.rs
rename to crates/radicle/src/node/notifications/store.rs
diff --git a/radicle/src/node/policy.rs b/crates/radicle/src/node/policy.rs
similarity index 100%
rename from radicle/src/node/policy.rs
rename to crates/radicle/src/node/policy.rs
diff --git a/radicle/src/node/policy/config.rs b/crates/radicle/src/node/policy/config.rs
similarity index 100%
rename from radicle/src/node/policy/config.rs
rename to crates/radicle/src/node/policy/config.rs
diff --git a/radicle/src/node/policy/schema.sql b/crates/radicle/src/node/policy/schema.sql
similarity index 100%
rename from radicle/src/node/policy/schema.sql
rename to crates/radicle/src/node/policy/schema.sql
diff --git a/radicle/src/node/policy/store.rs b/crates/radicle/src/node/policy/store.rs
similarity index 100%
rename from radicle/src/node/policy/store.rs
rename to crates/radicle/src/node/policy/store.rs
diff --git a/radicle/src/node/refs.rs b/crates/radicle/src/node/refs.rs
similarity index 100%
rename from radicle/src/node/refs.rs
rename to crates/radicle/src/node/refs.rs
diff --git a/radicle/src/node/refs/store.rs b/crates/radicle/src/node/refs/store.rs
similarity index 100%
rename from radicle/src/node/refs/store.rs
rename to crates/radicle/src/node/refs/store.rs
diff --git a/radicle/src/node/routing.rs b/crates/radicle/src/node/routing.rs
similarity index 100%
rename from radicle/src/node/routing.rs
rename to crates/radicle/src/node/routing.rs
diff --git a/radicle/src/node/seed.rs b/crates/radicle/src/node/seed.rs
similarity index 100%
rename from radicle/src/node/seed.rs
rename to crates/radicle/src/node/seed.rs
diff --git a/radicle/src/node/seed/store.rs b/crates/radicle/src/node/seed/store.rs
similarity index 100%
rename from radicle/src/node/seed/store.rs
rename to crates/radicle/src/node/seed/store.rs
diff --git a/radicle/src/node/sync.rs b/crates/radicle/src/node/sync.rs
similarity index 100%
rename from radicle/src/node/sync.rs
rename to crates/radicle/src/node/sync.rs
diff --git a/radicle/src/node/sync/announce.rs b/crates/radicle/src/node/sync/announce.rs
similarity index 100%
rename from radicle/src/node/sync/announce.rs
rename to crates/radicle/src/node/sync/announce.rs
diff --git a/radicle/src/node/sync/fetch.rs b/crates/radicle/src/node/sync/fetch.rs
similarity index 100%
rename from radicle/src/node/sync/fetch.rs
rename to crates/radicle/src/node/sync/fetch.rs
diff --git a/radicle/src/node/timestamp.rs b/crates/radicle/src/node/timestamp.rs
similarity index 100%
rename from radicle/src/node/timestamp.rs
rename to crates/radicle/src/node/timestamp.rs
diff --git a/radicle/src/profile.rs b/crates/radicle/src/profile.rs
similarity index 100%
rename from radicle/src/profile.rs
rename to crates/radicle/src/profile.rs
diff --git a/radicle/src/profile/config.rs b/crates/radicle/src/profile/config.rs
similarity index 100%
rename from radicle/src/profile/config.rs
rename to crates/radicle/src/profile/config.rs
diff --git a/radicle/src/rad.rs b/crates/radicle/src/rad.rs
similarity index 100%
rename from radicle/src/rad.rs
rename to crates/radicle/src/rad.rs
diff --git a/radicle/src/schemars_ext.rs b/crates/radicle/src/schemars_ext.rs
similarity index 100%
rename from radicle/src/schemars_ext.rs
rename to crates/radicle/src/schemars_ext.rs
diff --git a/radicle/src/serde_ext.rs b/crates/radicle/src/serde_ext.rs
similarity index 100%
rename from radicle/src/serde_ext.rs
rename to crates/radicle/src/serde_ext.rs
diff --git a/radicle/src/sql.rs b/crates/radicle/src/sql.rs
similarity index 100%
rename from radicle/src/sql.rs
rename to crates/radicle/src/sql.rs
diff --git a/radicle/src/storage.rs b/crates/radicle/src/storage.rs
similarity index 100%
rename from radicle/src/storage.rs
rename to crates/radicle/src/storage.rs
diff --git a/radicle/src/storage/git.rs b/crates/radicle/src/storage/git.rs
similarity index 100%
rename from radicle/src/storage/git.rs
rename to crates/radicle/src/storage/git.rs
diff --git a/radicle/src/storage/git/cob.rs b/crates/radicle/src/storage/git/cob.rs
similarity index 100%
rename from radicle/src/storage/git/cob.rs
rename to crates/radicle/src/storage/git/cob.rs
diff --git a/radicle/src/storage/git/transport.rs b/crates/radicle/src/storage/git/transport.rs
similarity index 100%
rename from radicle/src/storage/git/transport.rs
rename to crates/radicle/src/storage/git/transport.rs
diff --git a/radicle/src/storage/git/transport/local.rs b/crates/radicle/src/storage/git/transport/local.rs
similarity index 100%
rename from radicle/src/storage/git/transport/local.rs
rename to crates/radicle/src/storage/git/transport/local.rs
diff --git a/radicle/src/storage/git/transport/local/url.rs b/crates/radicle/src/storage/git/transport/local/url.rs
similarity index 100%
rename from radicle/src/storage/git/transport/local/url.rs
rename to crates/radicle/src/storage/git/transport/local/url.rs
diff --git a/radicle/src/storage/git/transport/remote.rs b/crates/radicle/src/storage/git/transport/remote.rs
similarity index 100%
rename from radicle/src/storage/git/transport/remote.rs
rename to crates/radicle/src/storage/git/transport/remote.rs
diff --git a/radicle/src/storage/git/transport/remote/mock.rs b/crates/radicle/src/storage/git/transport/remote/mock.rs
similarity index 100%
rename from radicle/src/storage/git/transport/remote/mock.rs
rename to crates/radicle/src/storage/git/transport/remote/mock.rs
diff --git a/radicle/src/storage/git/transport/remote/url.rs b/crates/radicle/src/storage/git/transport/remote/url.rs
similarity index 100%
rename from radicle/src/storage/git/transport/remote/url.rs
rename to crates/radicle/src/storage/git/transport/remote/url.rs
diff --git a/radicle/src/storage/refs.rs b/crates/radicle/src/storage/refs.rs
similarity index 100%
rename from radicle/src/storage/refs.rs
rename to crates/radicle/src/storage/refs.rs
diff --git a/radicle/src/test.rs b/crates/radicle/src/test.rs
similarity index 100%
rename from radicle/src/test.rs
rename to crates/radicle/src/test.rs
diff --git a/radicle/src/test/arbitrary.rs b/crates/radicle/src/test/arbitrary.rs
similarity index 100%
rename from radicle/src/test/arbitrary.rs
rename to crates/radicle/src/test/arbitrary.rs
diff --git a/radicle/src/test/assert.rs b/crates/radicle/src/test/assert.rs
similarity index 100%
rename from radicle/src/test/assert.rs
rename to crates/radicle/src/test/assert.rs
diff --git a/radicle/src/test/fixtures.rs b/crates/radicle/src/test/fixtures.rs
similarity index 100%
rename from radicle/src/test/fixtures.rs
rename to crates/radicle/src/test/fixtures.rs
diff --git a/radicle/src/test/storage.rs b/crates/radicle/src/test/storage.rs
similarity index 100%
rename from radicle/src/test/storage.rs
rename to crates/radicle/src/test/storage.rs
diff --git a/radicle/src/version.rs b/crates/radicle/src/version.rs
similarity index 100%
rename from radicle/src/version.rs
rename to crates/radicle/src/version.rs
diff --git a/radicle/src/web.rs b/crates/radicle/src/web.rs
similarity index 100%
rename from radicle/src/web.rs
rename to crates/radicle/src/web.rs
diff --git a/radicle-cli/build.rs b/radicle-cli/build.rs
deleted file mode 120000
index 10238032..00000000
--- a/radicle-cli/build.rs
+++ /dev/null
@@ -1 +0,0 @@
-../build.rs
\ No newline at end of file
diff --git a/radicle-node/build.rs b/radicle-node/build.rs
deleted file mode 120000
index 10238032..00000000
--- a/radicle-node/build.rs
+++ /dev/null
@@ -1 +0,0 @@
-../build.rs
\ No newline at end of file
diff --git a/radicle-remote-helper/build.rs b/radicle-remote-helper/build.rs
deleted file mode 120000
index 10238032..00000000
--- a/radicle-remote-helper/build.rs
+++ /dev/null
@@ -1 +0,0 @@
-../build.rs
\ No newline at end of file
Exit code: 0
shell: 'cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny warnings cargo build --all-targets --workspace cargo doc --workspace --no-deps cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name 111a687e-9b41-4bec-a0eb-bbd535d3a808 -v /opt/radcis/ci.rad.levitte.org/cci/state/111a687e-9b41-4bec-a0eb-bbd535d3a808/s:/111a687e-9b41-4bec-a0eb-bbd535d3a808/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/111a687e-9b41-4bec-a0eb-bbd535d3a808/w:/111a687e-9b41-4bec-a0eb-bbd535d3a808/w -w /111a687e-9b41-4bec-a0eb-bbd535d3a808/w rust:bookworm bash /111a687e-9b41-4bec-a0eb-bbd535d3a808/s/script.sh
+ cargo --version
info: syncing channel updates for '1.85-x86_64-unknown-linux-gnu'
info: latest update on 2025-03-18, rust version 1.85.1 (4eb161250 2025-03-15)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
cargo 1.85.1 (d73d2caf9 2024-12-31)
+ rustc --version
rustc 1.85.1 (4eb161250 2025-03-15)
+ cargo fmt --check
+ cargo clippy --all-targets --workspace -- --deny warnings
Updating crates.io index
Downloading crates ...
Downloaded block-buffer v0.10.4
Downloaded aead v0.5.2
Downloaded adler2 v2.0.0
Downloaded amplify_derive v4.0.0
Downloaded base-x v0.2.11
Downloaded popol v3.0.0
Downloaded ppv-lite86 v0.2.17
Downloaded base32 v0.4.0
Downloaded polyval v0.6.2
Downloaded gix-date v0.9.4
Downloaded base64 v0.21.7
Downloaded pbkdf2 v0.12.2
Downloaded salsa20 v0.10.2
Downloaded rand_chacha v0.3.1
Downloaded radicle-std-ext v0.1.0
Downloaded poly1305 v0.8.0
Downloaded ref-cast-impl v1.0.24
Downloaded primeorder v0.13.6
Downloaded aho-corasick v1.1.3
Downloaded tinyvec_macros v0.1.1
Downloaded socks5-client v0.4.1
Downloaded rfc6979 v0.4.0
Downloaded quote v1.0.36
Downloaded tree-sitter-language v0.1.2
Downloaded ref-cast v1.0.24
Downloaded timeago v0.4.2
Downloaded tree-sitter-html v0.23.2
Downloaded spki v0.7.3
Downloaded zerofrom-derive v0.1.6
Downloaded opaque-debug v0.3.1
Downloaded tree-sitter-json v0.24.8
Downloaded shell-words v1.1.0
Downloaded smallvec v1.13.2
Downloaded thiserror v2.0.12
Downloaded write16 v1.0.0
Downloaded ryu v1.0.17
Downloaded writeable v0.5.5
Downloaded typenum v1.17.0
Downloaded schemars_derive v1.0.0-alpha.17
Downloaded crossbeam-channel v0.5.15
Downloaded uuid-simd v0.8.0
Downloaded form_urlencoded v1.2.1
Downloaded crc32fast v1.4.0
Downloaded cc v1.2.2
Downloaded home v0.5.9
Downloaded multibase v0.9.1
Downloaded normalize-line-endings v0.3.0
Downloaded getrandom v0.2.15
Downloaded gix-url v0.28.2
Downloaded maybe-async v0.2.10
Downloaded gix-quote v0.4.15
Downloaded crypto-bigint v0.5.5
Downloaded unicode-display-width v0.3.0
Downloaded flate2 v1.1.1
Downloaded icu_provider_macros v1.5.0
Downloaded gix-validate v0.9.4
Downloaded gix-trace v0.1.12
Downloaded gix-tempfile v15.0.0
Downloaded xattr v1.3.1
Downloaded pkg-config v0.3.30
Downloaded gix-diff v0.49.0
Downloaded gix-config-value v0.14.12
Downloaded const-oid v0.9.6
Downloaded newline-converter v0.3.0
Downloaded walkdir v2.5.0
Downloaded gix-sec v0.10.12
Downloaded lock_api v0.4.11
Downloaded itoa v1.0.11
Downloaded gix-utils v0.1.14
Downloaded p256 v0.13.2
Downloaded ghash v0.5.1
Downloaded cyphernet v0.5.2
Downloaded phf v0.11.3
Downloaded dyn-clone v1.0.17
Downloaded percent-encoding v2.3.1
Downloaded gix-chunk v0.4.11
Downloaded gix-transport v0.44.0
Downloaded gix-hash v0.15.1
Downloaded zerovec-derive v0.10.3
Downloaded icu_normalizer v1.5.0
Downloaded icu_locid v1.5.0
Downloaded gix-pack v0.56.0
Downloaded gix-ref v0.49.1
Downloaded libm v0.2.8
Downloaded icu_provider v1.5.0
Downloaded numtoa v0.1.0
Downloaded num-traits v0.2.19
Downloaded url v2.5.4
Downloaded inquire v0.7.5
Downloaded gix-negotiate v0.17.0
Downloaded gix-shallow v0.1.0
Downloaded num-integer v0.1.46
Downloaded hashbrown v0.14.3
Downloaded idna_adapter v1.2.0
Downloaded inout v0.1.3
Downloaded gix-fs v0.12.1
Downloaded netservices v0.8.0
Downloaded gix-features v0.39.1
Downloaded gix-protocol v0.47.0
Downloaded unicode-ident v1.0.12
Downloaded indexmap v2.2.6
Downloaded zerovec v0.10.4
Downloaded p521 v0.13.3
Downloaded unicode-normalization v0.1.23
Downloaded syn v1.0.109
Downloaded vcpkg v0.2.15
Downloaded p384 v0.13.0
Downloaded icu_properties_data v1.5.1
Downloaded syn v2.0.89
Downloaded tree-sitter-rust v0.23.2
Downloaded tree-sitter-md v0.3.2
Downloaded rustix v0.38.34
Downloaded regex-syntax v0.8.5
Downloaded tree-sitter-c v0.23.2
Downloaded tree-sitter-bash v0.23.3
Downloaded regex v1.11.1
Downloaded idna v1.0.3
Downloaded winnow v0.6.26
Downloaded gix-packetline v0.18.4
Downloaded libc v0.2.155
Downloaded tree-sitter-ruby v0.23.1
Downloaded icu_locid_transform_data v1.5.1
Downloaded regex-automata v0.4.9
Downloaded tree-sitter-python v0.23.4
Downloaded pkcs1 v0.7.5
Downloaded phf_shared v0.11.3
Downloaded tree-sitter v0.24.4
Downloaded gix-prompt v0.9.1
Downloaded num-bigint v0.4.6
Downloaded noise-framework v0.4.0
Downloaded jiff v0.2.1
Downloaded jsonschema v0.30.0
Downloaded serde_json v1.0.140
Downloaded radicle-surf v0.22.0
Downloaded unicode-segmentation v1.11.0
Downloaded tree-sitter-typescript v0.23.2
Downloaded io-reactor v0.5.2
Downloaded gix-revision v0.31.1
Downloaded gix-refspec v0.27.0
Downloaded sha3 v0.10.8
Downloaded memchr v2.7.2
Downloaded icu_normalizer_data v1.5.1
Downloaded gix-revwalk v0.17.0
Downloaded zerocopy v0.7.35
Downloaded yansi v0.5.1
Downloaded utf8_iter v1.0.4
Downloaded parking_lot_core v0.9.9
Downloaded ssh-key v0.6.6
Downloaded miniz_oxide v0.8.8
Downloaded zerofrom v0.1.6
Downloaded yoke-derive v0.7.5
Downloaded yoke v0.7.5
Downloaded icu_collections v1.5.0
Downloaded utf16_iter v1.0.5
Downloaded pem-rfc7468 v0.7.0
Downloaded parking_lot v0.12.3
Downloaded num-complex v0.4.6
Downloaded jobserver v0.1.31
Downloaded icu_locid_transform v1.5.0
Downloaded uuid v1.16.0
Downloaded outref v0.5.2
Downloaded nonempty v0.5.0
Downloaded tree-sitter-go v0.23.4
Downloaded log v0.4.21
Downloaded faster-hex v0.9.0
Downloaded num-bigint-dig v0.8.4
Downloaded linux-raw-sys v0.4.13
Downloaded fastrand v2.1.0
Downloaded base64ct v1.6.0
Downloaded filetime v0.2.23
Downloaded nonempty v0.9.0
Downloaded gix-path v0.10.15
Downloaded memmap2 v0.9.4
Downloaded fraction v0.15.3
Downloaded zeroize v1.7.0
Downloaded gix-commitgraph v0.25.1
Downloaded lexopt v0.3.0
Downloaded generic-array v0.14.7
Downloaded elliptic-curve v0.13.8
Downloaded gix-odb v0.66.0
Downloaded libgit2-sys v0.17.0+1.8.1
Downloaded gix-object v0.46.1
Downloaded fxhash v0.2.1
Downloaded escargot v0.5.10
Downloaded serde v1.0.219
Downloaded rand v0.8.5
Downloaded digest v0.10.7
Downloaded bytecount v0.6.8
Downloaded rsa v0.9.6
Downloaded bcrypt-pbkdf v0.10.0
Downloaded bytesize v2.0.1
Downloaded tinyvec v1.6.0
Downloaded schemars v1.0.0-alpha.17
Downloaded num-rational v0.4.2
Downloaded icu_properties v1.5.1
Downloaded gix-actor v0.33.2
Downloaded fancy-regex v0.14.0
Downloaded ecdsa v0.16.9
Downloaded cpufeatures v0.2.12
Downloaded pkcs8 v0.10.2
Downloaded num v0.4.3
Downloaded gix-traverse v0.43.1
Downloaded errno v0.3.9
Downloaded keccak v0.1.5
Downloaded crossbeam-utils v0.8.19
Downloaded bit-set v0.8.0
Downloaded pretty_assertions v1.4.0
Downloaded gix-command v0.4.1
Downloaded colored v2.1.0
Downloaded bit-vec v0.8.0
Downloaded vsimd v0.8.0
Downloaded version_check v0.9.4
Downloaded iana-time-zone v0.1.60
Downloaded git2 v0.19.0
Downloaded git-ref-format-core v0.3.0
Downloaded either v1.11.0
Downloaded cypheraddr v0.4.0
Downloaded ctr v0.9.2
Downloaded block-padding v0.3.3
Downloaded universal-hash v0.5.1
Downloaded unicode-width v0.1.11
Downloaded tar v0.4.40
Downloaded socket2 v0.5.7
Downloaded signals_receipts v0.2.0
Downloaded serde_derive v1.0.219
Downloaded git-ref-format-macro v0.3.0
Downloaded equivalent v1.0.1
Downloaded displaydoc v0.2.5
Downloaded der v0.7.9
Downloaded data-encoding-macro v0.1.14
Downloaded cbc v0.1.2
Downloaded blowfish v0.9.1
Downloaded once_cell v1.21.3
Downloaded litemap v0.7.5
Downloaded spin v0.9.8
Downloaded snapbox v0.4.17
Downloaded similar v2.5.0
Downloaded ff v0.13.0
Downloaded cyphergraphy v0.3.0
Downloaded colorchoice v1.0.0
Downloaded chacha20 v0.9.1
Downloaded cfg-if v1.0.0
Downloaded prodash v29.0.2
Downloaded sqlite3-src v0.5.1
Downloaded gix-credentials v0.26.0
Downloaded email_address v0.2.9
Downloaded data-encoding-macro-internal v0.1.12
Downloaded byteorder v1.5.0
Downloaded bloomy v1.2.0
Downloaded bitflags v2.5.0
Downloaded num-iter v0.1.45
Downloaded lazy_static v1.5.0
Downloaded gix-lock v15.0.1
Downloaded gix-hashtable v0.6.0
Downloaded localtime v1.3.1
Downloaded chacha20poly1305 v0.10.1
Downloaded group v0.13.0
Downloaded crypto-common v0.1.6
Downloaded chrono v0.4.38
Downloaded bstr v1.9.1
Downloaded hmac v0.12.1
Downloaded tree-sitter-css v0.23.1
Downloaded termion v2.0.3
Downloaded ct-codecs v1.1.1
Downloaded borrow-or-share v0.2.2
Downloaded git-ref-format v0.3.0
Downloaded fluent-uri v0.3.2
Downloaded ec25519 v0.1.0
Downloaded tempfile v3.10.1
Downloaded signature v2.2.0
Downloaded serde_derive_internals v0.29.1
Downloaded sem_safe v0.2.0
Downloaded streaming-iterator v0.1.9
Downloaded referencing v0.30.0
Downloaded sha2 v0.10.8
Downloaded utf8parse v0.2.1
Downloaded tree-sitter-toml-ng v0.6.0
Downloaded sqlite v0.32.0
Downloaded proc-macro2 v1.0.92
Downloaded diff v0.1.13
Downloaded same-file v1.0.6
Downloaded tree-sitter-highlight v0.24.4
Downloaded tinystr v0.7.6
Downloaded thiserror-impl v1.0.69
Downloaded termion v3.0.0
Downloaded subtle v2.5.0
Downloaded stable_deref_trait v1.2.0
Downloaded sha1_smol v1.0.0
Downloaded thiserror-impl v2.0.12
Downloaded thiserror v1.0.69
Downloaded synstructure v0.13.1
Downloaded sqlite3-sys v0.15.2
Downloaded siphasher v1.0.1
Downloaded siphasher v0.3.11
Downloaded signature v1.6.4
Downloaded shlex v1.3.0
Downloaded sec1 v0.7.3
Downloaded scrypt v0.11.0
Downloaded scopeguard v1.2.0
Downloaded radicle-git-ext v0.8.0
Downloaded cipher v0.4.4
Downloaded libz-sys v1.1.16
Downloaded ssh-encoding v0.2.0
Downloaded ssh-cipher v0.2.0
Downloaded rand_core v0.6.4
Downloaded qcheck v1.0.0
Downloaded proc-macro-error-attr v1.0.4
Downloaded proc-macro-error v1.0.4
Downloaded snapbox-macros v0.3.8
Downloaded ed25519 v1.5.3
Downloaded aes v0.8.4
Downloaded num-cmp v0.1.0
Downloaded qcheck-macros v1.0.0
Downloaded emojis v0.6.4
Downloaded base64 v0.22.1
Downloaded aes-gcm v0.10.3
Downloaded arc-swap v1.7.1
Downloaded base64 v0.13.1
Downloaded anyhow v1.0.82
Downloaded anstream v0.6.13
Downloaded amplify_num v0.5.2
Downloaded data-encoding v2.5.0
Downloaded ascii v1.1.0
Downloaded anstyle-parse v0.2.3
Downloaded amplify v4.6.0
Downloaded ahash v0.8.11
Downloaded base16ct v0.2.0
Downloaded amplify_syn v2.0.1
Downloaded autocfg v1.2.0
Downloaded anstyle-query v1.0.2
Downloaded anstyle v1.0.6
Compiling libc v0.2.155
Compiling proc-macro2 v1.0.92
Compiling unicode-ident v1.0.12
Checking cfg-if v1.0.0
Compiling shlex v1.3.0
Compiling version_check v0.9.4
Checking memchr v2.7.2
Compiling serde v1.0.219
Compiling quote v1.0.36
Checking getrandom v0.2.15
Compiling jobserver v0.1.31
Compiling syn v2.0.89
Checking aho-corasick v1.1.3
Checking regex-syntax v0.8.5
Compiling cc v1.2.2
Compiling typenum v1.17.0
Compiling generic-array v0.14.7
Compiling autocfg v1.2.0
Checking regex-automata v0.4.9
Checking smallvec v1.13.2
Checking rand_core v0.6.4
Checking log v0.4.21
Checking fastrand v2.1.0
Checking bitflags v2.5.0
Checking subtle v2.5.0
Checking stable_deref_trait v1.2.0
Compiling syn v1.0.109
Checking crypto-common v0.1.6
Checking zeroize v1.7.0
Checking tinyvec_macros v0.1.1
Checking cpufeatures v0.2.12
Checking once_cell v1.21.3
Checking tinyvec v1.6.0
Compiling synstructure v0.13.1
Checking bstr v1.9.1
Compiling icu_locid_transform_data v1.5.1
Checking writeable v0.5.5
Checking litemap v0.7.5
Checking unicode-normalization v0.1.23
Checking block-padding v0.3.3
Compiling icu_properties_data v1.5.1
Checking inout v0.1.3
Checking block-buffer v0.10.4
Compiling crc32fast v1.4.0
Compiling icu_normalizer_data v1.5.1
Compiling pkg-config v0.3.30
Checking digest v0.10.7
Compiling serde_derive v1.0.219
Compiling zerofrom-derive v0.1.6
Compiling yoke-derive v0.7.5
Compiling zerovec-derive v0.10.3
Checking zerofrom v0.1.6
Compiling displaydoc v0.2.5
Checking yoke v0.7.5
Compiling icu_provider_macros v1.5.0
Checking zerovec v0.10.4
Checking cipher v0.4.4
Checking utf16_iter v1.0.5
Checking hashbrown v0.14.3
Checking itoa v1.0.11
Compiling thiserror v1.0.69
Checking tinystr v0.7.6
Checking icu_locid v1.5.0
Checking icu_collections v1.5.0
Checking write16 v1.0.0
Checking utf8_iter v1.0.4
Compiling thiserror-impl v1.0.69
Checking percent-encoding v2.3.1
Checking icu_provider v1.5.0
Compiling rustix v0.38.34
Checking icu_locid_transform v1.5.0
Checking sha2 v0.10.8
Checking linux-raw-sys v0.4.13
Checking icu_properties v1.5.1
Checking form_urlencoded v1.2.1
Checking universal-hash v0.5.1
Compiling vcpkg v0.2.15
Checking opaque-debug v0.3.1
Compiling libz-sys v1.1.16
Compiling amplify_syn v2.0.1
Checking icu_normalizer v1.5.0
Checking byteorder v1.5.0
Compiling data-encoding v2.5.0
Checking idna_adapter v1.2.0
Checking idna v1.0.3
Checking amplify_num v0.5.2
Compiling amplify_derive v4.0.0
Checking url v2.5.4
Compiling data-encoding-macro-internal v0.1.12
Checking signature v1.6.4
Checking ascii v1.1.0
Checking ed25519 v1.5.3
Checking data-encoding-macro v0.1.14
Checking tempfile v3.10.1
Compiling libgit2-sys v0.17.0+1.8.1
Checking aead v0.5.2
Compiling num-traits v0.2.19
Compiling proc-macro-error-attr v1.0.4
Checking ct-codecs v1.1.1
Checking base-x v0.2.11
Checking ec25519 v0.1.0
Checking multibase v0.9.1
Checking poly1305 v0.8.0
Checking chacha20 v0.9.1
Compiling proc-macro-error v1.0.4
Checking amplify v4.6.0
Checking cyphergraphy v0.3.0
Checking keccak v0.1.5
Compiling git-ref-format-core v0.3.0
Checking sha3 v0.10.8
Checking polyval v0.6.2
Compiling sqlite3-src v0.5.1
Checking hmac v0.12.1
Checking base32 v0.4.0
Checking ppv-lite86 v0.2.17
Checking base64ct v1.6.0
Checking pem-rfc7468 v0.7.0
Checking rand_chacha v0.3.1
Checking cypheraddr v0.4.0
Checking pbkdf2 v0.12.2
Checking ghash v0.5.1
Compiling git-ref-format-macro v0.3.0
Checking chacha20poly1305 v0.10.1
Checking aes v0.8.4
Checking ctr v0.9.2
Compiling crossbeam-utils v0.8.19
Checking aes-gcm v0.10.3
Checking git-ref-format v0.3.0
Checking noise-framework v0.4.0
Checking socks5-client v0.4.1
Checking rand v0.8.5
Checking ssh-encoding v0.2.0
Checking blowfish v0.9.1
Checking cbc v0.1.2
Checking radicle-std-ext v0.1.0
Compiling thiserror v2.0.12
Checking equivalent v1.0.1
Compiling serde_json v1.0.140
Checking indexmap v2.2.6
Checking ssh-cipher v0.2.0
Checking bcrypt-pbkdf v0.10.0
Checking cyphernet v0.5.2
Compiling thiserror-impl v2.0.12
Checking ryu v1.0.17
Checking signature v2.2.0
Checking ssh-key v0.6.6
Checking crossbeam-channel v0.5.15
Checking qcheck v1.0.0
Checking radicle-ssh v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-ssh)
Compiling ref-cast v1.0.24
Compiling ref-cast-impl v1.0.24
Checking lazy_static v1.5.0
Checking dyn-clone v1.0.17
Compiling lock_api v0.4.11
Checking siphasher v1.0.1
Compiling parking_lot_core v0.9.9
Checking nonempty v0.9.0
Compiling serde_derive_internals v0.29.1
Checking radicle-dag v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-dag)
Checking tree-sitter-language v0.1.2
Checking scopeguard v1.2.0
Checking iana-time-zone v0.1.60
Checking chrono v0.4.38
Compiling schemars_derive v1.0.0-alpha.17
Checking parking_lot v0.12.3
Checking colored v2.1.0
Checking bytesize v2.0.1
Checking localtime v1.3.1
Compiling anyhow v1.0.82
Checking base64 v0.21.7
Checking schemars v1.0.0-alpha.17
Checking anstyle-query v1.0.2
Checking gix-trace v0.1.12
Checking faster-hex v0.9.0
Checking sem_safe v0.2.0
Checking errno v0.3.9
Checking gix-utils v0.1.14
Checking signals_receipts v0.2.0
Checking adler2 v2.0.0
Checking gix-hash v0.15.1
Checking miniz_oxide v0.8.8
Checking same-file v1.0.6
Checking flate2 v1.1.1
Checking walkdir v2.5.0
Checking radicle-signals v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-signals)
Checking prodash v29.0.2
Compiling tree-sitter v0.24.4
Checking sha1_smol v1.0.0
Checking gix-features v0.39.1
Checking regex v1.11.1
Checking unicode-segmentation v1.11.0
Checking numtoa v0.1.0
Compiling xattr v1.3.1
Compiling filetime v0.2.23
Checking lexopt v0.3.0
Checking home v0.5.9
Checking gix-path v0.10.15
Compiling tar v0.4.40
Checking newline-converter v0.3.0
Checking termion v2.0.3
Checking fxhash v0.2.1
Checking streaming-iterator v0.1.9
Checking unicode-width v0.1.11
Checking inquire v0.7.5
Compiling radicle-surf v0.22.0
Checking unicode-display-width v0.3.0
Checking termion v3.0.0
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-ruby v0.23.1
Checking sqlite3-sys v0.15.2
Checking sqlite v0.32.0
Checking base64 v0.13.1
Checking nonempty v0.5.0
Compiling radicle-cli v0.13.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli)
Checking tree-sitter-highlight v0.24.4
Checking timeago v0.4.2
Checking jiff v0.2.1
Checking winnow v0.6.26
Checking gix-hashtable v0.6.0
Checking gix-validate v0.9.4
Checking memmap2 v0.9.4
Checking gix-chunk v0.4.11
Checking gix-fs v0.12.1
Checking gix-commitgraph v0.25.1
Checking gix-tempfile v15.0.0
Checking shell-words v1.1.0
Checking utf8parse v0.2.1
Checking anstyle-parse v0.2.3
Checking gix-command v0.4.1
Checking gix-lock v15.0.1
Checking gix-url v0.28.2
Checking gix-config-value v0.14.12
Checking gix-quote v0.4.15
Checking gix-sec v0.10.12
Checking anstyle v1.0.6
Checking colorchoice v1.0.0
Checking gix-prompt v0.9.1
Checking anstream v0.6.13
Checking gix-packetline v0.18.4
Checking snapbox-macros v0.3.8
Checking gix-credentials v0.26.0
Checking gix-transport v0.44.0
Checking gix-date v0.9.4
Checking gix-shallow v0.1.0
Checking gix-actor v0.33.2
Compiling maybe-async v0.2.10
Checking arc-swap v1.7.1
Checking gix-object v0.46.1
Checking normalize-line-endings v0.3.0
Checking similar v2.5.0
Checking snapbox v0.4.17
Checking popol v3.0.0
Checking either v1.11.0
Checking gix-revwalk v0.17.0
Checking gix-diff v0.49.0
Checking gix-ref v0.49.1
Checking gix-revision v0.31.1
Checking gix-traverse v0.43.1
Checking gix-refspec v0.27.0
Checking gix-pack v0.56.0
Checking gix-negotiate v0.17.0
Checking io-reactor v0.5.2
Checking gix-protocol v0.47.0
Checking salsa20 v0.10.2
Checking socket2 v0.5.7
Compiling radicle-node v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-node)
Checking diff v0.1.13
Checking siphasher v0.3.11
Checking gix-odb v0.66.0
Checking yansi v0.5.1
Checking bloomy v1.2.0
Checking pretty_assertions v1.4.0
Checking netservices v0.8.0
Checking scrypt v0.11.0
Checking num-integer v0.1.46
Compiling escargot v0.5.10
Checking radicle-systemd v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-systemd)
Compiling qcheck-macros v1.0.0
Checking num-bigint v0.4.6
Compiling ahash v0.8.11
Compiling radicle-remote-helper v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-remote-helper)
Checking num-iter v0.1.45
Checking num-complex v0.4.6
Checking num-rational v0.4.2
Checking bit-vec v0.8.0
Checking borrow-or-share v0.2.2
Checking zerocopy v0.7.35
Checking fluent-uri v0.3.2
Checking num v0.4.3
Checking bit-set v0.8.0
Checking phf_shared v0.11.3
Checking uuid v1.16.0
Checking vsimd v0.8.0
Checking outref v0.5.2
Checking referencing v0.30.0
Checking phf v0.11.3
Checking fancy-regex v0.14.0
Checking uuid-simd v0.8.0
Checking fraction v0.15.3
Checking email_address v0.2.9
Checking num-cmp v0.1.0
Checking bytecount v0.6.8
Checking base64 v0.22.1
Checking emojis v0.6.4
Checking jsonschema v0.30.0
Checking git2 v0.19.0
Checking radicle-git-ext v0.8.0
Checking radicle-term v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-term)
Checking radicle-crypto v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crypto)
Checking radicle-cob v0.14.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cob)
Checking radicle-crdt v0.1.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crdt)
Checking radicle v0.15.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle)
Checking radicle-fetch v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-fetch)
Checking radicle-cli-test v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli-test)
Checking radicle-schemars v0.1.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-schemars)
Checking radicle-tools v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-tools)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.25s
+ cargo build --all-targets --workspace
Compiling cfg-if v1.0.0
Compiling libc v0.2.155
Compiling shlex v1.3.0
Compiling memchr v2.7.2
Compiling serde v1.0.219
Compiling regex-syntax v0.8.5
Compiling jobserver v0.1.31
Compiling cc v1.2.2
Compiling getrandom v0.2.15
Compiling aho-corasick v1.1.3
Compiling regex-automata v0.4.9
Compiling smallvec v1.13.2
Compiling typenum v1.17.0
Compiling rand_core v0.6.4
Compiling generic-array v0.14.7
Compiling log v0.4.21
Compiling fastrand v2.1.0
Compiling bitflags v2.5.0
Compiling zerofrom v0.1.6
Compiling stable_deref_trait v1.2.0
Compiling subtle v2.5.0
Compiling crypto-common v0.1.6
Compiling yoke v0.7.5
Compiling zeroize v1.7.0
Compiling once_cell v1.21.3
Compiling zerovec v0.10.4
Compiling tinyvec_macros v0.1.1
Compiling cpufeatures v0.2.12
Compiling tinyvec v1.6.0
Compiling writeable v0.5.5
Compiling litemap v0.7.5
Compiling block-padding v0.3.3
Compiling inout v0.1.3
Compiling icu_locid_transform_data v1.5.1
Compiling block-buffer v0.10.4
Compiling bstr v1.9.1
Compiling tinystr v0.7.6
Compiling unicode-normalization v0.1.23
Compiling icu_locid v1.5.0
Compiling icu_collections v1.5.0
Compiling digest v0.10.7
Compiling icu_provider v1.5.0
Compiling icu_locid_transform v1.5.0
Compiling cipher v0.4.4
Compiling icu_properties_data v1.5.1
Compiling icu_normalizer_data v1.5.1
Compiling write16 v1.0.0
Compiling utf8_iter v1.0.4
Compiling utf16_iter v1.0.5
Compiling itoa v1.0.11
Compiling adler2 v2.0.0
Compiling hashbrown v0.14.3
Compiling icu_properties v1.5.1
Compiling miniz_oxide v0.8.8
Compiling crc32fast v1.4.0
Compiling percent-encoding v2.3.1
Compiling thiserror v1.0.69
Compiling sha2 v0.10.8
Compiling linux-raw-sys v0.4.13
Compiling form_urlencoded v1.2.1
Compiling universal-hash v0.5.1
Compiling opaque-debug v0.3.1
Compiling libz-sys v1.1.16
Compiling byteorder v1.5.0
Compiling rustix v0.38.34
Compiling icu_normalizer v1.5.0
Compiling ascii v1.1.0
Compiling idna_adapter v1.2.0
Compiling idna v1.0.3
Compiling amplify_num v0.5.2
Compiling url v2.5.4
Compiling data-encoding v2.5.0
Compiling signature v1.6.4
Compiling ed25519 v1.5.3
Compiling amplify v4.6.0
Compiling data-encoding-macro v0.1.14
Compiling tempfile v3.10.1
Compiling libgit2-sys v0.17.0+1.8.1
Compiling aead v0.5.2
Compiling ct-codecs v1.1.1
Compiling base-x v0.2.11
Compiling ec25519 v0.1.0
Compiling multibase v0.9.1
Compiling poly1305 v0.8.0
Compiling chacha20 v0.9.1
Compiling num-traits v0.2.19
Compiling cyphergraphy v0.3.0
Compiling keccak v0.1.5
Compiling sha3 v0.10.8
Compiling polyval v0.6.2
Compiling git-ref-format-core v0.3.0
Compiling hmac v0.12.1
Compiling sqlite3-src v0.5.1
Compiling ppv-lite86 v0.2.17
Compiling base32 v0.4.0
Compiling base64ct v1.6.0
Compiling rand_chacha v0.3.1
Compiling pem-rfc7468 v0.7.0
Compiling cypheraddr v0.4.0
Compiling git-ref-format-macro v0.3.0
Compiling pbkdf2 v0.12.2
Compiling ghash v0.5.1
Compiling chacha20poly1305 v0.10.1
Compiling aes v0.8.4
Compiling ctr v0.9.2
Compiling aes-gcm v0.10.3
Compiling git-ref-format v0.3.0
Compiling noise-framework v0.4.0
Compiling socks5-client v0.4.1
Compiling ssh-encoding v0.2.0
Compiling rand v0.8.5
Compiling blowfish v0.9.1
Compiling cbc v0.1.2
Compiling radicle-std-ext v0.1.0
Compiling equivalent v1.0.1
Compiling indexmap v2.2.6
Compiling ssh-cipher v0.2.0
Compiling bcrypt-pbkdf v0.10.0
Compiling cyphernet v0.5.2
Compiling crossbeam-utils v0.8.19
Compiling signature v2.2.0
Compiling ryu v1.0.17
Compiling serde_json v1.0.140
Compiling crossbeam-channel v0.5.15
Compiling ssh-key v0.6.6
Compiling thiserror v2.0.12
Compiling qcheck v1.0.0
Compiling radicle-ssh v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-ssh)
Compiling ref-cast v1.0.24
Compiling lazy_static v1.5.0
Compiling dyn-clone v1.0.17
Compiling siphasher v1.0.1
Compiling radicle-dag v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-dag)
Compiling nonempty v0.9.0
Compiling tree-sitter-language v0.1.2
Compiling scopeguard v1.2.0
Compiling parking_lot_core v0.9.9
Compiling lock_api v0.4.11
Compiling iana-time-zone v0.1.60
Compiling parking_lot v0.12.3
Compiling chrono v0.4.38
Compiling schemars v1.0.0-alpha.17
Compiling colored v2.1.0
Compiling bytesize v2.0.1
Compiling localtime v1.3.1
Compiling base64 v0.21.7
Compiling anstyle-query v1.0.2
Compiling gix-trace v0.1.12
Compiling anyhow v1.0.82
Compiling faster-hex v0.9.0
Compiling sem_safe v0.2.0
Compiling errno v0.3.9
Compiling gix-utils v0.1.14
Compiling signals_receipts v0.2.0
Compiling gix-hash v0.15.1
Compiling same-file v1.0.6
Compiling walkdir v2.5.0
Compiling radicle-signals v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-signals)
Compiling prodash v29.0.2
Compiling flate2 v1.1.1
Compiling tree-sitter v0.24.4
Compiling sha1_smol v1.0.0
Compiling gix-features v0.39.1
Compiling regex v1.11.1
Compiling numtoa v0.1.0
Compiling unicode-segmentation v1.11.0
Compiling xattr v1.3.1
Compiling filetime v0.2.23
Compiling lexopt v0.3.0
Compiling home v0.5.9
Compiling gix-path v0.10.15
Compiling tar v0.4.40
Compiling newline-converter v0.3.0
Compiling termion v2.0.3
Compiling fxhash v0.2.1
Compiling unicode-width v0.1.11
Compiling streaming-iterator v0.1.9
Compiling radicle-surf v0.22.0
Compiling inquire v0.7.5
Compiling unicode-display-width v0.3.0
Compiling sqlite3-sys v0.15.2
Compiling sqlite v0.32.0
Compiling termion v3.0.0
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-bash v0.23.3
Compiling nonempty v0.5.0
Compiling base64 v0.13.1
Compiling radicle-cli v0.13.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli)
Compiling tree-sitter-highlight v0.24.4
Compiling timeago v0.4.2
Compiling jiff v0.2.1
Compiling winnow v0.6.26
Compiling gix-hashtable v0.6.0
Compiling gix-validate v0.9.4
Compiling memmap2 v0.9.4
Compiling gix-chunk v0.4.11
Compiling gix-commitgraph v0.25.1
Compiling gix-fs v0.12.1
Compiling shell-words v1.1.0
Compiling gix-tempfile v15.0.0
Compiling gix-command v0.4.1
Compiling utf8parse v0.2.1
Compiling gix-lock v15.0.1
Compiling anstyle-parse v0.2.3
Compiling gix-url v0.28.2
Compiling gix-config-value v0.14.12
Compiling gix-quote v0.4.15
Compiling gix-sec v0.10.12
Compiling anstyle v1.0.6
Compiling gix-date v0.9.4
Compiling colorchoice v1.0.0
Compiling anstream v0.6.13
Compiling gix-actor v0.33.2
Compiling gix-prompt v0.9.1
Compiling gix-object v0.46.1
Compiling gix-packetline v0.18.4
Compiling gix-transport v0.44.0
Compiling gix-revwalk v0.17.0
Compiling gix-traverse v0.43.1
Compiling gix-revision v0.31.1
Compiling gix-diff v0.49.0
Compiling gix-pack v0.56.0
Compiling gix-negotiate v0.17.0
Compiling gix-refspec v0.27.0
Compiling gix-ref v0.49.1
Compiling gix-credentials v0.26.0
Compiling snapbox-macros v0.3.8
Compiling gix-shallow v0.1.0
Compiling similar v2.5.0
Compiling arc-swap v1.7.1
Compiling normalize-line-endings v0.3.0
Compiling gix-protocol v0.47.0
Compiling snapbox v0.4.17
Compiling gix-odb v0.66.0
Compiling popol v3.0.0
Compiling either v1.11.0
Compiling io-reactor v0.5.2
Compiling salsa20 v0.10.2
Compiling socket2 v0.5.7
Compiling yansi v0.5.1
Compiling diff v0.1.13
Compiling radicle-node v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-node)
Compiling siphasher v0.3.11
Compiling bloomy v1.2.0
Compiling pretty_assertions v1.4.0
Compiling netservices v0.8.0
Compiling scrypt v0.11.0
Compiling num-integer v0.1.46
Compiling radicle-systemd v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-systemd)
Compiling escargot v0.5.10
Compiling num-bigint v0.4.6
Compiling radicle-remote-helper v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-remote-helper)
Compiling num-iter v0.1.45
Compiling num-complex v0.4.6
Compiling bit-vec v0.8.0
Compiling num-rational v0.4.2
Compiling borrow-or-share v0.2.2
Compiling zerocopy v0.7.35
Compiling num v0.4.3
Compiling ahash v0.8.11
Compiling fluent-uri v0.3.2
Compiling bit-set v0.8.0
Compiling phf_shared v0.11.3
Compiling vsimd v0.8.0
Compiling outref v0.5.2
Compiling uuid v1.16.0
Compiling uuid-simd v0.8.0
Compiling referencing v0.30.0
Compiling phf v0.11.3
Compiling fancy-regex v0.14.0
Compiling fraction v0.15.3
Compiling email_address v0.2.9
Compiling base64 v0.22.1
Compiling bytecount v0.6.8
Compiling num-cmp v0.1.0
Compiling emojis v0.6.4
Compiling jsonschema v0.30.0
Compiling git2 v0.19.0
Compiling radicle-git-ext v0.8.0
Compiling radicle-term v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-term)
Compiling radicle-crypto v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crypto)
Compiling radicle-cob v0.14.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cob)
Compiling radicle-crdt v0.1.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crdt)
Compiling radicle v0.15.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle)
Compiling radicle-fetch v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-fetch)
Compiling radicle-cli-test v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli-test)
Compiling radicle-tools v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-tools)
Compiling radicle-schemars v0.1.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.84s
+ cargo doc --workspace --no-deps
Checking regex-automata v0.4.9
Compiling syn v1.0.109
Checking idna v1.0.3
Checking radicle-ssh v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-ssh)
Checking url v2.5.4
Compiling num-traits v0.2.19
Checking git2 v0.19.0
Checking radicle-dag v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-dag)
Checking chrono v0.4.38
Checking bstr v1.9.1
Compiling amplify_syn v2.0.1
Compiling proc-macro-error v1.0.4
Checking git-ref-format-core v0.3.0
Checking gix-path v0.10.15
Compiling data-encoding-macro-internal v0.1.12
Compiling git-ref-format-macro v0.3.0
Checking radicle-signals v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-signals)
Checking regex v1.11.1
Compiling amplify_derive v4.0.0
Checking data-encoding-macro v0.1.14
Checking multibase v0.9.1
Checking git-ref-format v0.3.0
Checking tree-sitter v0.24.4
Checking radicle-git-ext v0.8.0
Checking gix-date v0.9.4
Checking gix-actor v0.33.2
Checking gix-validate v0.9.4
Checking radicle-surf v0.22.0
Compiling radicle-cli v0.13.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli)
Checking tree-sitter-highlight v0.24.4
Checking gix-object v0.46.1
Checking tree-sitter-toml-ng v0.6.0
Checking radicle-term v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-term)
Checking gix-commitgraph v0.25.1
Checking gix-command v0.4.1
Checking gix-config-value v0.14.12
Checking gix-url v0.28.2
Checking gix-revwalk v0.17.0
Checking gix-quote v0.4.15
Checking gix-prompt v0.9.1
Checking gix-revision v0.31.1
Checking gix-traverse v0.43.1
Checking gix-diff v0.49.0
Checking gix-packetline v0.18.4
Checking gix-refspec v0.27.0
Checking gix-pack v0.56.0
Checking gix-transport v0.44.0
Checking amplify v4.6.0
Checking gix-credentials v0.26.0
Checking gix-negotiate v0.17.0
Checking gix-ref v0.49.1
Checking cyphergraphy v0.3.0
Checking gix-shallow v0.1.0
Checking io-reactor v0.5.2
Checking cypheraddr v0.4.0
Checking noise-framework v0.4.0
Checking socks5-client v0.4.1
Checking gix-odb v0.66.0
Compiling radicle-node v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-node)
Checking gix-protocol v0.47.0
Checking cyphernet v0.5.2
Checking radicle-crypto v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crypto)
Checking netservices v0.8.0
Checking radicle-cob v0.14.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cob)
Checking radicle-systemd v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-systemd)
Documenting radicle-cob v0.14.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cob)
Documenting radicle-crdt v0.1.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crdt)
Documenting radicle-crypto v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-crypto)
Checking radicle v0.15.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle)
Documenting radicle v0.15.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle)
Documenting radicle-term v0.12.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-term)
Documenting radicle-signals v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-signals)
Documenting radicle-ssh v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-ssh)
Documenting radicle-dag v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-dag)
Documenting radicle-systemd v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-systemd)
Checking radicle-fetch v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-fetch)
Documenting radicle-cli v0.13.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli)
Documenting radicle-fetch v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-fetch)
Documenting radicle-node v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-node)
Documenting radicle-schemars v0.1.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-schemars)
Documenting radicle-cli-test v0.11.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-cli-test)
Checking radicle-remote-helper v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-remote-helper)
Documenting radicle-remote-helper v0.10.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-remote-helper)
Documenting radicle-tools v0.9.0 (/111a687e-9b41-4bec-a0eb-bbd535d3a808/w/crates/radicle-tools)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.26s
Generated /111a687e-9b41-4bec-a0eb-bbd535d3a808/w/target/doc/radicle/index.html and 23 other files
+ cargo test --workspace --no-fail-fast
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
Running unittests src/lib.rs (target/debug/deps/radicle-247c7acf644a33a7)
running 188 tests
test canonical::formatter::test::ascii_control_characters ... ok
test canonical::formatter::test::ordered_nested_object ... ok
test canonical::formatter::test::securesystemslib_asserts ... ok
test cob::cache::migrations::_2::tests::test_patch_json_deserialization ... ok
test cob::common::test::test_color ... ok
test cob::cache::tests::test_migrate_to ... ok
test cob::common::test::test_emojis ... ok
test cob::cache::tests::test_check_version ... ok
test cob::cache::migrations::_2::tests::test_migration_2 ... ok
test cob::identity::test::prop_json_eq_str ... ok
test cob::identity::test::test_identity_redact_revision ... ok
test cob::identity::test::test_identity_remove_delegate_concurrent ... ok
test cob::identity::test::test_identity_update_rejected ... ok
test cob::identity::test::test_identity_reject_concurrent ... ok
test cob::identity::test::test_identity_updates ... ok
test cob::issue::cache::tests::test_counts ... ok
test cob::issue::cache::tests::test_get ... ok
test cob::issue::cache::tests::test_is_empty ... ok
test cob::issue::cache::tests::test_list ... ok
test cob::issue::cache::tests::test_list_by_status ... ok
test cob::issue::cache::tests::test_remove ... ok
test cob::identity::test::test_valid_identity ... ok
test cob::identity::test::test_identity_updates_concurrent ... ok
test cob::issue::test::test_embeds ... ok
test cob::issue::test::test_embeds_edit ... ok
test cob::identity::test::test_identity_updates_concurrent_outdated ... ok
test cob::issue::test::test_invalid_actions ... ok
test cob::issue::test::test_invalid_cob ... ok
test cob::issue::test::test_concurrency ... ok
test cob::issue::test::test_invalid_tx ... ok
test cob::issue::test::test_invalid_tx_reference ... ok
test cob::issue::test::test_issue_all ... ok
test cob::issue::test::test_issue_create_and_assign ... ok
test cob::issue::test::test_issue_comment_redact ... ok
test cob::issue::test::test_issue_comment ... ok
test cob::issue::test::test_issue_create_and_change_state ... ok
test cob::issue::test::test_issue_create_and_get ... ok
test cob::issue::test::test_issue_create_and_unassign ... ok
test cob::issue::test::test_issue_edit ... ok
test cob::issue::test::test_issue_create_and_reassign ... ok
test cob::issue::test::test_issue_edit_description ... ok
test cob::issue::test::test_issue_multilines ... ok
test cob::issue::test::test_issue_state_serde ... ok
test cob::issue::test::test_ordering ... ok
test cob::issue::test::test_issue_react ... ok
test cob::issue::test::test_issue_label ... ok
test cob::issue::test::test_issue_reply ... ok
test cob::patch::cache::tests::test_is_empty ... ok
test cob::patch::cache::tests::test_list ... ok
test cob::patch::cache::tests::test_get ... ok
test cob::patch::cache::tests::test_remove ... ok
test cob::patch::test::test_json ... ok
test cob::patch::test::test_json_serialization ... ok
test cob::patch::cache::tests::test_counts ... ok
test cob::patch::cache::tests::test_list_by_status ... ok
test cob::patch::test::test_patch_create_and_get ... ok
test cob::patch::test::test_patch_merge ... ok
test cob::patch::test::test_patch_discussion ... ok
test cob::patch::test::test_patch_review ... ok
test cob::patch::test::test_patch_redact ... ok
test cob::patch::test::test_patch_review_comment ... ok
test cob::patch::test::test_patch_review_duplicate ... ok
test cob::patch::test::test_patch_review_edit ... ok
test cob::patch::test::test_patch_review_edit_comment ... ok
test cob::patch::test::test_patch_review_remove_summary ... ok
test cob::patch::test::test_reactions_json_serialization ... ok
test cob::patch::test::test_revision_edit_redact ... ok
test cob::patch::test::test_revision_reaction ... ok
test cob::patch::test::test_revision_review_merge_redacted ... ok
test cob::patch::test::test_patch_review_revision_redact ... ok
test cob::thread::tests::test_comment_edit_missing ... ok
test cob::thread::tests::test_comment_edit_redacted ... ok
test cob::thread::tests::test_comment_redact_missing ... ok
test cob::thread::tests::test_duplicate_comments ... ok
test cob::thread::tests::test_edit_comment ... ok
test cob::thread::tests::test_redact_comment ... ok
test cob::thread::tests::test_timeline ... ok
test cob::patch::test::test_patch_update ... ok
test git::canonical::tests::test_quorum_merges ... ok
test git::canonical::tests::test_quorum ... ok
test git::test::test_version_from_str ... ok
test git::test::test_version_ord ... ok
test identity::did::test::test_did_encode_decode ... ok
test identity::did::test::test_did_vectors ... ok
test identity::doc::id::test::prop_from_str ... ok
test git::canonical::tests::test_quorum_properties ... ok
test identity::doc::test::test_canonical_doc ... ok
test identity::doc::test::test_canonical_example ... ok
test identity::doc::test::test_duplicate_dids ... ok
test identity::doc::test::test_future_version_error ... ok
test identity::doc::test::test_is_valid_version ... ok
test identity::doc::test::test_max_delegates ... ok
test identity::doc::test::test_not_found ... ok
test identity::doc::test::test_parse_version ... ok
test identity::doc::test::test_visibility_json ... ok
test identity::project::test::test_project_name ... ok
test node::address::store::test::test_alias ... ok
test node::address::store::test::test_disconnected ... ok
test node::address::store::test::test_disconnected_ban ... ok
test cob::thread::tests::prop_ordering ... ok
test node::address::store::test::test_empty ... ok
test node::address::store::test::test_entries ... ok
test node::address::store::test::test_get_none ... ok
test node::address::store::test::test_insert_and_get ... ok
test node::address::store::test::test_insert_and_remove ... ok
test node::address::store::test::test_insert_duplicate ... ok
test node::address::store::test::test_insert_and_update ... ok
test node::address::store::test::test_remove_nothing ... ok
test node::address::store::test::test_node_aliases ... ok
test node::features::test::test_operations ... ok
test node::db::test::test_version ... ok
test node::notifications::store::test::test_branch_notifications ... ok
test node::notifications::store::test::test_clear ... ok
test node::notifications::store::test::test_cob_notifications ... ok
test node::notifications::store::test::test_counts_by_repo ... ok
test node::notifications::store::test::test_duplicate_notifications ... ok
test node::notifications::store::test::test_notification_status ... ok
test node::policy::store::test::test_follow_and_unfollow_node ... ok
test node::policy::store::test::test_node_aliases ... ok
test node::policy::store::test::test_node_policy ... ok
test node::policy::store::test::test_node_policies ... ok
test node::policy::store::test::test_repo_policies ... ok
test node::policy::store::test::test_repo_policy ... ok
test node::policy::store::test::test_seed_and_unseed_repo ... ok
test node::policy::store::test::test_update_scope ... ok
test node::policy::store::test::test_update_alias ... ok
test node::refs::store::test::test_count ... ok
test node::refs::store::test::test_set_and_delete ... ok
test node::refs::store::test::test_set_and_get ... ok
test node::routing::test::test_count ... ok
test node::routing::test::test_entries ... ok
test node::routing::test::test_insert_and_get ... ok
test node::routing::test::test_insert_and_get_resources ... ok
test node::routing::test::test_insert_duplicate ... ok
test node::routing::test::test_insert_and_remove ... ok
test node::routing::test::test_insert_existing_updated_time ... ok
test node::routing::test::test_len ... ok
test node::routing::test::test_remove_many ... ok
test node::routing::test::test_prune ... ok
test node::routing::test::test_remove_redundant ... ok
test node::routing::test::test_update_existing_multi ... ok
test node::sync::announce::test::announcer_must_reach_preferred_seeds ... ok
test node::sync::announce::test::announcer_reached_max_replication_target ... ok
test node::sync::announce::test::announcer_reached_min_replication_target ... ok
test node::sync::announce::test::announcer_timed_out ... ok
test node::sync::announce::test::announcer_will_minimise_replication_factor ... ok
test node::sync::announce::test::cannot_construct_announcer ... ok
test node::sync::fetch::test::all_nodes_are_candidates ... ok
test node::sync::fetch::test::all_nodes_are_fetchable ... ok
test node::sync::fetch::test::could_not_reach_target ... ok
test node::sync::fetch::test::ignores_duplicates_and_local_node ... ok
test node::sync::fetch::test::preferred_seeds_target_returned_over_replicas ... ok
test node::sync::fetch::test::reaches_target_of_max_replicas ... ok
test node::sync::fetch::test::reaches_target_of_preferred_seeds ... ok
test node::sync::test::ensure_replicas_construction ... ok
test node::sync::test::replicas_constrain_to ... ok
test node::sync::fetch::test::reaches_target_of_replicas ... ok
test node::test::test_alias ... ok
test node::test::test_user_agent ... ok
test node::test::test_command_result ... ok
test node::timestamp::tests::test_timestamp_max ... ok
test profile::test::canonicalize_home ... ok
test profile::test::test_config ... ok
test rad::tests::test_checkout ... ok
test rad::tests::test_fork ... ok
test cob::patch::cache::tests::test_find_by_revision ... ok
test serde_ext::test::test_localtime ... ok
test serde_ext::test::test_localtime_ext ... ok
test rad::tests::test_init ... ok
test profile::config::test::schema ... ok
test storage::git::tests::test_references_of ... ok
test storage::git::transport::local::url::test::test_url_parse ... ok
test storage::git::transport::local::url::test::test_url_to_string ... ok
test storage::git::transport::remote::url::test::test_url_parse ... ok
test storage::refs::tests::prop_canonical_roundtrip ... ok
test storage::git::tests::test_sign_refs ... ok
test storage::tests::test_storage ... ok
test test::assert::test::assert_with_message ... ok
test test::assert::test::test_assert_no_move ... ok
test test::assert::test::test_assert_panic_0 - should panic ... ok
test test::assert::test::test_assert_panic_1 - should panic ... ok
test test::assert::test::test_assert_panic_2 - should panic ... ok
test test::assert::test::test_assert_succeed ... ok
test test::assert::test::test_panic_message ... ok
test version::test::test_version ... ok
test storage::git::tests::test_remote_refs ... ok
test storage::refs::tests::test_rid_verification ... ok
test identity::doc::test::prop_encode_decode ... ok
test result: ok. 188 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.03s
Running unittests src/lib.rs (target/debug/deps/radicle_cli-73855c5d8a77ec7e)
running 14 tests
test commands::rad_patch::review::builder::tests::test_review_comments_before ... ok
test commands::rad_patch::review::builder::tests::test_review_comments_basic ... ok
test commands::rad_patch::review::builder::tests::test_review_comments_multiline ... ok
test commands::rad_inspect::test::test_tree ... ok
test git::pretty_diff::test::test_pretty ... ignored
test commands::rad_patch::review::builder::tests::test_review_comments_split_hunk ... ok
test git::ddiff::tests::diff_encode_decode_ddiff_hunk ... ok
test git::unified_diff::test::test_diff_content_encode_decode_content ... ok
test terminal::format::test::test_strip_comments ... ok
test terminal::format::test::test_bytes ... ok
test git::unified_diff::test::test_diff_encode_decode_diff ... ok
test terminal::patch::test::test_edit_display_message ... ok
test terminal::patch::test::test_update_display_message ... ok
test terminal::patch::test::test_create_display_message ... ok
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running unittests src/main.rs (target/debug/deps/rad-ea79d5c37203283e)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/commands.rs (target/debug/deps/commands-20fda0883a5f2864)
running 95 tests
test framework_home ... ok
test git_push_and_fetch ... ok
test git_push_amend ... ok
test git_push_diverge ... ok
test rad_auth ... ok
test rad_auth_errors ... ok
test rad_block ... ok
test rad_checkout ... ok
test git_tag ... ok
test git_push_rollback ... ok
test git_push_converge ... ok
test rad_clone ... ok
test rad_clean ... ok
test rad_clone_connect ... ok
test rad_clone_unknown ... ok
test rad_clone_all ... ok
test rad_clone_directory ... ok
test rad_cob_multiset ... ok
test rad_cob_log ... ok
test rad_clone_partial_fail ... ok
test rad_cob_migrate ... ok
test rad_cob_show ... ok
test rad_cob_update_identity ... ok
test rad_config ... ok
test rad_cob_update ... ok
test rad_diff ... ok
test rad_id_collaboration ... ignored, slow
test rad_id ... ok
test rad_id_conflict ... ok
test rad_id_private ... ok
test rad_id_multi_delegate ... ok
test rad_id_threshold ... ok
test rad_id_unknown_field ... ok
test rad_id_update_delete_field ... ok
test rad_id_threshold_soft_fork ... ok
test rad_init ... ok
test rad_init_existing ... ok
test rad_init_no_git ... ok
test rad_init_no_seed ... ok
test rad_init_private ... ok
test rad_inbox ... ok
test rad_init_private_clone ... ok
test rad_init_private_no_seed ... ok
test rad_fetch ... ok
test rad_fork ... ok
test rad_init_private_clone_seed ... ok
test rad_init_private_seed ... ok
test rad_init_sync_not_connected ... ok
test rad_init_sync_preferred ... ok
test rad_init_with_existing_remote ... ok
test rad_inspect ... ok
test rad_issue ... ok
test rad_merge_after_update ... ok
test rad_merge_no_ff ... ok
test rad_merge_via_push ... ok
test rad_node_connect ... ok
test rad_patch ... ok
test rad_node ... ok
test rad_patch_ahead_behind ... ok
test rad_patch_change_base ... ok
test rad_patch_checkout ... ok
test rad_patch_checkout_revision ... ok
test rad_patch_checkout_force ... ok
test rad_patch_detached_head ... ok
test rad_patch_diff ... ok
test rad_init_sync_and_clone ... ok
test rad_init_sync_timeout ... ok
test rad_patch_draft ... ok
test rad_patch_edit ... ok
test rad_patch_fetch_2 ... ok
test rad_patch_merge_draft ... ok
test rad_patch_fetch_1 ... ok
test rad_patch_delete ... ok
test rad_patch_revert_merge ... ok
test rad_patch_update ... ok
test rad_patch_open_explore ... ok
test rad_publish ... ok
test rad_patch_via_push ... ok
test rad_review_by_hunk ... ok
test rad_seed_and_follow ... ok
test rad_remote ... ok
test rad_self ... ok
test rad_seed_many ... ok
test rad_push_and_pull_patches ... ok
test rad_sync_without_node ... ok
test rad_unseed ... ok
test rad_unseed_many ... ok
test rad_watch ... ok
test rad_sync ... ok
test test_clone_without_seeds ... ok
test test_cob_deletion ... ok
test test_cob_replication ... ok
test rad_workflow ... ok
test rad_patch_pull_update ... ok
test test_replication_via_seed ... ok
test result: ok. 94 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 63.18s
Running unittests src/lib.rs (target/debug/deps/radicle_cli_test-b11c15464735756c)
running 3 tests
test tests::test_parse ... ok
test tests::test_run ... ok
test tests::test_example_spaced_brackets ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running unittests src/lib.rs (target/debug/deps/radicle_cob-7b506864b1864717)
running 8 tests
test object::tests::test_serde ... ok
test tests::invalid_parse_refstr ... ok
test tests::parse_refstr ... ok
test tests::roundtrip ... ok
test type_name::test::valid_typenames ... ok
test tests::list_cobs ... ok
test tests::traverse_cobs ... ok
test tests::update_cob ... ok
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
Running unittests src/lib.rs (target/debug/deps/radicle_crdt-691f7d92c28a844f)
running 24 tests
test immutable::test::test_merge_equal ... ok
test immutable::test::test_merge_inequal - should panic ... ok
test lwwmap::tests::test_insert ... ok
test lwwmap::tests::test_insert_remove ... ok
test lwwmap::tests::test_is_empty ... ok
test lwwmap::tests::test_remove_insert ... ok
test lwwreg::tests::prop_semilattice ... ok
test lwwreg::tests::test_merge ... ok
test lwwreg::tests::test_set_get ... ok
test gmap::tests::prop_semilattice ... ok
test lwwset::tests::test_insert ... ok
test lwwset::tests::test_insert_remove ... ok
test lwwset::tests::test_remove_insert ... ok
test redactable::test::prop_invariants ... ok
test redactable::test::test_both_present ... ok
test redactable::test::test_redacted ... ok
test test::test_generator ... ok
test tests::prop_bool_laws ... ok
test tests::prop_option_laws ... ok
test tests::test_bool ... ok
test tests::test_option ... ok
test gset::tests::prop_semilattice ... ok
test lwwmap::tests::prop_semilattice ... ok
test lwwset::tests::prop_semilattice ... ok
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
Running unittests src/lib.rs (target/debug/deps/radicle_crypto-a8511562daed2d3b)
running 12 tests
test ssh::fmt::test::test_key ... ok
test ssh::fmt::test::test_fingerprint ... ok
test ssh::keystore::tests::test_init_no_passphrase ... ok
test ssh::test::prop_encode_decode_sk ... ok
test ssh::test::test_agent_encoding_sign ... ok
test ssh::test::test_agent_encoding_remove ... ok
test tests::prop_encode_decode ... ok
test tests::test_e25519_dh ... ok
test tests::test_encode_decode ... ok
test tests::prop_key_equality ... ok
test ssh::keystore::tests::test_signer ... ok
test ssh::keystore::tests::test_init_passphrase ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.82s
Running unittests src/lib.rs (target/debug/deps/radicle_dag-20ca1aca3d76c348)
running 20 tests
test tests::test_cycle ... ok
test tests::test_contains ... ok
test tests::test_fold_diamond ... ok
test tests::test_diamond ... ok
test tests::test_fold_multiple_roots ... ok
test tests::test_fold_reject ... ok
test tests::test_fold_sorting_1 ... ok
test tests::test_fold_sorting_2 ... ok
test tests::test_get ... ok
test tests::test_dependencies ... ok
test tests::test_is_empty ... ok
test tests::test_complex ... ok
test tests::test_merge_1 ... ok
test tests::test_len ... ok
test tests::test_merge_2 ... ok
test tests::test_prune_1 ... ok
test tests::test_prune_2 ... ok
test tests::test_remove ... ok
test tests::test_siblings ... ok
test tests::test_prune_by_sorting ... ok
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_fetch-6b9518e1c6b73602)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_node-d2c6af215f78496f)
running 113 tests
test deserializer::test::test_decode_next ... ok
test deserializer::test::prop_decode_next ... ok
test deserializer::test::test_unparsed ... ok
test service::filter::test::test_parameters ... ok
test control::tests::test_control_socket ... ok
test service::limiter::test::test_limitter_different_rates ... ok
test service::limiter::test::test_limitter_multi ... ok
test service::limiter::test::test_limitter_refill ... ok
test service::gossip::store::test::test_announced ... ok
test control::tests::test_seed_unseed ... ok
test service::filter::test::test_sizes ... ok
test service::message::tests::test_ref_remote_limit ... ok
test service::message::tests::test_inventory_limit ... ok
test service::message::tests::prop_refs_announcement_signing ... ok
test tests::e2e::missing_default_branch ... ok
test tests::e2e::missing_delegate_default_branch ... ok
test tests::e2e::test_background_foreground_fetch ... ok
test tests::e2e::test_channel_reader_limit ... ok
test tests::e2e::test_catchup_on_refs_announcements ... ok
test tests::e2e::test_clone ... ok
test service::message::tests::test_node_announcement_validate ... ok
test tests::e2e::test_dont_fetch_owned_refs ... ok
test tests::e2e::test_connection_crossing ... ok
test tests::e2e::test_fetch_followed_remotes ... ok
test tests::e2e::test_fetch_preserve_owned_refs ... ok
test tests::e2e::test_fetch_unseeded ... ok
test tests::e2e::test_fetch_up_to_date ... ok
test tests::e2e::test_concurrent_fetches ... ok
test tests::e2e::test_inventory_sync_basic ... ok
test tests::e2e::test_large_fetch ... ok
test tests::e2e::test_migrated_clone ... ok
test tests::e2e::test_missing_remote ... ok
test tests::e2e::test_multiple_offline_inits ... ok
test tests::e2e::test_non_fastforward_sigrefs ... ok
test tests::e2e::test_outdated_delegate_sigrefs ... ok
test tests::e2e::test_outdated_sigrefs ... ok
test tests::e2e::test_replication ... ok
test tests::e2e::test_inventory_sync_bridge ... ok
test tests::e2e::test_inventory_sync_ring ... ok
test tests::e2e::test_replication_invalid ... ok
test tests::e2e::test_replication_ref_in_sigrefs ... ok
test tests::e2e::test_inventory_sync_star ... ok
test tests::test_announcement_rebroadcast ... ok
test tests::test_announcement_rebroadcast_duplicates ... ok
test tests::test_announcement_relay ... ok
test tests::test_announcement_rebroadcast_timestamp_filtered ... ok
test tests::test_connection_kept_alive ... ok
test tests::test_disconnecting_unresponsive_peer ... ok
test tests::test_fetch_missing_inventory_on_gossip ... ok
test tests::test_fetch_missing_inventory_on_schedule ... ok
test tests::test_inbound_connection ... ok
test tests::test_inventory_decode ... ok
test tests::test_init_and_seed ... ok
test tests::test_inventory_relay ... ok
test tests::test_inventory_relay_bad_timestamp ... ok
test tests::test_inventory_sync ... ok
test tests::test_maintain_connections ... ok
test tests::test_maintain_connections_failed_attempt ... ok
test tests::test_maintain_connections_transient ... ok
test tests::test_outbound_connection ... ok
test tests::test_inventory_pruning ... ok
test tests::test_persistent_peer_connect ... ok
test tests::test_persistent_peer_reconnect_success ... ok
test tests::test_persistent_peer_reconnect_attempt ... ok
test tests::test_ping_response ... ok
test tests::test_queued_fetch_from_ann_same_rid ... ok
test tests::test_queued_fetch_from_command_same_rid ... ok
test tests::test_redundant_connect ... ok
test tests::test_queued_fetch_max_capacity ... ok
test tests::test_refs_announcement_followed ... ok
test tests::test_refs_announcement_fetch_trusted_no_inventory ... ok
test tests::test_refs_announcement_no_subscribe ... ok
test tests::test_refs_announcement_offline ... ok
test tests::test_refs_announcement_relay_private ... ok
test tests::test_refs_announcement_relay_public ... ok
test tests::test_refs_synced_event ... ok
test tests::test_seeding ... ok
test wire::frame::test::test_stream_id ... ok
test wire::message::tests::prop_addr ... ok
test tests::test_seed_repo_subscribe ... ok
test wire::message::tests::prop_message_encode_decode ... ok
test wire::message::tests::prop_zero_bytes_encode_decode ... ok
test wire::message::tests::test_inv_ann_max_size ... ok
test wire::message::tests::test_node_ann_max_size ... ok
test wire::message::tests::test_pingpong_encode_max_size ... ok
test wire::message::tests::test_pingpong_encode_size_overflow ... ok
test wire::message::tests::test_refs_ann_max_size ... ok
test wire::protocol::test::test_inventory_ann_with_extension ... ok
test wire::protocol::test::test_pong_message_with_extension ... ok
test wire::tests::prop_filter ... ok
test wire::tests::prop_id ... ok
test wire::tests::prop_oid ... ok
test wire::tests::prop_pubkey ... ok
test wire::tests::prop_refs ... ok
test wire::tests::prop_signature ... ok
test wire::tests::prop_signed_refs ... ok
test wire::tests::prop_string ... ok
test wire::tests::prop_tuple ... ok
test wire::tests::prop_u16 ... ok
test wire::tests::prop_u32 ... ok
test wire::tests::prop_u64 ... ok
test wire::tests::prop_u8 ... ok
test wire::message::tests::prop_message_decoder ... ok
test wire::tests::test_alias ... ok
test wire::tests::test_bounded_vec_limit ... ok
test wire::tests::test_filter_invalid ... ok
test wire::tests::test_string ... ok
test wire::varint::test::prop_encode_decode ... ok
test wire::varint::test::test_encode_overflow - should panic ... ok
test wire::varint::test::test_encoding ... ok
test wire::tests::prop_vec ... ok
test tests::prop_inventory_exchange_dense ... ok
test tests::test_announcement_message_amplification ... ok
test result: ok. 113 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.09s
Running unittests src/main.rs (target/debug/deps/radicle_node-4586763d235addfe)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_remote_helper-f510c8d6e0d1aff2)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/git-remote-rad.rs (target/debug/deps/git_remote_rad-23f52244f7c34e27)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/main.rs (target/debug/deps/radicle_schemars-0de7feb8fe0bc54d)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_signals-0c183d7d8cb1e457)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_ssh-02e22359ef9bf046)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_systemd-28e02dc067eac38d)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_term-98d660e1537ffc71)
running 20 tests
test cell::test::test_width ... ok
test ansi::tests::colors_enabled ... ok
test ansi::tests::colors_disabled ... ok
test element::test::test_width ... ok
test ansi::tests::wrapping ... ok
test element::test::test_truncate ... ok
test table::test::test_table_border_maximized ... ok
test table::test::test_table_border ... ok
test table::test::test_table ... ok
test table::test::test_table_border_truncated ... ok
test table::test::test_table_unicode ... ok
test table::test::test_table_truncate ... ok
test table::test::test_truncate ... ok
test table::test::test_table_unicode_truncate ... ok
test textarea::test::test_wrapping ... ok
test textarea::test::test_wrapping_fenced_block ... ok
test textarea::test::test_wrapping_code_block ... ok
test vstack::test::test_vstack ... ok
test vstack::test::test_vstack_maximize ... ok
test textarea::test::test_wrapping_paragraphs ... ok
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-agent.rs (target/debug/deps/rad_agent-c6a8e90343fd78a8)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-cli-demo.rs (target/debug/deps/rad_cli_demo-cb562126c257adfa)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-init.rs (target/debug/deps/rad_init-21fdd38b329229b1)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-merge.rs (target/debug/deps/rad_merge-78acf6c76bc665ce)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-push.rs (target/debug/deps/rad_push-e527cbc4fe8f1eaa)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-self.rs (target/debug/deps/rad_self-b1947fa27020cbbf)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/rad-set-canonical-refs.rs (target/debug/deps/rad_set_canonical_refs-f0dbdadca308580f)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cli
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cli_test
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cob
running 1 test
test crates/radicle-cob/src/backend/git/stable.rs - backend::git::stable::with_advanced_timestamp (line 56) ... ignored
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_crdt
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_crypto
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_dag
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_fetch
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_node
running 6 tests
test crates/radicle-node/src/bounded.rs - bounded::BoundedVec<T,N>::max (line 96) ... ok
test crates/radicle-node/src/bounded.rs - bounded::BoundedVec<T,N>::truncate (line 50) ... ok
test crates/radicle-node/src/bounded.rs - bounded::BoundedVec<T,N>::push (line 122) ... ok
test crates/radicle-node/src/bounded.rs - bounded::BoundedVec<T,N>::collect_from (line 30) ... ok
test crates/radicle-node/src/bounded.rs - bounded::BoundedVec<T,N>::unbound (line 149) ... ok
test crates/radicle-node/src/bounded.rs - bounded::BoundedVec<T,N>::with_capacity (line 66) ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s
Doc-tests radicle_remote_helper
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_signals
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_ssh
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_systemd
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_term
running 1 test
test crates/radicle-term/src/table.rs - table (line 4) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
Exit code: 0
{
"response": "finished",
"result": "success"
}