Skip to content

fix: restore hidden library regressions and CI coverage#782

Merged
abraemer merged 12 commits intomainfrom
fix/restore-lib-unit-ci
Apr 24, 2026
Merged

fix: restore hidden library regressions and CI coverage#782
abraemer merged 12 commits intomainfrom
fix/restore-lib-unit-ci

Conversation

@abraemer
Copy link
Copy Markdown
Collaborator

Summary

  • Restore rust-library-tests to real library coverage by running cargo test -p provenant-cli --lib --release --verbose -- --skip _scan_test:: again. The earlier CI change swapped that job to cargo test --bin provenant --release --verbose -- --skip _scan_test::, which runs 0 tests in this repository and silently stopped covering the library suite.
  • Fix the hidden copyright detector regression that CI missed: refine_final_authors() was over-pruning valid author detections after fix(copyright): drop prose and trademark boilerplate noise, so handle-suffixed maintainer authors and structured metadata authors like gRPC authors, Meta, The libunwind project, and S2Geometry were being dropped. The fix reuses the existing detector heuristics that had already accepted those forms.
  • Fix the additional regressions surfaced once real library coverage was restored, and update the stale or racy tests whose expectations no longer matched intentional behavior. The restored library suite now passes cleanly in release mode: 4376 passed; 0 failed; 66 filtered out.

Issues

  • Covers: hidden copyright::detector failures that were not exercised by CI, and the follow-on library regressions exposed when the rust-library-tests job was restored.

Scope and exclusions

  • Included:
  • Restore the CI job label and command so rust-library-tests once again runs the actual library suite, while leaving _scan_test:: parser scanner/assembly contract tests in the separate contracts shard.
  • Fix assembly::file_ref_resolve duplicate resolver registration introduced by BitBake append support by merging the RelativeToDatafileParent datasource IDs into a single config entry.
  • Fix finder email/host false positives reintroduced by the junk-suffix refactor by restoring the older .local, .blank, .fill, and related suffix filtering alongside the newer file-like host suffixes.
  • Fix single-manifest package license syncing in post-processing so followed manifest/package-data results replace stale placeholder package-level detections for single-datafile packages, while preserving the newer multi-datafile behavior.
  • Fix local-reference post-processing so concrete source-file license matches are no longer stripped from expression recomputation for non-placeholder local-file references; only placeholder detections keep the stripping behavior.
  • Keep the copyright detector author fix and its focused regressions tests in the branch because that was the original hidden failure uncovered by the CI gap.
  • Update replay/json-input tests to explicitly expect synthesized directory entries after fix(replay): retain imported directories during filtering.
  • Update the shaping include-path test to match the intentional non-recursive bare-path semantics introduced by fix(cli): keep bare include paths non-recursive.
  • Add a shared test-only current-directory guard and use it in the CLI/shaping tests that mutate process-global cwd, eliminating the parallel race that made resolve_native_scan_inputs_* flaky.
  • Update the license-expression flattening test to assert the now-intentional preserved match order from fix(license): keep match-derived SPDX detection output.
  • Update the Conda Jinja substitution test to expect quoted numeric-looking versions, matching the intentional string-preservation behavior added for feedstock recipe.yaml support.
  • Update scanner tests to explicitly expect the richer source-aware file type labels now returned by the hardened pure-Rust file classifier.
  • Update the follow-on post-processing expectation so a concrete notice expression from the source file is preserved alongside the resolved target license when local-file reference following retains both pieces of evidence.
  • Explicit exclusions:
  • No golden expected-output fixtures were changed.
  • No _scan_test:: contract tests were moved back into the main library job; they remain intentionally split into the contracts shard for CI sharding.

Follow-up work

  • Created or intentionally deferred:
  • None in this branch. The restored split is: library tests in rust-library-tests, _scan_test:: contract coverage in the contracts shard, and integration/golden coverage in their existing jobs.

abraemer added 12 commits April 24, 2026 10:07
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
Signed-off-by: Adrian Braemer <bradrian@gmail.com>
@abraemer abraemer force-pushed the fix/restore-lib-unit-ci branch from 70cadb1 to 2d648d9 Compare April 24, 2026 09:11
@abraemer abraemer merged commit 61211ac into main Apr 24, 2026
15 checks passed
@abraemer abraemer deleted the fix/restore-lib-unit-ci branch April 24, 2026 09:47
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