Skip to content

Commit 2710e3c

Browse files
committed
fix check display
1 parent 9df8812 commit 2710e3c

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

src/check_release.rs

+18-8
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,13 @@ pub(super) fn run_check_release(
280280
for (semver_query, time_to_decide, results) in all_results {
281281
config
282282
.log_verbose(|config| {
283-
let category = match overrides.effective_required_update(semver_query) {
284-
RequiredSemverUpdate::Major => "major",
285-
RequiredSemverUpdate::Minor => "minor",
283+
let category = match (
284+
overrides.effective_required_update(semver_query),
285+
overrides.effective_lint_mode(semver_query),
286+
) {
287+
(RequiredSemverUpdate::Major, LintMode::SemVer) => "major",
288+
(RequiredSemverUpdate::Minor, LintMode::SemVer) => "minor",
289+
(_, LintMode::AlwaysRun) => "always-run",
286290
};
287291

288292
let (status, status_color) = match (
@@ -341,8 +345,6 @@ pub(super) fn run_check_release(
341345
let produced_semver_warnings = !results_with_warnings.is_empty();
342346
let produced_always_run_errors = !results_with_always_run_errors.is_empty();
343347
let produced_always_run_warnings = !results_with_always_run_warnings.is_empty();
344-
let total_always_run_issues =
345-
results_with_always_run_errors.len() + results_with_always_run_warnings.len();
346348
let has_issues = produced_semver_errors
347349
|| produced_semver_warnings
348350
|| produced_always_run_errors
@@ -354,16 +356,22 @@ pub(super) fn run_check_release(
354356
} else {
355357
AnsiColor::Yellow
356358
};
359+
360+
let total_always_run_issues =
361+
results_with_always_run_errors.len() + results_with_always_run_warnings.len();
362+
let total_failures = results_with_errors.len() + results_with_always_run_errors.len();
363+
let total_warnings = results_with_warnings.len() + results_with_always_run_warnings.len();
364+
357365
config
358366
.shell_print(
359367
"Checked",
360368
format_args!(
361369
"[{:>8.3}s] {} checks: {} pass, {} fail, {} warn, {} skip",
362370
queries_start_instant.elapsed().as_secs_f32(),
363371
queries_to_run.len(),
364-
queries_to_run.len() - results_with_errors.len() - results_with_warnings.len(),
365-
results_with_errors.len(),
366-
results_with_warnings.len(),
372+
queries_to_run.len() - total_failures - total_warnings,
373+
total_failures,
374+
total_warnings,
367375
skipped_queries,
368376
),
369377
Color::Ansi(status_color),
@@ -520,6 +528,7 @@ pub(super) fn run_check_release(
520528
Ok(CrateReport {
521529
required_bump: required_bump.map(ReleaseType::from),
522530
detected_bump: version_change,
531+
has_always_run_issues: produced_always_run_errors || produced_always_run_warnings,
523532
})
524533
} else {
525534
config
@@ -547,6 +556,7 @@ pub(super) fn run_check_release(
547556
Ok(CrateReport {
548557
detected_bump: version_change,
549558
required_bump: None,
559+
has_always_run_issues: false,
550560
})
551561
}
552562
}

src/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -653,12 +653,17 @@ pub struct CrateReport {
653653
/// For example, if the crate contains breaking changes, this is [`Some(ReleaseType::Major)`].
654654
/// If no additional bump beyond the already-detected one is required, this is [`Option::None`].
655655
required_bump: Option<ReleaseType>,
656+
/// Whether the crate has breaking changes that require attention regardless of version bump.
657+
has_always_run_issues: bool,
656658
}
657659

658660
impl CrateReport {
659661
/// Check if the semver check was successful.
660662
/// `true` if required bump <= detected bump.
661663
pub fn success(&self) -> bool {
664+
if self.has_always_run_issues {
665+
return false;
666+
}
662667
match self.required_bump {
663668
// If `None`, no additional bump is required.
664669
None => true,

0 commit comments

Comments
 (0)