radicle-heartwood-lfs/crates/radicle/src
Lorenz Leutgeb 372a78754a radicle/sigrefs: Implement feature detection
To be able to reason about backwards compatibility, downgrade attacks,
and future configurable enforcement of minimum required (security)
features, introduce the concept of a "feature level" in Signed
References.

In this implementation feature levels are assumed to be monotonic, i.e.,
that higher feature levels behave like lower ones, and only add
semantics on top.

Implementing this as an `enum` that is `Ord` flows nicely.

Treatment of the write-side is left for the next commit. Currently,
the write side "promises" `FeatureLevel::Parent`, but is not able
to "keep the promise", since it does not actually inspect the
feature level of the head in case it is unchanged.

CHANGELOG
2026-03-24 14:40:42 +00:00
..
canonical radicle/canonical: provide public Canonical JSON link 2026-01-22 09:10:53 +00:00
cob radcile/cob/identity: mark ApplyError as non_exhaustive 2026-02-19 21:06:43 +01:00
git radicle/sigrefs: Rewrite Signed References 2026-03-17 21:31:42 +01:00
identity radicle/sigrefs: Switch to new implementation 2026-03-17 21:31:42 +01:00
logger radicle: Move logging setup calls to binaries 2025-08-07 08:30:59 +01:00
node radicle/node/db: Fix type of IPv6 addresses 2026-03-19 21:07:51 +00:00
profile radicle: Introduce `radicle::node::config::Scope` 2026-02-16 21:39:11 +01:00
storage radicle/sigrefs: Implement feature detection 2026-03-24 14:40:42 +00:00
test radicle/sigrefs: Implement feature detection 2026-03-24 14:40:42 +00:00
canonical.rs radicle/canonical: provide public Canonical JSON link 2026-01-22 09:10:53 +00:00
cli.rs repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
cob.rs workspace: A Little Less `git2` 2025-10-13 16:14:23 +02:00
collections.rs repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
explorer.rs radicle/explorer: Allow overriding default URL 2025-09-04 16:44:05 +03:00
git.rs radicle/sigrefs: Rewrite Signed References 2026-03-17 21:31:42 +01:00
identity.rs radicle: canonical references payload 2025-07-16 16:41:16 +02:00
io.rs radicle: Only set file limits on Unix 2025-07-23 10:31:13 +02:00
lib.rs crypto: Remove markers `Verified` and `Unverified` 2026-03-17 21:31:42 +01:00
logger.rs radicle: Move logging setup calls to binaries 2025-08-07 08:30:59 +01:00
node.rs radicle/node: Do not error on IPv6 without `[]` 2026-03-19 11:52:04 +01:00
profile.rs radicle: remove `TryFrom` 2026-03-13 14:47:24 +01:00
rad.rs radicle/sigrefs: Implement feature detection 2026-03-24 14:40:42 +00:00
schemars_ext.rs crypto: Optionally provide JSON Schema 2026-02-10 09:39:34 +00:00
serde_ext.rs localtime: localise the localtime dependency 2026-01-08 14:58:41 +01:00
sql.rs radicle: Re-export `radicle_core::RepoId` 2026-01-09 14:04:18 +01:00
storage.rs radicle/sigrefs: Implement feature detection 2026-03-24 14:40:42 +00:00
test.rs workspace: A Little Less `git2` 2025-10-13 16:14:23 +02:00
version.rs repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
web.rs radicle: Keep pinned repos ordered in config 2025-07-19 12:59:02 +01:00