radicle-heartwood-lfs/crates
Lorenz Leutgeb 3d352f23e6 canonical: Support Annotated Tags
The logic for computing canonical references conflated the semantics of
annotated and lighweight tags, yielding confusing/wrong results. The
main culprit was the call to `peel_to_commit` in
`impl ReadRepository for Repository`, peeling tag objects away.

To resolve this, we separate out quroum computation per object type: one
implementation for commits, and one for tags.

Also move  move canonical error types and methods into their own
module to have a cleaner file structure for the main logic.

Capture the `BTreeMap<Oid, u8>` type into a `Votes` struct, with its own API.

We were getting the objects from the repository twice – once in `Canonical::new`
and once again in `ensure_commit_or_tag` – so the latter was removed.

Use an `enum CanonicalObject` to specify which object types the canonical
process supports.

During `converges`, separate commits and tags, and ensure that we are only
looking at objects of one type. Note, that Fintan think this is actually the
*wrong* place to do it because we already filter the objects – so we should
keep track of that information higher up the callstack.

Co-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>
2025-08-04 17:00:54 +02:00
..
radicle canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
radicle-cli canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
radicle-cli-test repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-cob chore: Automated fixes generated by clippy 2025-07-25 11:25:05 +02:00
radicle-crypto ssh: Use winpipe for SSH agent on Windows 2025-07-23 10:31:15 +02:00
radicle-dag repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-fetch clippy: Allow doc_overindented_list_items 2025-07-27 23:32:02 +02:00
radicle-node canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
radicle-protocol canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
radicle-remote-helper canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
radicle-schemars chore: Automated fixes generated by clippy 2025-07-25 11:25:05 +02:00
radicle-signals repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-ssh ssh: provide path on connect error 2025-07-23 10:31:15 +02:00
radicle-systemd repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-term chore: Automated fixes generated by clippy 2025-07-25 11:25:05 +02:00