See RIP-00041 for the specification.
This patch is an implementation of RIP-0004. It implements the rules mechanism
within the rules module. This is interplays with the existing canonical
mechanisms, already defined (but slightly refactored).
The rules are then used in pushing and fetching references. A test is added to
illustrate the canonical references in action via tags.
There were some incidental changes that were made to ensure the tags use case is
easy for users. The first change was to add a tags refspec to remotes in order
to easily fetch tags from peers – as well ensuring those tags do not pollute
the refs/tags namespace in the working copy.
This had a knock on change where there was a bug libgit2 that didn’t allow for
deleting multivar entries, which the new remote setup fell under. This was
fixed and so we update to git2-0.19.
As well this, the rad id update command would error if the payload identifier
was not the project identifier. This would stop adding new payloads to extend
the identity – which was needed for introducing canonical references.
https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z3trNYnLWS11cJWC6BbxDs5niGo82/patches/1d1ce874f7c39ecdcd8c318bbae46ffd02fe1ea8?tab=changes
See RIP-00041 for the specification.
This patch is an implementation of RIP-0004. It implements the rules mechanism
within the rules module. This is interplays with the existing canonical
mechanisms, already defined (but slightly refactored).
The rules are then used in pushing and fetching references. A test is added to
illustrate the canonical references in action via tags.
There were some incidental changes that were made to ensure the tags use case is
easy for users. The first change was to add a tags refspec to remotes in order
to easily fetch tags from peers – as well ensuring those tags do not pollute
the refs/tags namespace in the working copy.
This had a knock on change where there was a bug libgit2 that didn’t allow for
deleting multivar entries, which the new remote setup fell under. This was
fixed and so we update to git2-0.19.
As well this, the rad id update command would error if the payload identifier
was not the project identifier. This would stop adding new payloads to extend
the identity – which was needed for introducing canonical references.
https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z3trNYnLWS11cJWC6BbxDs5niGo82/patches/1d1ce874f7c39ecdcd8c318bbae46ffd02fe1ea8?tab=changes
Major Update
See commits for all details, but basically it was the yak shave of a lifetime.
Changes:
- Remove use of
--tagsflag ingit-tagtest - Use
EntryKeyinstead ofObjectIdinChangeGraphto simplify getting the root entry. This means thattimestamp_ofis only used in theGraphBuilder.
Changes:
- Introduce
VersionGroupId - Update test SHAs
- Handle ordering case in identity test, where we expect the commit to happen later (uses unsafe and manipulating env var)
- Introduce migration code for
Docs - Introduce
rad id migrate
Changes:
- Rebased on Patch 52f287f50c5d62c815bf3878b398b708f60c9b46
- Removed `VersionGroupId``
Changes:
- Rebased on c7f00b1c
- Missing commit for incorporating rules into identity doc
Changes:
- Fixups in documentation and tests
Changes:
- Disallow
rad/sigrefsrule - Add test for failing validation with
rad/idandrad/sigrefs
Changes:
- Rename delegates field and type to
allowandAllowed - Rename token from
$identitytodelegates - Use
BTreeMaps instead ofVec.- This required rethinking using
QualifiedPattern, and instead using a newtype,Pattern, that implementedOrdby specificity. Patternalso disqualifies any use ofrefs/rad
- This required rethinking using
- Add
From<Did> for doc::Delegatesto infallibly construct the set with a singleDid. - Changes
extensionsto a JSON map - Derive
DeserializeforRule, but only via the privateSealedtrait - Changed the
FnMutresolve callback to beFn - Required updating all the
radicle-clitests - Added other QoL API improvements
Rebased on master @ 3b5fac178eaf9bca639fbd0c1df0c68619a7f51f
Changes:
- Document
RawCanonicalRefsandCanonicalRefs
Changes:
- Rebased
- Rename
canonical-reftocref - Order enum variant in
canonical-ref.rs - Fix wording in example tests
- Avoid removing
rad-configtests - Use
saturating_subforthresholdcalculation inradicle-fetch
Rebased
Changes:
- Stricter version parsing
- Using
VersionedRawDocto enumerate each version of theRawDocs - Singleton approach for version numbers in the docs
- Better renaming of CLI cref module
- Fix docs for
rad id migrate
Changes:
- Remove
MatchedRule - Refactoring of
Canonical - General fixes
Changes:
- Addressed erik’s feedback
Changes:
- Fixed
cargo docerrors - Fixed cli test errors
Rebased