Skip to content

Commit aac2e4b

Browse files
committed
Adapt to changes in cargo_metadata
`cargo_metadata`, starting in version 0.20.0, holds package names in some of its public data structures in a `PackageName` type that performs validation. This type is defined in `cargo-util-schemas`: - oli-obk/cargo_metadata@e3373d0 - https://docs.rs/cargo-util-schemas/0.2.0/cargo_util_schemas/manifest/struct.PackageName.html Code in `cargo-smart-release` that assumed `String` must, in some places, be adjusted to accommodate `PackageName<String>` instead. This makes such changes, including replacing `&` with `.as_str()`, and `.clone()` or `.to_owned()` with `.to_string()`, where needed. (At least at this time, `cargo-smart-release` itself continues to represent package names as `String`.)
1 parent ff64e06 commit aac2e4b

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

src/command/release/cargo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ pub(in crate::command::release_impl) fn publish_crate(
4545
}
4646
c.arg("--manifest-path").arg(&publishee.manifest_path);
4747
if prevent_default_members {
48-
c.arg("--package").arg(&publishee.name);
48+
c.arg("--package").arg(publishee.name.as_str());
4949
}
5050
if verbose {
5151
log::trace!("{} run {:?}", will(!cargo_must_run), c);

src/command/release/manifest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,11 +521,11 @@ fn set_version_and_update_package_dependency(
521521
}
522522
}
523523
for (dep_table, dep_type) in find_dependency_tables(&mut doc) {
524-
for (name_to_find, new_version) in crates.iter().map(|(p, nv)| (&p.name, nv)) {
524+
for (name_to_find, new_version) in crates.iter().map(|(p, nv)| (p.name.as_str(), nv)) {
525525
for name_to_find in package_to_update
526526
.dependencies
527527
.iter()
528-
.filter(|dep| &dep.name == name_to_find)
528+
.filter(|dep| dep.name == name_to_find)
529529
.map(|dep| dep.rename.as_ref().unwrap_or(&dep.name))
530530
{
531531
let Some(name_table) = dep_table

src/traverse.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ fn forward_propagate_breaking_changes_for_manifest_updates<'meta>(
305305
let adjustment = VersionAdjustment::Breakage {
306306
bump,
307307
change: None,
308-
causing_dependency_names: vec![dependee.package.name.to_owned()],
308+
causing_dependency_names: vec![dependee.package.name.to_string()],
309309
};
310310
new_crates_this_round.push(Dependency {
311311
package: dependant,
@@ -407,7 +407,7 @@ impl EditForPublish {
407407
let causing_dependency_names = self
408408
.causing_dependency_indices
409409
.into_iter()
410-
.map(|idx| crates[idx].package.name.clone())
410+
.map(|idx| crates[idx].package.name.to_string())
411411
.collect();
412412
let dep_mut = &mut crates[self.crates_idx];
413413
if is_pre_release_version(&dep_mut.package.version) || allow_auto_publish_of_stable_crates {

src/utils.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,20 @@ pub fn version_req_unset_or_default(req: &VersionReq) -> bool {
6464

6565
pub fn package_eq_dependency_ignore_dev_without_version(package: &Package, dependency: &Dependency) -> bool {
6666
(dependency.kind != DependencyKind::Development || !version_req_unset_or_default(&dependency.req))
67-
&& package.name == dependency.name
67+
&& package.name.as_str() == dependency.name
6868
}
6969

7070
pub fn workspace_package_by_dependency<'a>(meta: &'a Metadata, dep: &Dependency) -> Option<&'a Package> {
7171
meta.packages
7272
.iter()
73-
.find(|p| p.name == dep.name && p.source.as_ref().is_none_or(|s| !s.is_crates_io()))
73+
.find(|p| p.name.as_str() == dep.name && p.source.as_ref().is_none_or(|s| !s.is_crates_io()))
7474
.filter(|p| meta.workspace_members.iter().any(|m| m == &p.id))
7575
}
7676

7777
pub fn package_by_name<'a>(meta: &'a Metadata, name: &str) -> anyhow::Result<&'a Package> {
7878
meta.packages
7979
.iter()
80-
.find(|p| p.name == name && p.source.as_ref().is_none_or(|s| !s.is_crates_io()))
80+
.find(|p| p.name.as_str() == name && p.source.as_ref().is_none_or(|s| !s.is_crates_io()))
8181
.ok_or_else(|| anyhow!("workspace member '{}' must be a listed package", name))
8282
}
8383

0 commit comments

Comments
 (0)