pub struct ReleasePlan {
pub plan_version: String,
pub plan_id: String,
pub created_at: DateTime<Utc>,
pub registry: Registry,
pub packages: Vec<PlannedPackage>,
pub dependencies: BTreeMap<String, Vec<String>>,
}Expand description
A deterministic, identified plan for publishing a workspace.
The release plan is generated by shipper::plan::build_plan and contains
all information needed to execute the publish operation. It includes:
- A unique plan ID (SHA256 hash of relevant content)
- Ordered list of packages to publish
- Dependency information for parallel publishing
- Registry configuration
§Example
ⓘ
let plan = plan::build_plan(&spec)?;
println!("Publishing {} packages:", plan.plan.packages.len());
for pkg in &plan.plan.packages {
println!(" {} {}", pkg.name, pkg.version);
}§Resumability
The plan ID is stable across runs if the workspace metadata doesn’t change. This allows Shipper to detect when a resumed operation is using the same plan.
Fields§
§plan_version: String§plan_id: String§created_at: DateTime<Utc>§registry: Registry§packages: Vec<PlannedPackage>Packages in publish order (dependencies first).
dependencies: BTreeMap<String, Vec<String>>Map of package name -> set of package names it depends on (within the plan). This is used for level-based parallel publishing.
Implementations§
Source§impl ReleasePlan
impl ReleasePlan
Sourcepub fn group_by_levels(&self) -> Vec<PublishLevel>
pub fn group_by_levels(&self) -> Vec<PublishLevel>
Group packages by dependency level for parallel publishing.
Packages at the same level have no dependencies on each other and can be published concurrently.
Trait Implementations§
Source§impl Clone for ReleasePlan
impl Clone for ReleasePlan
Source§fn clone(&self) -> ReleasePlan
fn clone(&self) -> ReleasePlan
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ReleasePlan
impl Debug for ReleasePlan
Source§impl<'de> Deserialize<'de> for ReleasePlan
impl<'de> Deserialize<'de> for ReleasePlan
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ReleasePlan
impl RefUnwindSafe for ReleasePlan
impl Send for ReleasePlan
impl Sync for ReleasePlan
impl Unpin for ReleasePlan
impl UnsafeUnpin for ReleasePlan
impl UnwindSafe for ReleasePlan
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
Mutably borrows from an owned value. Read more