Skip to content

Commit a16c150

Browse files
committed
Panic if we receive Minor/Major bump for forever-unstable package
1 parent d6907be commit a16c150

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

xtask/src/semver_check.rs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,11 @@ fn required_bump(required_bumps: &[ReleaseType], forever_unstable: bool) -> Rele
129129
}
130130
}
131131

132-
if forever_unstable && min_required_update == ReleaseType::Major {
133-
log::warn!("Downgrading required bump from Minor to Patch for unstable package",);
134-
min_required_update = ReleaseType::Minor;
132+
if forever_unstable && min_required_update != ReleaseType::Patch {
133+
panic!(
134+
"Forever-unstable package can only receive a patch release but received {:?}!",
135+
min_required_update
136+
);
135137
}
136138

137139
min_required_update
@@ -163,16 +165,23 @@ mod tests {
163165
}
164166

165167
#[test]
166-
fn forever_unstable_downgrades_major_to_minor() {
168+
#[should_panic(
169+
expected = "Forever-unstable package can only receive a patch release but received Major"
170+
)]
171+
fn forever_unstable_downgrades_major_to_patch() {
167172
let bumps = [ReleaseType::Major];
168173

169174
let result = required_bump(&bumps, true);
175+
}
170176

171-
assert_eq!(
172-
result,
173-
ReleaseType::Minor,
174-
"forever-unstable packages must never require a major bump"
175-
);
177+
#[test]
178+
#[should_panic(
179+
expected = "Forever-unstable package can only receive a patch release but received Minor"
180+
)]
181+
fn forever_unstable_downgrades_minor_to_patch() {
182+
let bumps = [ReleaseType::Minor];
183+
184+
let result = required_bump(&bumps, true);
176185
}
177186

178187
#[test]

0 commit comments

Comments
 (0)