pub struct RuntimeOptions {Show 28 fields
pub allow_dirty: bool,
pub skip_ownership_check: bool,
pub strict_ownership: bool,
pub no_verify: bool,
pub max_attempts: u32,
pub base_delay: Duration,
pub max_delay: Duration,
pub retry_strategy: RetryStrategyType,
pub retry_jitter: f64,
pub retry_per_error: PerErrorConfig,
pub verify_timeout: Duration,
pub verify_poll_interval: Duration,
pub state_dir: PathBuf,
pub force_resume: bool,
pub policy: PublishPolicy,
pub verify_mode: VerifyMode,
pub readiness: ReadinessConfig,
pub output_lines: usize,
pub force: bool,
pub lock_timeout: Duration,
pub parallel: ParallelConfig,
pub webhook: WebhookConfig,
pub encryption: EncryptionConfig,
pub registries: Vec<Registry>,
pub resume_from: Option<String>,
pub rehearsal_registry: Option<String>,
pub rehearsal_skip: bool,
pub rehearsal_smoke_install: Option<String>,
}Expand description
Runtime configuration options for a Shipper publish operation.
This struct contains all the tunable parameters that control how Shipper executes a publish operation, including retry behavior, verification settings, and output preferences.
§Example
use std::path::PathBuf;
use shipper::types::{RuntimeOptions, PublishPolicy, ParallelConfig};
let options = RuntimeOptions {
allow_dirty: false,
skip_ownership_check: false,
strict_ownership: true,
no_verify: false,
max_attempts: 3,
base_delay: std::time::Duration::from_secs(1),
max_delay: std::time::Duration::from_secs(60),
retry_strategy: shipper::retry::RetryStrategyType::Exponential,
retry_jitter: 0.3,
retry_per_error: shipper::retry::PerErrorConfig::default(),
verify_timeout: std::time::Duration::from_secs(600),
verify_poll_interval: std::time::Duration::from_secs(10),
state_dir: PathBuf::from(".shipper"),
force_resume: false,
policy: PublishPolicy::Safe,
verify_mode: shipper::types::VerifyMode::Workspace,
readiness: shipper::types::ReadinessConfig::default(),
output_lines: 1000,
force: false,
lock_timeout: std::time::Duration::from_secs(3600),
parallel: ParallelConfig::default(),
webhook: shipper::webhook::WebhookConfig::default(),
encryption: shipper::encryption::EncryptionConfig::default(),
registries: vec![],
};Fields§
§allow_dirty: boolAllow publishing from a dirty git working tree.
skip_ownership_check: boolSkip crate-ownership preflight checks.
strict_ownership: boolFail preflight if ownership verification fails.
no_verify: boolPass --no-verify to cargo publish (skip pre-publish build).
max_attempts: u32Maximum number of publish attempts per crate.
base_delay: DurationInitial backoff delay between retries.
max_delay: DurationUpper bound on backoff delay.
retry_strategy: RetryStrategyTypeRetry strategy type: immediate, exponential, linear, constant
retry_jitter: f64Jitter factor for retry delays
retry_per_error: PerErrorConfigPer-error-type retry configuration
verify_timeout: DurationTimeout for the workspace-level dry-run verification step.
verify_poll_interval: DurationPoll interval for the dry-run verification step.
state_dir: PathBufDirectory for persisted state, receipts, and event logs.
force_resume: boolForce resume even when the plan ID has changed.
policy: PublishPolicyPublishing policy preset (safe / balanced / fast).
verify_mode: VerifyModeDry-run verification mode (workspace / package / none).
readiness: ReadinessConfigReadiness (post-publish visibility) configuration.
output_lines: usizeNumber of stdout/stderr lines to capture as evidence.
force: boolForce override of existing locks
lock_timeout: DurationLock timeout duration (after which locks are considered stale)
parallel: ParallelConfigParallel publishing configuration
webhook: WebhookConfigWebhook configuration for publish notifications
encryption: EncryptionConfigEncryption configuration for state files
registries: Vec<Registry>Target registries for multi-registry publishing
resume_from: Option<String>Optional package name to resume from (skips all packages before this one)
rehearsal_registry: Option<String>Rehearsal registry name (#97) — if Some, shipper rehearse publishes
to this registry as phase-2 proof before live dispatch. None means
rehearsal is disabled (the default; opt-in until phase-2 stabilizes).
The name must resolve against the configured Self::registries at
runtime; engine::run_rehearsal errors clean otherwise.
rehearsal_skip: boolOperator override — explicitly skip rehearsal even if a
Self::rehearsal_registry is configured (#97). Default false.
When the hard gate lands (#97 PR 3), live publish will refuse to run
without this flag if rehearsal has not passed for the current plan_id.
rehearsal_smoke_install: Option<String>Crate name to install via cargo install --registry <rehearsal>
after all rehearsal publishes succeed (#97 PR 4). This is the
install/smoke check that proves end-to-end registry-index
resolution — the scenario that killed the rc.1 first-publish.
None means no smoke install (opt-in). The named crate must
exist in the plan AND have a [[bin]] target.
Trait Implementations§
Source§impl Clone for RuntimeOptions
impl Clone for RuntimeOptions
Source§fn clone(&self) -> RuntimeOptions
fn clone(&self) -> RuntimeOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more