Skip to content

Commit 5604372

Browse files
authored
chore: add default-feaults=false check (#10984)
1 parent 8029c1d commit 5604372

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

xtask/src/deny_ext/mod.rs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,25 @@ use std::{fs, path::Path};
22

33
use anyhow::Context;
44
use clap::Args;
5-
5+
/// check every workspace dependencies has default-features=false
6+
fn check_setting_default_features_false(
7+
workspace_deps: &toml::map::Map<String, toml::Value>,
8+
) -> Vec<String> {
9+
let mut errors = Vec::new();
10+
// Check each dependency for default-features=false
11+
for (dep_name, dep_value) in workspace_deps {
12+
if let Some(table) = dep_value.as_table() {
13+
if !table.contains_key("default-features")
14+
|| table.get("default-features") != Some(&toml::Value::Boolean(false))
15+
{
16+
errors.push(format!(
17+
"Dependency '{dep_name}' does not have default-features=false",
18+
));
19+
}
20+
}
21+
}
22+
errors
23+
}
624
/// enforce every workspace member to use workspace=true for their dependencies
725
fn enforce_workspace_version() -> anyhow::Result<()> {
826
let workspace_root = find_workspace_root()?;
@@ -11,22 +29,22 @@ fn enforce_workspace_version() -> anyhow::Result<()> {
1129
// Read and parse the workspace Cargo.toml
1230
let workspace_content = fs::read_to_string(&workspace_manifest_path)?;
1331
let workspace_toml: toml::Value = toml::from_str(&workspace_content)?;
14-
32+
let mut errors = Vec::new();
1533
// Get workspace dependencies
1634
let workspace_deps = workspace_toml
1735
.get("workspace")
1836
.and_then(|w| w.get("dependencies"))
1937
.and_then(|d| d.as_table())
2038
.with_context(|| "No workspace dependencies found")?;
21-
39+
let default_features_errors = check_setting_default_features_false(workspace_deps);
40+
errors.extend(default_features_errors);
2241
// Get workspace members
2342
let workspace_members = workspace_toml
2443
.get("workspace")
2544
.and_then(|w| w.get("members"))
2645
.and_then(|m| m.as_array())
2746
.with_context(|| "No workspace members found")?;
2847

29-
let mut errors = Vec::new();
3048
let mut checked_crates = 0;
3149
let mut total_dependencies = 0;
3250

0 commit comments

Comments
 (0)