receive: repair the pin doctests broken by the identity-binding migration
commit
335ab78receive: 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
Reviews
No reviews of this commit yet — record a verdict below.
Start a review
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(),