git-ents.gitmain
⌘K
foforge
commit 335ab78
receive: repair the pin doctests broken by the identity-binding migration

The composite review_ref/review_pin_ref signatures and Effect.name field from the kernel migration left three doctests uncompilable; nextest does not run doctests, so the WS-1 gate missed them. Pass the member segment and the effect name, and bring RefStoreRead into scope for the ref reads.

fix: pass the member segment to review_ref/review_pin_ref in propose doctests fix: add the name field to the Effect built in the reconcile doctest Assisted-by: Claude:claude-opus-4-8

Joseph D. Carpinelli · 1 month ago

Reviews

No reviews of this commit yet — record a verdict below.

Start a review

verdict

crates/kernel/ents-receive/src/propose.rs @@ -263,7 +263,7 @@ /// # Examples /// /// ``` -/// use ents_model::{Provenance, namespace}; +/// use ents_model::{MemberId, Provenance, namespace}; /// use ents_receive::{Identity, Mode, NullEventSink, TxResult, propose_pin}; /// use ents_testutil::{CommitSpec, Keypair, MemRefStore, ObjectStore, empty_tree, enroll_member}; /// use gix_object::Write as _; @@ -281,7 +281,7 @@ /// None, /// ); /// -/// let name = namespace::review_pin_ref("7").expect("valid"); +/// let name = namespace::review_pin_ref("7", &MemberId::new("admin")).expect("valid"); /// let identity = Identity { /// actor: gix::actor::Signature { /// name: "admin".into(), @@ -367,10 +367,11 @@ /// # Examples /// /// ``` -/// use ents_model::{Provenance, namespace}; +/// use ents_model::{MemberId, Provenance, namespace}; /// use ents_receive::{Identity, Mode, NullEventSink, TxResult, propose_entity_with_pin}; /// use ents_testutil::{CommitSpec, Keypair, MemRefStore, ObjectStore, empty_tree, enroll_member}; /// use facet::Facet; +/// use gix_ref_store::RefStoreRead as _; /// /// # #[derive(Facet)] /// # struct Review { verdict: String } @@ -395,17 +396,18 @@ /// sign: &|payload| admin.sign(payload), /// }; /// +/// let member = MemberId::new("admin"); /// let outcome = propose_entity_with_pin( /// &refs, &objects, &NullEventSink, -/// namespace::review_ref("7").expect("valid"), &Review { verdict: "approve".into() }, -/// namespace::review_pin_ref("7").expect("valid"), reviewed, +/// namespace::review_ref("7", &member).expect("valid"), &Review { verdict: "approve".into() }, +/// namespace::review_pin_ref("7", &member).expect("valid"), reviewed, /// &identity, "Review 7", "Pin review 7", Mode::Advisory, /// ) /// .expect("reaches an outcome"); /// assert_eq!(outcome.result, TxResult::Applied); /// // Both refs advanced together. -/// assert!(refs.get(namespace::review_ref("7").expect("valid").as_ref()).expect("read").is_some()); -/// assert!(refs.get(namespace::review_pin_ref("7").expect("valid").as_ref()).expect("read").is_some()); +/// assert!(refs.get(namespace::review_ref("7", &member).expect("valid").as_ref()).expect("read").is_some()); +/// assert!(refs.get(namespace::review_pin_ref("7", &member).expect("valid").as_ref()).expect("read").is_some()); /// ``` // @relation(receive.multi-ref-atomicity, model.review, model.review-pin, scope=function) #[expect(
crates/kernel/ents-receive/src/reconcile.rs @@ -110,6 +110,7 @@ /// let commits = advance_ref(&refs, &objects, "refs/heads/main", 1, 100); /// /// let effect = Effect { +/// name: "unit".to_owned(), /// trigger: "rev(refs/heads/main)".to_owned(), /// toolchains: vec![], /// run: "true".to_owned(),