pub struct BumpPlan {
pub level: BumpLevel,
pub from_version: String,
pub to_version: String,
pub pin_rewrites: Vec<PinRewrite>,
pub changelog_finalize: bool,
pub bump_hook: Option<String>,
}Expand description
The engine-owned version-bump phase’s deterministic edit set (release-rust- workspace-multicrate facet 2) — the content-addressed intent the
PlanPhase::Bump phase applies at cut time.
The human supplies only the semantic bump level; the engine
computes to_version from from_version
(the current manifest version) + that level (major → X+1.0.0, minor → X.Y+1.0,
patch → X.Y.Z+1). There is no hand-typed literal version — this honours the
single-source-version decision (release-drop-version-flag): the number is
derived, never dictated. Every field is part of the sealed pre-image, so a
different bump level or a different derived edit set is drift.
Fields§
§level: BumpLevelThe semantic bump level the human requested (--bump major|minor|patch).
from_version: StringThe current workspace version the bump was computed from (read from
[workspace.package] version).
to_version: StringThe computed new version the bump lands at — set into [workspace.package] version and threaded into every publish/tag as the release version.
pin_rewrites: Vec<PinRewrite>The intra-workspace =-version pin rewrites the bump applies, one per
(dependent-crate → pinned workspace dependency) edge whose pin tracks the
bumped version (e.g. the bin’s lib = "=<from>" → lib = "=<to>"). Sorted,
deterministic; empty for a single-crate workspace with no intra-workspace pins.
changelog_finalize: boolWhether the bump finalizes the CHANGELOG ([Unreleased] → a dated
[to_version] section). The concrete date is a cut-time value and is
deliberately not sealed (it would make the plan_id change per day); the
changelog mode that governs the finalize is already part of the hashed
contract. false only when the contract declares no changelog machinery.
bump_hook: Option<String>The contract-declared command the engine runs in the clean checkout after the
version edits (release.bump_hook), so version-embedding artifacts (test
snapshots that embed the version) regenerate against the new version before the
bump commit — release-rust-workspace-multicrate facet 3. null = no hook.
Copied from the (already-hashed) contract; carried here so the executor need
not re-read it.
Trait Implementations§
impl Eq for BumpPlan
impl StructuralPartialEq for BumpPlan
Auto Trait Implementations§
impl Freeze for BumpPlan
impl RefUnwindSafe for BumpPlan
impl Send for BumpPlan
impl Sync for BumpPlan
impl Unpin for BumpPlan
impl UnsafeUnpin for BumpPlan
impl UnwindSafe for BumpPlan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.