Skip to content

Commit 7bbb671

Browse files
committed
fix: Skip update --breaking in prerelase version
1 parent 7880fc8 commit 7bbb671

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/cargo/util/toml_mut/upgrade.rs

+17-4
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,18 @@ pub(crate) fn upgrade_requirement(
1818
let comparators: CargoResult<Vec<_>> = raw_req
1919
.comparators
2020
.into_iter()
21-
.map(|p| set_comparator(p, version))
21+
.filter_map(|p| {
22+
if p.pre.is_empty() {
23+
Some(set_comparator(p, version))
24+
} else {
25+
None
26+
}
27+
})
2228
.collect();
23-
let comparators = comparators?;
29+
let comparators: Vec<_> = comparators?;
30+
if comparators.is_empty() {
31+
return Ok(None);
32+
}
2433
let new_req = semver::VersionReq { comparators };
2534
let mut new_req_text = new_req.to_string();
2635
if new_req_text.starts_with('^') && !req.starts_with('^') {
@@ -219,8 +228,12 @@ mod test {
219228
}
220229

221230
#[test]
222-
fn caret_prerelease() {
223-
assert_req_bump("1.7.0", "2.0.0-beta.21", "1.7.0");
231+
fn ignore_prerelease() {
232+
assert_req_bump("1.7.0", "2.0.0-beta.21", None);
233+
assert_req_bump("1.7.0", ">=2.0.0-beta.21", None);
234+
assert_req_bump("1.7.0", ">2.0.0-beta.21", None);
235+
assert_req_bump("1.7.0", "<=2.0.0-beta.21", None);
236+
assert_req_bump("1.7.0", "<2.0.0-beta.21", None);
224237
}
225238
}
226239
}

tests/testsuite/update.rs

-3
Original file line numberDiff line numberDiff line change
@@ -2646,9 +2646,6 @@ fn update_breaking_pre_release() {
26462646
.masquerade_as_nightly_cargo(&["update-breaking"])
26472647
.with_stderr_data(str![[r#"
26482648
[UPDATING] `dummy-registry` index
2649-
[UPGRADING] bar ^2.0.0-beta.21 -> ^1.7.0
2650-
[LOCKING] 1 package to latest compatible version
2651-
[DOWNGRADING] bar v2.0.0-beta.21 -> v1.7.0
26522649
26532650
"#]])
26542651
.run();

0 commit comments

Comments
 (0)