Skip to content

Commit

Permalink
Auto merge of #12624 - hi-rustin:rustin-patch-gc, r=weihanglo
Browse files Browse the repository at this point in the history
Skip clean up `profile.release.package."*"`
  • Loading branch information
bors committed Sep 6, 2023
2 parents 73d9081 + 63ccc35 commit 89896db
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/bin/cargo/commands/remove.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,6 @@ fn gc_workspace(workspace: &Workspace<'_>) -> CargoResult<()> {
//
// Example tables:
// - profile.dev.package.foo
// - profile.release.package."*"
// - profile.release.package."foo:2.1.0"
if let Some(toml_edit::Item::Table(profile_section_table)) = manifest.get_mut("profile") {
profile_section_table.set_implicit(true);
Expand All @@ -231,8 +230,14 @@ fn gc_workspace(workspace: &Workspace<'_>) -> CargoResult<()> {
package_table.set_implicit(true);

for (key, item) in package_table.iter_mut() {
let key = key.get();
// Skip globs. Can't do anything with them.
// For example, profile.release.package."*".
if crate::util::restricted_names::is_glob_pattern(key) {
continue;
}
if !spec_has_match(
&PackageIdSpec::parse(key.get())?,
&PackageIdSpec::parse(key)?,
&dependencies,
workspace.config(),
)? {
Expand Down
1 change: 1 addition & 0 deletions tests/testsuite/cargo_remove/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ mod optional_dep_feature;
mod optional_feature;
mod package;
mod remove_basic;
mod skip_gc_glob_profile;
mod target;
mod target_build;
mod target_dev;
Expand Down
13 changes: 13 additions & 0 deletions tests/testsuite/cargo_remove/skip_gc_glob_profile/in/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[package]
name = "cargo-remove-test-fixture"
version = "0.1.0"

[[bin]]
name = "main"
path = "src/main.rs"

[dependencies]
toml = "0.1"

[profile.dev.package."*"]
opt-level = 3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

25 changes: 25 additions & 0 deletions tests/testsuite/cargo_remove/skip_gc_glob_profile/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
use cargo_test_support::compare::assert_ui;
use cargo_test_support::curr_dir;
use cargo_test_support::CargoCommand;
use cargo_test_support::Project;

#[cargo_test]
fn case() {
cargo_test_support::registry::init();
cargo_test_support::registry::Package::new("toml", "0.1.1+my-package").publish();

let project = Project::from_template(curr_dir!().join("in"));
let project_root = project.root();
let cwd = &project_root;

snapbox::cmd::Command::cargo_ui()
.arg("remove")
.args(["toml"])
.current_dir(cwd)
.assert()
.success()
.stdout_matches_path(curr_dir!().join("stdout.log"))
.stderr_matches_path(curr_dir!().join("stderr.log"));

assert_ui().subset_matches(curr_dir!().join("out"), &project_root);
}
10 changes: 10 additions & 0 deletions tests/testsuite/cargo_remove/skip_gc_glob_profile/out/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[package]
name = "cargo-remove-test-fixture"
version = "0.1.0"

[[bin]]
name = "main"
path = "src/main.rs"

[profile.dev.package."*"]
opt-level = 3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removing toml from dependencies
Empty file.

0 comments on commit 89896db

Please sign in to comment.