diff --git a/crates/mono-repository/src/repository/versions.rs b/crates/mono-repository/src/repository/versions.rs index 1739095..bae364c 100644 --- a/crates/mono-repository/src/repository/versions.rs +++ b/crates/mono-repository/src/repository/versions.rs @@ -154,6 +154,21 @@ impl Versions<'_> { } } +#[allow(clippy::must_use_candidate)] +impl Versions<'_> { + /// Returns the number of versions. + #[inline] + pub fn len(&self) -> usize { + self.tags.len() + } + + /// Returns whether there are any versions. + #[inline] + pub fn is_empty(&self) -> bool { + self.tags.is_empty() + } +} + // ---------------------------------------------------------------------------- // Trait implementations // ---------------------------------------------------------------------------- diff --git a/crates/mono/src/cli/command/version/changed.rs b/crates/mono/src/cli/command/version/changed.rs index ec8fa6b..8a6ae87 100644 --- a/crates/mono/src/cli/command/version/changed.rs +++ b/crates/mono/src/cli/command/version/changed.rs @@ -70,7 +70,9 @@ where let increments = changeset.increments(); 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}"); }