Skip to content

Commit

Permalink
Merge branch 'fix-smart-release'
Browse files Browse the repository at this point in the history
  • Loading branch information
Byron committed Oct 10, 2022
2 parents f6b1368 + 118c196 commit aa80b60
Show file tree
Hide file tree
Showing 16 changed files with 111 additions and 103 deletions.
103 changes: 55 additions & 48 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 19 additions & 17 deletions cargo-smart-release/src/command/release/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ fn assure_crates_index_is_uptodate<'meta>(
.find_map(|(d, b)| {
b.latest_release
.as_ref()
.and_then(|lr| (lr >= &b.desired_release).then(|| d))
.and_then(|lr| (lr >= &b.next_release).then(|| d))
})
{
let mut index = crate::crates_index::Index::new_cargo_default()?;
Expand Down Expand Up @@ -225,24 +225,24 @@ fn present_and_validate_dependencies(
if let Some(latest_release) = bump
.latest_release
.as_ref()
.and_then(|lr| (*lr >= bump.desired_release).then(|| lr))
.and_then(|lr| (*lr >= bump.next_release).then(|| lr))
{
let bump_flag = match dep.kind {
dependency::Kind::UserSelection => "--bump <level>",
dependency::Kind::DependencyOrDependentOfUserSelection => "--bump-dependencies <level>",
};
if bump.desired_release == bump.package_version {
log::warn!(
if bump.next_release == bump.package_version {
log::error!(
"'{}' is unchanged. Consider using {} along with --no-bump-on-demand to force a version change.",
dep.package.name,
bump_flag
);
} else {
log::warn!(
log::error!(
"Latest published version of '{}' is {}, the new version is {}. Consider using {} or update the index with --update-crates-index.",
dep.package.name,
latest_release,
bump.desired_release,
bump.next_release,
bump_flag
);
}
Expand Down Expand Up @@ -276,17 +276,19 @@ fn present_and_validate_dependencies(
.unwrap_or_default(),
);
} else {
log::info!(
"Manifest version of {} package '{}' at {} is sufficient{}, ignoring computed version {}",
kind,
dep.package.name,
dep.package.version,
bump.latest_release
.as_ref()
.map(|latest_release| format!(" to succeed latest released version {}", latest_release))
.unwrap_or_else(|| ", creating a new release 🎉".into()),
bump.desired_release
);
if bump.desired_release != dep.package.version {
log::info!(
"Manifest version of {} package '{}' at {} is sufficient{}, ignoring computed version {}",
kind,
dep.package.name,
dep.package.version,
bump.latest_release
.as_ref()
.map(|latest_release| format!(" to succeed latest released version {}", latest_release))
.unwrap_or_else(|| ", creating a new release 🎉".into()),
bump.desired_release
);
}
};
}
dependency::Mode::NotForPublishing { .. } => {}
Expand Down
8 changes: 2 additions & 6 deletions cargo-smart-release/src/git/history.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,8 @@ pub fn collect(repo: &git::Repository) -> anyhow::Result<Option<commit::History>
let (message, tree_id, commit_time, parent_commit_id) = {
let object = commit_id.object()?;
let commit = object.to_commit_ref();
(
commit.message.to_vec(),
commit.tree(),
commit.committer.time,
commit.parents().last(),
)
let parent = commit.parents().next();
(commit.message.to_vec(), commit.tree(), commit.committer.time, parent)
};
(
message,
Expand Down
3 changes: 3 additions & 0 deletions cargo-smart-release/src/version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,11 @@ fn bump_major_minor_patch(v: &mut semver::Version, bump_spec: BumpSpec) -> bool
#[derive(Clone, Debug)]
pub struct Bump {
pub next_release: semver::Version,
/// The current version of the crate as read from Cargo.toml.
pub package_version: semver::Version,
/// The latest released version of the package, as read from the crates-index.
pub latest_release: Option<semver::Version>,
/// The computed version, for example based on a user version bump or a computed version bump.
pub desired_release: semver::Version,
}

Expand Down

0 comments on commit aa80b60

Please sign in to comment.