From b5356a29b8f473bd2b641a9303cb40e87f5cf64f Mon Sep 17 00:00:00 2001 From: squidfunk Date: Wed, 17 Dec 2025 10:45:33 +0100 Subject: [PATCH 1/2] feature: add `len` and `is_empty` impl to `Versions` Signed-off-by: squidfunk --- crates/mono-repository/src/repository/versions.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 // ---------------------------------------------------------------------------- From b211097316ea067294e1b46e31314e0da6b9674c Mon Sep 17 00:00:00 2001 From: squidfunk Date: Wed, 17 Dec 2025 10:47:23 +0100 Subject: [PATCH 2/2] fix: no package considered changed if no version has been created Signed-off-by: squidfunk --- crates/mono/src/cli/command/version/changed.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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}"); }