Skip to content

Commit 9153d1a

Browse files
blueraftzanieb
andauthored
Deprecate tool.uv.dev-dependencies (#15469)
## Summary Closes #15406 ## Test Plan `cargo test` --------- Co-authored-by: Zanie Blue <[email protected]>
1 parent 8f3583a commit 9153d1a

12 files changed

+150
-70
lines changed

crates/uv-workspace/src/workspace.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use std::path::{Path, PathBuf};
55
use std::sync::{Arc, Mutex};
66

77
use glob::{GlobError, PatternError, glob};
8+
use itertools::Itertools;
89
use rustc_hash::{FxHashMap, FxHashSet};
910
use tracing::{debug, trace, warn};
1011

@@ -863,6 +864,25 @@ impl Workspace {
863864
&workspace_pyproject_toml,
864865
)?;
865866

867+
let dev_dependencies_members = workspace_members
868+
.iter()
869+
.filter_map(|(_, member)| {
870+
member
871+
.pyproject_toml
872+
.tool
873+
.as_ref()
874+
.and_then(|tool| tool.uv.as_ref())
875+
.and_then(|uv| uv.dev_dependencies.as_ref())
876+
.map(|_| format!("`{}`", member.root().join("pyproject.toml").user_display()))
877+
})
878+
.join(", ");
879+
if !dev_dependencies_members.is_empty() {
880+
warn_user_once!(
881+
"The `tool.uv.dev-dependencies` field (used in {}) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead",
882+
dev_dependencies_members
883+
);
884+
}
885+
866886
Ok(Self {
867887
install_path: workspace_root,
868888
packages: workspace_members,

crates/uv/tests/it/edit.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1838,6 +1838,7 @@ fn update_existing_dev() -> Result<()> {
18381838
----- stdout -----
18391839
18401840
----- stderr -----
1841+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
18411842
Resolved 4 packages in [TIME]
18421843
Prepared 3 packages in [TIME]
18431844
Installed 3 packages in [TIME]
@@ -1897,6 +1898,7 @@ fn add_existing_dev() -> Result<()> {
18971898
----- stdout -----
18981899
18991900
----- stderr -----
1901+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
19001902
Resolved 4 packages in [TIME]
19011903
Prepared 3 packages in [TIME]
19021904
Installed 3 packages in [TIME]
@@ -1953,6 +1955,7 @@ fn update_existing_dev_group() -> Result<()> {
19531955
----- stdout -----
19541956
19551957
----- stderr -----
1958+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
19561959
Resolved 4 packages in [TIME]
19571960
Prepared 3 packages in [TIME]
19581961
Installed 3 packages in [TIME]
@@ -2008,6 +2011,7 @@ fn add_existing_dev_group() -> Result<()> {
20082011
----- stdout -----
20092012
20102013
----- stderr -----
2014+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
20112015
Resolved 4 packages in [TIME]
20122016
Prepared 3 packages in [TIME]
20132017
Installed 3 packages in [TIME]
@@ -2069,6 +2073,7 @@ fn remove_both_dev() -> Result<()> {
20692073
----- stdout -----
20702074
20712075
----- stderr -----
2076+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
20722077
Resolved 1 package in [TIME]
20732078
Audited in [TIME]
20742079
");
@@ -2160,6 +2165,7 @@ fn remove_both_dev_group() -> Result<()> {
21602165
----- stdout -----
21612166
21622167
----- stderr -----
2168+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
21632169
Resolved 1 package in [TIME]
21642170
Audited in [TIME]
21652171
");
@@ -6494,17 +6500,18 @@ fn remove_repeated() -> Result<()> {
64946500
anyio_local = anyio_local.portable_display(),
64956501
})?;
64966502

6497-
uv_snapshot!(context.filters(), context.remove().arg("anyio"), @r###"
6503+
uv_snapshot!(context.filters(), context.remove().arg("anyio"), @r"
64986504
success: true
64996505
exit_code: 0
65006506
----- stdout -----
65016507
65026508
----- stderr -----
6509+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
65036510
Resolved 2 packages in [TIME]
65046511
Prepared 1 package in [TIME]
65056512
Installed 1 package in [TIME]
65066513
+ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
6507-
"###);
6514+
");
65086515

65096516
let pyproject_toml = context.read("pyproject.toml");
65106517

@@ -6531,15 +6538,16 @@ fn remove_repeated() -> Result<()> {
65316538
);
65326539
});
65336540

6534-
uv_snapshot!(context.filters(), context.remove().arg("anyio").arg("--optional").arg("foo"), @r###"
6541+
uv_snapshot!(context.filters(), context.remove().arg("anyio").arg("--optional").arg("foo"), @r"
65356542
success: true
65366543
exit_code: 0
65376544
----- stdout -----
65386545
65396546
----- stderr -----
6547+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
65406548
Resolved 2 packages in [TIME]
65416549
Audited 1 package in [TIME]
6542-
"###);
6550+
");
65436551

65446552
let pyproject_toml = context.read("pyproject.toml");
65456553

@@ -6566,16 +6574,17 @@ fn remove_repeated() -> Result<()> {
65666574
);
65676575
});
65686576

6569-
uv_snapshot!(context.filters(), context.remove().arg("anyio").arg("--dev"), @r###"
6577+
uv_snapshot!(context.filters(), context.remove().arg("anyio").arg("--dev"), @r"
65706578
success: true
65716579
exit_code: 0
65726580
----- stdout -----
65736581
65746582
----- stderr -----
6583+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
65756584
Resolved 1 package in [TIME]
65766585
Uninstalled 1 package in [TIME]
65776586
- anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
6578-
"###);
6587+
");
65796588

65806589
let pyproject_toml = context.read("pyproject.toml");
65816590

crates/uv/tests/it/export.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1804,7 +1804,7 @@ fn devrequirements_txt_() -> Result<()> {
18041804

18051805
context.lock().assert().success();
18061806

1807-
uv_snapshot!(context.filters(), context.export(), @r###"
1807+
uv_snapshot!(context.filters(), context.export(), @r"
18081808
success: true
18091809
exit_code: 0
18101810
----- stdout -----
@@ -1828,10 +1828,11 @@ fn devrequirements_txt_() -> Result<()> {
18281828
# via project
18291829
18301830
----- stderr -----
1831+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
18311832
Resolved 5 packages in [TIME]
1832-
"###);
1833+
");
18331834

1834-
uv_snapshot!(context.filters(), context.export().arg("--no-dev"), @r###"
1835+
uv_snapshot!(context.filters(), context.export().arg("--no-dev"), @r"
18351836
success: true
18361837
exit_code: 0
18371838
----- stdout -----
@@ -1844,10 +1845,11 @@ fn devrequirements_txt_() -> Result<()> {
18441845
# via project
18451846
18461847
----- stderr -----
1848+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
18471849
Resolved 5 packages in [TIME]
1848-
"###);
1850+
");
18491851

1850-
uv_snapshot!(context.filters(), context.export().arg("--only-dev"), @r###"
1852+
uv_snapshot!(context.filters(), context.export().arg("--only-dev"), @r"
18511853
success: true
18521854
exit_code: 0
18531855
----- stdout -----
@@ -1866,8 +1868,9 @@ fn devrequirements_txt_() -> Result<()> {
18661868
# via anyio
18671869
18681870
----- stderr -----
1871+
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
18691872
Resolved 5 packages in [TIME]
1870-
"###);
1873+
");
18711874

18721875
Ok(())
18731876
}

0 commit comments

Comments
 (0)