diff --git a/crates/mono/src/cli/command/version/changed.rs b/crates/mono/src/cli/command/version/changed.rs index c1892de..adba373 100644 --- a/crates/mono/src/cli/command/version/changed.rs +++ b/crates/mono/src/cli/command/version/changed.rs @@ -91,7 +91,9 @@ where // packages to standard output if they have a version increment let dependents = context.workspace.dependents()?; for node in &dependents { - if increments[node].is_some() { + // In case no versions have been created so far, all packages must + // be considered changed to be included in the initial release + if increments[node].is_some() || versions.is_empty() { let name = dependents[node].name().expect("invariant"); println!("{name}"); } diff --git a/crates/mono/src/cli/command/version/create.rs b/crates/mono/src/cli/command/version/create.rs index a66b3c3..422c5a4 100644 --- a/crates/mono/src/cli/command/version/create.rs +++ b/crates/mono/src/cli/command/version/create.rs @@ -72,7 +72,7 @@ where // Obtain version increments, which denote which packages have changed, // and abort immediately if there are no changes that require a release let mut increments = changeset.increments().to_vec(); - if increments.iter().all(Option::is_none) { + if !versions.is_empty() && increments.iter().all(Option::is_none) { eprintln!("Nothing to release"); return Ok(()); }