diff --git a/crates/cargo-util-schemas/src/manifest/mod.rs b/crates/cargo-util-schemas/src/manifest/mod.rs index 4fbdd3921..c1d10e4b5 100644 --- a/crates/cargo-util-schemas/src/manifest/mod.rs +++ b/crates/cargo-util-schemas/src/manifest/mod.rs @@ -243,15 +243,12 @@ impl TomlPackage { } pub fn resolved_readme(&self) -> Result, UnresolvedError> { - self.readme - .as_ref() - .map(|v| { - v.resolved().and_then(|sb| match sb { - StringOrBool::Bool(_) => Err(UnresolvedError), - StringOrBool::String(value) => Ok(value), - }) - }) - .transpose() + let readme = self.readme.as_ref().ok_or(UnresolvedError)?; + readme.resolved().and_then(|sb| match sb { + StringOrBool::Bool(false) => Ok(None), + StringOrBool::Bool(true) => Err(UnresolvedError), + StringOrBool::String(value) => Ok(Some(value)), + }) } pub fn resolved_keywords(&self) -> Result>, UnresolvedError> { diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs index d89829e04..9c93f650f 100644 --- a/src/cargo/util/toml/mod.rs +++ b/src/cargo/util/toml/mod.rs @@ -553,7 +553,10 @@ fn resolve_package_toml<'a>( .transpose()? .as_ref(), ) - .map(|s| manifest::InheritableField::Value(StringOrBool::String(s))), + .map(|s| manifest::InheritableField::Value(StringOrBool::String(s))) + .or(Some(manifest::InheritableField::Value(StringOrBool::Bool( + false, + )))), keywords: original_package .keywords .clone() diff --git a/tests/testsuite/artifact_dep.rs b/tests/testsuite/artifact_dep.rs index fd36a8386..1f7d87fde 100644 --- a/tests/testsuite/artifact_dep.rs +++ b/tests/testsuite/artifact_dep.rs @@ -2217,6 +2217,7 @@ authors = [] description = "foo" homepage = "foo" documentation = "foo" +readme = false license = "MIT" repository = "foo" resolver = "2" diff --git a/tests/testsuite/features2.rs b/tests/testsuite/features2.rs index 18a365624..c9b824fc0 100644 --- a/tests/testsuite/features2.rs +++ b/tests/testsuite/features2.rs @@ -1705,6 +1705,7 @@ version = "0.1.0" authors = ["Zzz"] description = "foo" homepage = "https://example.com/" +readme = false license = "MIT" resolver = "2" "#, diff --git a/tests/testsuite/features_namespaced.rs b/tests/testsuite/features_namespaced.rs index b53637547..340f60e03 100644 --- a/tests/testsuite/features_namespaced.rs +++ b/tests/testsuite/features_namespaced.rs @@ -987,6 +987,7 @@ name = "foo" version = "0.1.0" description = "foo" homepage = "https://example.com/" +readme = false license = "MIT" [dependencies.opt-dep1] @@ -1105,6 +1106,7 @@ name = "foo" version = "0.1.0" description = "foo" homepage = "https://example.com/" +readme = false license = "MIT" [dependencies.bar] diff --git a/tests/testsuite/inheritable_workspace_fields.rs b/tests/testsuite/inheritable_workspace_fields.rs index a84d4cdf4..059766106 100644 --- a/tests/testsuite/inheritable_workspace_fields.rs +++ b/tests/testsuite/inheritable_workspace_fields.rs @@ -227,6 +227,7 @@ publish = true description = "This is a crate" homepage = "https://www.rust-lang.org" documentation = "https://www.rust-lang.org/learn" +readme = false keywords = ["cli"] categories = ["development-tools"] license = "MIT" @@ -383,6 +384,7 @@ edition = "2015" name = "bar" version = "0.2.0" authors = [] +readme = false [dependencies.dep] version = "0.1" @@ -514,6 +516,7 @@ edition = "2015" name = "bar" version = "0.2.0" authors = [] +readme = false [dependencies.dep] version = "0.1.2" @@ -927,6 +930,7 @@ edition = "2015" name = "bar" version = "0.2.0" authors = [] +readme = false [dependencies.dep] version = "0.1" diff --git a/tests/testsuite/package.rs b/tests/testsuite/package.rs index 835a9cb8e..0908e0ce0 100644 --- a/tests/testsuite/package.rs +++ b/tests/testsuite/package.rs @@ -1219,6 +1219,7 @@ version = "0.0.1" authors = [] exclude = ["*.txt"] description = "foo" +readme = false license = "MIT" [package.metadata] @@ -1293,6 +1294,7 @@ edition = "2015" name = "bar" version = "0.1.0" authors = [] +readme = false "#, cargo::core::manifest::MANIFEST_PREAMBLE ); @@ -1360,6 +1362,7 @@ fn package_public_dep() { edition = "2015" name = "foo" version = "0.0.1" +readme = false [dependencies.bar] version = "1.0.0" @@ -1378,6 +1381,7 @@ version = "1.0.0" edition = "2015" name = "foo" version = "0.0.1" +readme = false [dependencies.bar] version = "1.0.0" @@ -2855,6 +2859,7 @@ fn workspace_overrides_resolver() { edition = "2021" name = "bar" version = "0.1.0" +readme = false resolver = "1" "#, cargo::core::manifest::MANIFEST_PREAMBLE @@ -2874,6 +2879,7 @@ resolver = "1" edition = "2015" name = "baz" version = "0.1.0" +readme = false "#, cargo::core::manifest::MANIFEST_PREAMBLE ); @@ -2938,6 +2944,7 @@ authors = [] exclude = ["*.txt"] description = "foo" homepage = "https://example.com/" +readme = false license = "MIT" "#, cargo::core::manifest::MANIFEST_PREAMBLE @@ -3032,6 +3039,7 @@ version = "0.0.1" authors = [] description = "foo" documentation = "https://example.com/" +readme = false license = "MIT" "#, cargo::core::manifest::MANIFEST_PREAMBLE @@ -3139,6 +3147,7 @@ version = "0.0.1" authors = [] description = "foo" homepage = "https://example.com/" +readme = false license = "MIT" "#, cargo::core::manifest::MANIFEST_PREAMBLE @@ -3319,6 +3328,7 @@ version = "0.0.1" authors = [] exclude = ["*.txt"] description = "foo" +readme = false license = "MIT" [[test]] @@ -3819,6 +3829,7 @@ include = [ ] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -3885,6 +3896,7 @@ authors = [] include = ["src/lib.rs"] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -3956,6 +3968,7 @@ include = [ ] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -4070,6 +4083,7 @@ include = [ ] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -4136,6 +4150,7 @@ authors = [] include = ["src/main.rs"] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -4214,6 +4229,7 @@ include = [ ] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" [lib] @@ -4342,6 +4358,7 @@ include = [ ] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -4411,6 +4428,7 @@ authors = [] include = ["src/lib.rs"] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" "#, )], @@ -4507,6 +4525,7 @@ include = [ ] description = "foo" documentation = "docs.rs/foo" +readme = false license = "MIT" [[bin]] diff --git a/tests/testsuite/publish.rs b/tests/testsuite/publish.rs index f61818326..e54e1ec2b 100644 --- a/tests/testsuite/publish.rs +++ b/tests/testsuite/publish.rs @@ -1561,6 +1561,7 @@ You may press ctrl-c [..] version = \"0.1.0\"\n\ authors = []\n\ description = \"foo\"\n\ + readme = false\n\ license = \"MIT\"\n\ \n\ [dependencies.dep1]\n\ @@ -1675,6 +1676,7 @@ authors = [] description = "foo" homepage = "foo" documentation = "foo" +readme = false license = "MIT" repository = "foo" @@ -1934,6 +1936,7 @@ authors = [] description = "foo" homepage = "foo" documentation = "foo" +readme = false license = "MIT" repository = "foo" diff --git a/tests/testsuite/weak_dep_features.rs b/tests/testsuite/weak_dep_features.rs index 069550193..ef0c503e1 100644 --- a/tests/testsuite/weak_dep_features.rs +++ b/tests/testsuite/weak_dep_features.rs @@ -632,6 +632,7 @@ name = "foo" version = "0.1.0" description = "foo" homepage = "https://example.com/" +readme = false license = "MIT" [dependencies.bar]