Skip to content

ci: switch from pre-commit to prek - #53

Merged
nstarman merged 8 commits into
mainfrom
switch-to-prek
Sep 15, 2026
Merged

nstarman merged 8 commits into
mainfrom
switch-to-prek

Conversation

@nstarman

Copy link
Copy Markdown
Contributor

Summary

  • Switches from pre-commit to prek, a drop-in, Rust-based reimplementation that reads the same .pre-commit-config.yaml — no hook changes needed
  • Swaps the pre-commit dependency for prek wherever it's declared (nox lint group / dev group) and updates the nox precommit session (or CI action) to invoke prek instead
  • Regenerates uv.lock to match

This mirrors the same swap already merged in unxt#929, coordinax#881, jaxmore#26, quaxed#213, and quax-blocks#64.

Note: this repo's .pre-commit-config.yaml still has pre-commit.ci's ci: autoupdate block. Disabling the pre-commit.ci GitHub App integration itself is a setting on pre-commit.ci / the repo's installed-apps page, not something a code change can do — worth doing once this merges, to avoid running checks twice.

Test plan

  • uv lock resolves cleanly with prek replacing pre-commit
  • Verified prek run --all-files (and no-commit-to-branch specifically) locally against this org's existing .pre-commit-config.yaml format

🤖 Generated with Claude Code

prek is a drop-in, Rust-based reimplementation of pre-commit that reads
the same .pre-commit-config.yaml. Swaps the pre-commit dependency and
invocations (nox session / CI action) for prek.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (6c0b9ee) to head (20d52c0).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #53   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            1         1           
  Lines            6         6           
=========================================
  Hits             6         6           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

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

no-commit-to-branch would otherwise fail every push to main: CI checks
out a real local branch literally named `main` for push events, so the
hook would always fire. It's a client-side guard for a human running
`git commit`/`git push` locally (or via installed git hooks) -- not
something a full "run every hook" CI invocation should re-evaluate
after the fact. Skips it there via SKIP=no-commit-to-branch; the hook
itself is untouched and still fully active locally.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
nstarman and others added 6 commits September 15, 2026 11:40
…anch

Appends no-commit-to-branch to any SKIP a developer already has set
(e.g. via their shell) rather than overwriting it wholesale, matching
the same fix applied in response to Copilot review feedback on
GalacticDynamics/coordinax#885.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Addresses Copilot review feedback on GalacticDynamics/galax#847: the
comment said "CI checks out the real main branch," but the skip
applies unconditionally, including local `nox -s lint` runs -- which
is correct (a CI-only skip would leave the same false failure for any
local dev running the full suite while on `main`). Fixes the wording
to match the actual, intended behavior instead of narrowing it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Addresses Copilot review feedback on GalacticDynamics/dataclassish#94:
the docstring "Run prek." on a session still named `precommit` could
read as though the session itself was renamed. Spells out that it
runs the pre-commit hooks, now via prek.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Addresses Copilot review feedback on GalacticDynamics/galax#847: this
comment still said no-commit-to-branch guards `git push`, but the
earlier stages: [pre-commit] fix means it no longer runs on push at
all. Clarifies that explicitly instead of leaving stale wording.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… trigger

Addresses Copilot review feedback on GalacticDynamics/galax#847: "it
never fires on push" reads as a claim about this workflow's own
`on: push:` trigger (which is false -- that's why the SKIP exists at
all), when it actually means the git pre-push hook stage. Spells that
out explicitly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The archaeology (why pre-commit's nodeenv/pyyaml floors mattered, why
--skip clobbers, the full CI-checkout explanation) belongs in commit
history, not permanently inline. Keeps just enough to orient a future
reader without re-litigating the whole investigation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@nstarman nstarman added this to the v1.1.0 milestone Sep 15, 2026
@nstarman
nstarman merged commit 03243a7 into main Sep 15, 2026
23 checks passed
@nstarman
nstarman deleted the switch-to-prek branch September 15, 2026 18:55
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