Skip to content

Enforce deterministic review rules in CI - #1370

Draft
Wei Wu (wuw92) wants to merge 3 commits into
microsoft:mainfrom
wuw92:wuw92-deterministic-lint-enforcement
Draft

Enforce deterministic review rules in CI#1370
Wei Wu (wuw92) wants to merge 3 commits into
microsoft:mainfrom
wuw92:wuw92-deterministic-lint-enforcement

Conversation

@wuw92

Copy link
Copy Markdown
Contributor
  • Does this PR have a descriptive title that could go in our release notes? Yes.
  • Does this PR add any new dependencies? No.
  • Does this PR modify any existing APIs? No.
  • Is the change to the API backwards compatible? N/A; no API changes.
  • Should this result in any changes to our documentation, either updating existing docs or adding new ones? Yes; stale and invalid rustdoc links are corrected.

Reference Issues/PRs

Addresses #1318 (comment).

What does this implement/fix? Briefly explain your changes.

Move deterministic review feedback into blocking CI so code review can focus on semantic correctness.

  1. Changed-file policy: Add one tested checker for newly added source headers, binary fixture placement and Git LFS attributes, and new too_many_arguments or single_match suppressions. The checks are extension-aware, exclude generated and test-input files, compare against the merge base, and preserve existing suppressions across file renames.
  2. Documentation correctness: Extend the existing strict rustdoc job to private items and repair the baseline links, ambiguous references, and malformed markup it exposes. The job continues to use rustdoc::all, so broken intra-doc links remain merge-blocking without broad allowances.
  3. Test hygiene: Check the worktree after both workspace test jobs and fail on modified tracked files or non-ignored outputs. Normal ignored build artifacts remain excluded. Extend Git LFS attributes to binary fixtures under crate-local test_data directories.

The checker tests exercise passing and failing repositories, including shebang/header handling, generated inputs, nested fixtures, missing LFS attributes, structural Clippy allows, renames, and worktree pollution.

Any other comments?

This intentionally limits enforcement to baseline-clean, cross-platform rules. Narrowing conversions, direct panic APIs, duplicate dependency versions, example execution coverage, and broader Miri gating need separate baseline cleanup or a validated allowlist before they can become low-noise merge gates.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: da7f008f-1c7b-463a-b3d3-93f6cb12806e
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: da7f008f-1c7b-463a-b3d3-93f6cb12806e
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: da7f008f-1c7b-463a-b3d3-93f6cb12806e
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.53%. Comparing base (1632651) to head (2edfe79).

Additional details and impacted files

Impacted file tree graph

@@ Coverage Diff @@## main #1370 +/- ##
==========================================
+ Coverage 91.55% 92.53% +0.98% 
==========================================
Files 521 521 Lines 100302 100302 ==========================================
+ Hits 91827 92810 +983 + Misses 8475 7492 -983 
FlagCoverage Δ
miri92.53% <ø> (+0.98%)⬆️
unittests92.49% <ø> (+1.26%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing linesCoverage Δ
diskann-benchmark-core/src/search/ids.rs97.98% <ø> (ø)
...iskann-benchmark-runner/src/internal/regression.rs98.11% <ø> (ø)
diskann-bftree/src/vectors.rs89.58% <ø> (ø)
...kann-disk/src/search/provider/disk_sector_graph.rs97.34% <ø> (ø)
...kann-disk/src/utils/instrumentation/timer/linux.rs86.66% <ø> (ø)
...lter/src/encoded_attribute_provider/ast_id_expr.rs93.78% <ø> (ø)
.../encoded_attribute_provider/ast_label_id_mapper.rs97.41% <ø> (ø)
...odel/graph/provider/async_/inmem/full_precision.rs81.89% <ø> (ø)
...s/src/model/graph/provider/async_/inmem/product.rs91.07% <ø> (ø)
...ers/src/model/graph/provider/async_/postprocess.rs100.00% <ø> (ø)
... and 15 more

... and 40 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for freeto 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.

2 participants

@wuw92@codecov-commenter