radicle-heartwood-lfs/crates
Adrian Duke da2c523d41 radicle/cob/identity: Add Property Tests
Introduce a property testing harness for asserting a set of properties expected
of the repository identity.

The harness uses the `Network` fixture for providing four nodes that can
interact with the repository identity. The state of the harness is advanced by
providing an actor and operation on the identity document. Invariants are then
asserted about the identity.

The current invariants are:
- The `current` revision is the one and only `Accepted` revision.
- The chain of revisions is valid. That is, `Active` revisions only have a
  parent that is `Accepted`, and not `Rejected` or `Redacted`.
- `Active` revisions do not contain a majority approval.
- `Accepted` revisions contain a majority approval.
- `Rejected` revisions do not contain a majority approval.
- For each revision, at most one child is `Accepted`.
- For each revision, if any of its children is `Accepted`, all other
  children are `Rejected`.
- A revision which is `Rejected(RejectedBy::Parent)` has a parent that
  is `Rejected`.
- A revision which is `Redacted(RedactedBy::Parent)` has a parent that
  is `Redacted`.
- For each revision that is `Rejected` or `Redacted`, none of its
  children is `Active`.
- A sibling or ancestor revision's rejected state applies to its sibling or
  descendant.
- The repository identity documents converge when all nodes have applied all
  operations.
2026-07-03 15:22:13 +01:00
..
radicle radicle/cob/identity: Add Property Tests 2026-07-03 15:22:13 +01:00
radicle-cli radicle/cob/identity: Rewrite Evaluation 2026-07-02 09:56:22 +01:00
radicle-cli-test cli-test: Disable normalizing paths 2026-06-03 11:49:41 +02:00
radicle-cob cob/change_graph: Log Errors 2026-05-28 16:58:55 +01:00
radicle-core core: Release 0.3.0 2026-05-06 21:00:14 +01:00
radicle-crypto crypto: Handle default `SSH_AUTH_SOCK` on Windows 2026-05-26 09:18:07 +02:00
radicle-dag rust/msrv: 1.85.0 → 1.88.0 2026-05-11 11:23:18 +01:00
radicle-fetch fetch: Update gix packages 2026-05-18 14:57:33 +02:00
radicle-git-metadata rust/msrv: 1.85.0 → 1.88.0 2026-05-11 11:23:18 +01:00
radicle-git-ref-format git-ref-format: New crate 2025-10-13 13:34:15 +02:00
radicle-localtime localtime: add description in Cargo.toml 2026-02-20 13:48:14 +00:00
radicle-log log: New crate for logger implementations 2026-05-11 16:44:37 +01:00
radicle-node node/wire: Test connected node removes active fetch 2026-06-22 18:02:57 +01:00
radicle-oid oid: Release 0.2.0 2026-05-06 21:00:14 +01:00
radicle-protocol fetcher: Test removing active fetch from another node 2026-06-22 18:02:57 +01:00
radicle-remote-helper remote-helper: Introduce magic push ref 'refs/for/' 2026-06-09 11:37:26 +02:00
radicle-schemars schemars: Release 0.8.0 2026-05-06 21:15:54 +01:00
radicle-signals rust/edition/fmt: 2021 → 2024 2026-03-30 16:57:51 +02:00
radicle-systemd systemd: Release 0.13.0 2026-05-06 21:00:14 +01:00
radicle-term Fix NO_COLOR to only suppress colors, not all ANSI styles 2026-06-23 17:23:36 +01:00
radicle-windows rust/edition/fmt: 2021 → 2024 2026-03-30 16:57:51 +02:00