Repository navigation
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Ruff as a (currently non-blocking) linter/formatter check for ARC, wiring it into repo config, CI, and documentation so contributors can see lint status on PRs.
Changes:
- Add Ruff configuration to
pyproject.toml(rule selection, ignores, per-file ignores, and format settings). - Add a GitHub Actions workflow to run
ruff checkandruff format --checkon PRs andmain(non-blocking). - Add a Ruff status badge to the README.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| README.md | Adds a Ruff workflow badge to surface lint status. |
| pyproject.toml | Introduces Ruff lint/format configuration and project-specific excludes/ignores. |
| .github/workflows/ruff.yml | Adds a CI workflow that runs Ruff in continue-on-error mode. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #860 +/- ##
==========================================
- Coverage 67.12% 67.03% -0.09%
==========================================
Files 123 123
Lines 43602 43602
Branches 11144 11144
==========================================
- Hits 29268 29230 -38
- Misses 11197 11221 +24
- Partials 3137 3151 +14
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
| "*.egg-info", | ||
| ".eggs", | ||
| "ipython", # notebook tutorials | ||
| "arc/molecule", # Cython-compiled sources + tightly coupled modules |
There was a problem hiding this comment.
@calvinp0, as discusses offline, now we ignore the entire molecule module
…rift (#1066) ## What Adds a `codecov.yml` (23 lines, no code change): - `coverage.status.project.default.threshold: 1%` - `coverage.status.patch.default.target: 80%` ## Why ARC has no Codecov configuration at all — `.coveragerc` configures coverage.py's *collection*, not Codecov's *status checks*. With no config, Codecov falls back to its built-in defaults, under which the `project` status is `target: auto` with a **0% threshold**: total coverage may never dip by any amount relative to the base commit. The consequence is that nearly every PR adding code covered below the repository average (~67%) reports a failing check while every test job, CodeQL and the functional suite are green. Observed on the current open set, all red on `codecov/project` alone: | PR | status | |---|---| | #653 | `67.03% (-0.10%)` → `67.05% (-0.08%)` after adding a genuine unit test | | #860, #1016, #1039, #1050, #1054, #1055, #1056, #1057 | red on `codecov/project`, everything else green | On #653, `codecov/patch` simultaneously reported *"Coverage not affected"* — the gate that actually judges whether the PR's new code is tested was already satisfied. A check that fails on one-tenth of a percentage point trains reviewers to ignore it, which costs us the patch signal too. ## What this does and does not change - **Does:** lets total coverage drift up to 1% without failing the status. - **Does:** keep an explicit `patch` target, so the coverage of a PR's own new or changed lines remains a gating signal. This is the stricter half of the config, not a loosening. - **Does not:** touch any test or source file, change `.coveragerc`, or alter what coverage is collected. - **Does not:** raise ARC's actual coverage. That is a separate and much larger piece of work. Note that Codecov re-evaluates statuses on new uploads, so already-open PRs will pick this up on their next CI run rather than retroactively.
Add
ruffas ARC's linter: config inpyproject.toml, workflow in.github/workflows/ruff.yml, status badge in the README.Ruff currently runs in non-blocking mode (
continue-on-error: true)