From 062b2b971d5fb87230e8c12023b865621c72e5a4 Mon Sep 17 00:00:00 2001 From: heisen-li Date: Tue, 16 Apr 2024 18:07:00 +0800 Subject: [PATCH 1/2] deprecate [project] --- crates/cargo-util-schemas/src/manifest/mod.rs | 3 +- src/cargo/util/toml/mod.rs | 57 ++++++++++-------- tests/testsuite/alt_registry.rs | 2 +- tests/testsuite/check.rs | 59 +------------------ tests/testsuite/owner.rs | 4 +- tests/testsuite/publish.rs | 2 +- tests/testsuite/yank.rs | 2 +- 7 files changed, 41 insertions(+), 88 deletions(-) diff --git a/crates/cargo-util-schemas/src/manifest/mod.rs b/crates/cargo-util-schemas/src/manifest/mod.rs index 57e97e96484..03fe4f8cc25 100644 --- a/crates/cargo-util-schemas/src/manifest/mod.rs +++ b/crates/cargo-util-schemas/src/manifest/mod.rs @@ -32,7 +32,6 @@ pub struct TomlManifest { // when adding new fields, be sure to check whether `requires_package` should disallow them pub cargo_features: Option>, pub package: Option>, - pub project: Option>, pub profile: Option, pub lib: Option, pub bin: Option>, @@ -87,7 +86,7 @@ impl TomlManifest { } pub fn package(&self) -> Option<&Box> { - self.package.as_ref().or(self.project.as_ref()) + self.package.as_ref() } pub fn dev_dependencies(&self) -> Option<&BTreeMap> { diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs index 9cf3bc9e957..2d69bcb60f3 100644 --- a/src/cargo/util/toml/mod.rs +++ b/src/cargo/util/toml/mod.rs @@ -268,7 +268,6 @@ fn resolve_toml( let mut resolved_toml = manifest::TomlManifest { cargo_features: original_toml.cargo_features.clone(), package: None, - project: None, profile: original_toml.profile.clone(), lib: original_toml.lib.clone(), bin: original_toml.bin.clone(), @@ -935,28 +934,41 @@ fn to_real_manifest( ); }; - let original_package = match (&original_toml.package, &original_toml.project) { - (Some(_), Some(project)) => { - warnings.push(format!( - "manifest at `{}` contains both `project` and `package`, \ - this could become a hard error in the future", - package_root.display() - )); - project.clone() + let package_name = match &original_toml.package { + Some(package) => { + package.clone().name } - (Some(package), None) => package.clone(), - (None, Some(project)) => { - warnings.push(format!( - "manifest at `{}` contains `[project]` instead of `[package]`, \ - this could become a hard error in the future", - package_root.display() - )); - project.clone() + None => { + bail!("no `package` section found"); } - (None, None) => bail!("no `package` section found"), }; - let package_name = &original_package.name; + // let original_package = match (&original_toml.package, &original_toml.project) { + // (Some(_), Some(project)) => { + // bail!(format!( + // "manifest at `{}` contains both `project` and `package`", + // package_root.display() + // )); + // // warnings.push(format!( + // // "manifest at `{}` contains both `project` and `package`, \ + // // this could become a hard error in the future", + // // package_root.display() + // // )); + // project.clone() + // } + // (Some(package), None) => package.clone(), + // (None, Some(project)) => { + // warnings.push(format!( + // "manifest at `{}` contains `[project]` instead of `[package]`, \ + // this could become a hard error in the future", + // package_root.display() + // )); + // project.clone() + // } + // (None, None) => bail!("no `package` section found"), + // }; + + // let package_name = &original_package.name; if package_name.contains(':') { features.require(Feature::open_namespaces())?; } @@ -1068,7 +1080,7 @@ fn to_real_manifest( let targets = to_targets( &features, &resolved_toml, - package_name, + &package_name, package_root, edition, &resolved_package.build, @@ -1109,7 +1121,7 @@ fn to_real_manifest( validate_dependencies(original_toml.dependencies.as_ref(), None, None, warnings)?; if original_toml.dev_dependencies.is_some() && original_toml.dev_dependencies2.is_some() { - warn_on_deprecated("dev-dependencies", package_name, "package", warnings); + warn_on_deprecated("dev-dependencies", &package_name, "package", warnings); } validate_dependencies( original_toml.dev_dependencies(), @@ -1118,7 +1130,7 @@ fn to_real_manifest( warnings, )?; if original_toml.build_dependencies.is_some() && original_toml.build_dependencies2.is_some() { - warn_on_deprecated("build-dependencies", package_name, "package", warnings); + warn_on_deprecated("build-dependencies", &package_name, "package", warnings); } validate_dependencies( original_toml.build_dependencies(), @@ -2444,7 +2456,6 @@ fn prepare_toml_for_publish( let all = |_d: &manifest::TomlDependency| true; let mut manifest = manifest::TomlManifest { package: Some(package), - project: None, profile: me.profile.clone(), lib, bin, diff --git a/tests/testsuite/alt_registry.rs b/tests/testsuite/alt_registry.rs index e95f2cbaabb..27b68c695a9 100644 --- a/tests/testsuite/alt_registry.rs +++ b/tests/testsuite/alt_registry.rs @@ -1462,7 +1462,7 @@ fn sparse_lockfile() { .file( "Cargo.toml", r#" - [project] + [package] name = "a" version = "0.5.0" authors = [] diff --git a/tests/testsuite/check.rs b/tests/testsuite/check.rs index de6a324acd3..333cf6a4cc5 100644 --- a/tests/testsuite/check.rs +++ b/tests/testsuite/check.rs @@ -979,37 +979,6 @@ fn rustc_workspace_wrapper_excludes_published_deps() { .run(); } -#[cargo_test] -fn warn_manifest_package_and_project() { - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "0.0.1" - edition = "2015" - - [project] - name = "foo" - version = "0.0.1" - edition = "2015" - "#, - ) - .file("src/main.rs", "fn main() {}") - .build(); - - p.cargo("check") - .with_stderr( - "\ -[WARNING] manifest at `[CWD]` contains both `project` and `package`, this could become a hard error in the future -[CHECKING] foo v0.0.1 ([CWD]) -[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..] -", - ) - .run(); -} - #[cargo_test] fn git_manifest_package_and_project() { let p = project(); @@ -1065,32 +1034,6 @@ fn git_manifest_package_and_project() { .run(); } -#[cargo_test] -fn warn_manifest_with_project() { - let p = project() - .file( - "Cargo.toml", - r#" - [project] - name = "foo" - version = "0.0.1" - edition = "2015" - "#, - ) - .file("src/main.rs", "fn main() {}") - .build(); - - p.cargo("check") - .with_stderr( - "\ -[WARNING] manifest at `[CWD]` contains `[project]` instead of `[package]`, this could become a hard error in the future -[CHECKING] foo v0.0.1 ([CWD]) -[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..] -", - ) - .run(); -} - #[cargo_test] fn git_manifest_with_project() { let p = project(); @@ -1098,7 +1041,7 @@ fn git_manifest_with_project() { p.file( "Cargo.toml", r#" - [project] + [package] name = "bar" version = "0.0.1" edition = "2015" diff --git a/tests/testsuite/owner.rs b/tests/testsuite/owner.rs index fc0e0b5c4e2..b20610e3b77 100644 --- a/tests/testsuite/owner.rs +++ b/tests/testsuite/owner.rs @@ -103,7 +103,7 @@ fn simple_add_with_asymmetric() { .file( "Cargo.toml", r#" - [project] + [package] name = "foo" version = "0.0.1" authors = [] @@ -170,7 +170,7 @@ fn simple_remove_with_asymmetric() { .file( "Cargo.toml", r#" - [project] + [package] name = "foo" version = "0.0.1" authors = [] diff --git a/tests/testsuite/publish.rs b/tests/testsuite/publish.rs index da6e8da7572..16c2fa94e28 100644 --- a/tests/testsuite/publish.rs +++ b/tests/testsuite/publish.rs @@ -2864,7 +2864,7 @@ You may press ctrl-c [..] .file( "Cargo.toml", r#" - [project] + [package] name = "bar" version = "0.0.1" edition = "2015" diff --git a/tests/testsuite/yank.rs b/tests/testsuite/yank.rs index 9aff2fc8421..9caa96564e6 100644 --- a/tests/testsuite/yank.rs +++ b/tests/testsuite/yank.rs @@ -62,7 +62,7 @@ fn explicit_version_with_asymmetric() { .file( "Cargo.toml", r#" - [project] + [package] name = "foo" version = "0.0.1" authors = [] From e082468fdc9502f718796b1ce304e33a0d2e759c Mon Sep 17 00:00:00 2001 From: heisen-li Date: Tue, 16 Apr 2024 18:13:19 +0800 Subject: [PATCH 2/2] fmt --- src/cargo/util/toml/mod.rs | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs index 2d69bcb60f3..7fc81b70655 100644 --- a/src/cargo/util/toml/mod.rs +++ b/src/cargo/util/toml/mod.rs @@ -935,40 +935,10 @@ fn to_real_manifest( }; let package_name = match &original_toml.package { - Some(package) => { - package.clone().name - } - None => { - bail!("no `package` section found"); - } + Some(package) => package.clone().name, + None => bail!("no `package` section found"), }; - // let original_package = match (&original_toml.package, &original_toml.project) { - // (Some(_), Some(project)) => { - // bail!(format!( - // "manifest at `{}` contains both `project` and `package`", - // package_root.display() - // )); - // // warnings.push(format!( - // // "manifest at `{}` contains both `project` and `package`, \ - // // this could become a hard error in the future", - // // package_root.display() - // // )); - // project.clone() - // } - // (Some(package), None) => package.clone(), - // (None, Some(project)) => { - // warnings.push(format!( - // "manifest at `{}` contains `[project]` instead of `[package]`, \ - // this could become a hard error in the future", - // package_root.display() - // )); - // project.clone() - // } - // (None, None) => bail!("no `package` section found"), - // }; - - // let package_name = &original_package.name; if package_name.contains(':') { features.require(Feature::open_namespaces())?; }