Skip to content

fix: fail release when changelog target stays stale#1038

Merged
chubes4 merged 5 commits intomainfrom
fix/release-fail-on-stale-changelog
Mar 26, 2026
Merged

fix: fail release when changelog target stays stale#1038
chubes4 merged 5 commits intomainfrom
fix/release-fail-on-stale-changelog

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 26, 2026

Summary

@homeboy-ci
Copy link
Contributor

homeboy-ci bot commented Mar 26, 2026

Homeboy Results — homeboy

Audit

Failure Digest

Audit Failure Digest

  • Alignment score: 0.947
  • Severity counts: info: 3, unknown: 2, warning: 56
  • Outliers in current run: 2
  • Parsed outlier entries: 2
  • Drift increased: yes
  • New findings since baseline: 7
    1. test_coverage — Method 'from_surfaces' has no corresponding test (expected 'test_from_surfaces') (test_coverage::src/core/refactor/plan/generate/module_surface.rs::MissingTestMethod)
    2. test_coverage — Method 'get' has no corresponding test (expected 'test_get') (test_coverage::src/core/refactor/plan/generate/module_surface.rs::MissingTestMethod)
    3. test_coverage — Method 'owns_public_symbol' has no corresponding test (expected 'test_owns_public_symbol') (test_coverage::src/core/refactor/plan/generate/module_surface.rs::MissingTestMethod)
    4. test_coverage — Method 'symbol_surface' has no corresponding test (expected 'test_symbol_surface') (test_coverage::src/core/refactor/plan/generate/module_surface.rs::MissingTestMethod)
    5. test_coverage — Test method 'test_classify_public_api_role' references 'classify_public_api_role' which no longer exists in the source (test_coverage::src/core/refactor/plan/generate/module_surface.rs::OrphanedTest)
  • Top actionable findings:
    1. src/core/refactor/decompose.rs — god_file — File has 2523 lines (threshold: 1000)
    2. src/core/refactor/decompose.rs — high_item_count — File has 35 top-level items (threshold: 15)
    3. src/core/refactor/auto/policy.rs — intra_method_duplicate — Duplicated block in apply_fix_policy — 6 identical lines at line 151 and line 191
    4. src/core/refactor/plan/generate/duplicate_fixes.rs — intra_method_duplicate — Duplicated block in generate_simple_duplicate_fixes — 5 identical lines at line 604 and line 615
    5. src/core/refactor/plan/generate/duplicate_fixes.rs — intra_method_duplicate — Duplicated block in generate_unreferenced_export_fixes — 5 identical lines at line 174 and line 197
All parsed audit findings (61)
1. **src/core/refactor/decompose.rs** — god_file — File has 2523 lines (threshold: 1000)
2. **src/core/refactor/decompose.rs** — high_item_count — File has 35 top-level items (threshold: 15)
3. **src/core/refactor/auto/policy.rs** — intra_method_duplicate — Duplicated block in `apply_fix_policy` — 6 identical lines at line 151 and line 191
4. **src/core/refactor/plan/generate/duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `generate_simple_duplicate_fixes` — 5 identical lines at line 604 and line 615
5. **src/core/refactor/plan/generate/duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `generate_unreferenced_export_fixes` — 5 identical lines at line 174 and line 197
6. **src/core/refactor/plan/generate/duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `is_used_by_binary_crate` — 6 identical lines at line 676 and line 685
7. **src/core/refactor/plan/generate/near_duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `generate_near_duplicate_fixes` — 5 identical lines at line 131 and line 147
8. **src/core/refactor/plan/generate/test_gen_fixes.rs** — intra_method_duplicate — Duplicated block in `build_inline_test_module` — 7 identical lines at line 208 and line 218
9. **src/core/release/version.rs** — intra_method_duplicate — Duplicated block in `update_version_in_file` — 6 identical lines at line 80 and line 107
10. **src/core/release/workflow.rs** — intra_method_duplicate — Duplicated block in `run_command` — 7 identical lines at line 53 and line 158
11. **src/core/refactor/plan/generate/duplicate_fixes.rs** — parallel_implementation — Parallel implementation: `scan_dir_for_reference` has similar call pattern to `search_class_in_dir` in src/core/code_audit/docs_audit/verify.rs — shared calls: `Only`, `any_file_matches`, `read_to_string`
12. **src/core/release/version.rs** — unreferenced_export — Public function 'validate_baseline_alignment' is not referenced by any other file
13. **src/core/refactor/auto/policy.rs** — missing_test_file — No test file found (expected 'tests/core/refactor/auto/policy_test.rs') and no inline tests
14. **src/core/refactor/auto/summary.rs** — missing_test_file — No test file found (expected 'tests/core/refactor/auto/summary_test.rs') and no inline tests
15. **src/core/refactor/decompose.rs** — missing_test_method — Method 'apply_plan' has no corresponding test (expected 'test_apply_plan')
16. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_a' references 'a' which no longer exists in the source
17. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_audit_component' references 'audit_component' which no longer exists in the source
18. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_audit_internal' references 'audit_internal' which no longer exists in the source
19. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_b' references 'b' which no longer exists in the source
20. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_call_graph_clusters_related_functions' references 'call_graph_clusters_related_functions' which no longer exists in the source
21. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_call_graph_excludes_hubs_from_clusters' references 'call_graph_excludes_hubs_from_clusters' which no longer exists in the source
22. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_delete' references 'delete' which no longer exists in the source
23. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_extract_changes_from_diff' references 'extract_changes_from_diff' which no longer exists in the source
24. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_git_fetch' references 'git_fetch' which no longer exists in the source
25. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_helper' references 'helper' which no longer exists in the source
26. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_item' references 'item' which no longer exists in the source
27. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_item_at' references 'item_at' which no longer exists in the source
28. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_list' references 'list' which no longer exists in the source
29. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_load' references 'load' which no longer exists in the source
30. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_parse' references 'parse' which no longer exists in the source
31. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_parse_diff' references 'parse_diff' which no longer exists in the source
32. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_parse_hunk' references 'parse_hunk' which no longer exists in the source
33. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_render' references 'render' which no longer exists in the source
34. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_save' references 'save' which no longer exists in the source
35. **src/core/refactor/decompose.rs** — orphaned_test — Test method 'test_section_headers_guide_function_grouping' references 'section_headers_guide_function_grouping' which no longer exists in the source
36. **src/core/refactor/plan/generate/duplicate_fixes.rs** — missing_test_method — Method 'extract_function_name_from_unreferenced' has no corresponding test (expected 'test_extract_function_name_from_unreferenced')
37. **src/core/refactor/plan/generate/duplicate_fixes.rs** — missing_test_method — Method 'generate_duplicate_function_fixes' has no corresponding test (expected 'test_generate_duplicate_function_fixes')
38. **src/core/refactor/plan/generate/duplicate_fixes.rs** — missing_test_method — Method 'generate_unreferenced_export_fixes' has no corresponding test (expected 'test_generate_unreferenced_export_fixes')
39. **src/core/refactor/plan/generate/duplicate_fixes.rs** — missing_test_method — Method 'module_path_from_file' has no corresponding test (expected 'test_module_path_from_file')
40. **src/core/refactor/plan/generate/module_surface.rs** — missing_test_method — Method 'from_surfaces' has no corresponding test (expected 'test_from_surfaces')
41. **src/core/refactor/plan/generate/module_surface.rs** — missing_test_method — Method 'get' has no corresponding test (expected 'test_get')
42. **src/core/refactor/plan/generate/module_surface.rs** — missing_test_method — Method 'owns_public_symbol' has no corresponding test (expected 'test_owns_public_symbol')
43. **src/core/refactor/plan/generate/module_surface.rs** — missing_test_method — Method 'symbol_surface' has no corresponding test (expected 'test_symbol_surface')
44. **src/core/refactor/plan/generate/module_surface.rs** — orphaned_test — Test method 'test_classify_public_api_role' references 'classify_public_api_role' which no longer exists in the source
45. **src/core/refactor/plan/generate/near_duplicate_fixes.rs** — missing_test_method — Method 'generate_near_duplicate_fixes' has no corresponding test (expected 'test_generate_near_duplicate_fixes')
46. **src/core/refactor/plan/generate/test_gen_fixes.rs** — missing_test_method — Method 'generate_test_file_fixes' has no corresponding test (expected 'test_generate_test_file_fixes')
47. **src/core/refactor/plan/generate/test_gen_fixes.rs** — missing_test_method — Method 'generate_test_method_fixes' has no corresponding test (expected 'test_generate_test_method_fixes')
48. **src/core/release/executor.rs** — missing_test_file — No test file found (expected 'tests/core/release/executor_test.rs') and no inline tests
49. **src/core/release/version.rs** — missing_test_method — Method 'bump_component_version' has no corresponding test (expected 'test_bump_component_version')
50. **src/core/release/version.rs** — missing_test_method — Method 'read_local_version' has no corresponding test (expected 'test_read_local_version')
51. **src/core/release/version.rs** — missing_test_method — Method 'replace_versions' has no corresponding test (expected 'test_replace_versions')
52. **src/core/release/version.rs** — missing_test_method — Method 'update_version_in_file' has no corresponding test (expected 'test_update_version_in_file')
53. **src/core/release/version.rs** — missing_test_method — Method 'validate_and_finalize_changelog' has no corresponding test (expected 'test_validate_and_finalize_changelog')
54. **src/core/release/version.rs** — missing_test_method — Method 'validate_baseline_alignment' has no corresponding test (expected 'test_validate_baseline_alignment')
55. **src/core/release/version.rs** — missing_test_method — Method 'validate_changelog_for_bump' has no corresponding test (expected 'test_validate_changelog_for_bump')
56. **src/core/release/workflow.rs** — missing_test_method — Method 'run_batch' has no corresponding test (expected 'test_run_batch')
57. **src/core/release/workflow.rs** — missing_test_method — Method 'run_command' has no corresponding test (expected 'test_run_command')
58. **src/core/refactor/plan/generate/module_surface.rs** — compiler_warning — [dead_code] field `symbol` is never read
59. **src/core/refactor/plan/generate/module_surface.rs** — compiler_warning — [dead_code] fields `module_path`, `language`, and `imports` are never read
60. **src/commands/docs.rs** — outlier — (outlier)
61. **tests/commands/deploy_test.rs** — outlier — (outlier)
- Full audit log: https://github.com/Extra-Chill/homeboy/actions/runs/23576793267

Autofixability classification

  • Overall: human_needed
  • Autofix enabled: yes
  • Autofix attempted this run: yes
  • Human-needed failed commands:
    • audit
  • Failed commands with available automated fixes:
    • audit

Machine-readable artifacts

  • {command}.json — structured output per command (from homeboy --output)

⚡ Scope: changed files only

audit (changed files only)

Auto-refactor

ℹ️ Autofix enabled, but no fixable file changes were produced

Failure Digest

Autofixability classification

  • Overall: human_needed
  • Autofix enabled: yes
  • Autofix attempted this run: no
  • Human-needed failed commands:
    • refactor --from all

Machine-readable artifacts

  • {command}.json — structured output per command (from homeboy --output)

⚡ Scope: changed files only

refactor --from all

  • Total fixes proposed: 42
  • Files modified: 13
  • Stages:
    • audit: 42 fix(es), 13 file(s), 59 findings detected
    • lint: 0 fix(es), 0 file(s), 0 findings detected
    • test: 0 fix(es), 0 file(s)
Changed files (13)
1. `src/core/extension/grammar.rs`
2. `src/core/refactor/auto/policy.rs`
3. `src/core/refactor/auto/summary.rs`
4. `src/core/refactor/decompose.rs`
5. `src/core/refactor/plan/generate/duplicate_fixes.rs`
6. `src/core/refactor/plan/generate/module_surface.rs`
7. `src/core/refactor/plan/generate/near_duplicate_fixes.rs`
8. `src/core/refactor/plan/generate/test_gen_fixes.rs`
9. `src/core/release/executor.rs`
10. `src/core/release/version.rs`
11. `src/core/release/workflow.rs`
12. `tests/commands/deploy_test.rs`
13. `tests/core/refactor/decompose_test.rs`
Warnings (1)
Inter-stage formatter (sh '/home/runner/.config/homeboy/extensions/rust/scripts/format.sh') exited non-zero (continuing)
Tooling versions
  • Homeboy CLI: homeboy 0.86.2+53d3fc46
  • Extension: rust from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: unknown
  • Action: Extra-Chill/homeboy-action@v2

Homeboy Action v1

@chubes4 chubes4 merged commit 56e3ddf into main Mar 26, 2026
@chubes4 chubes4 deleted the fix/release-fail-on-stale-changelog branch March 26, 2026 04:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant