Skip to content

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

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

Copilot AI lite review requested due to automatic review settings September 15, 2026 14:30
@github-actions github-actions Bot added the 🔧 Add / update configuration Add or update configuration files. label Sep 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The dependency and nox-session updates appear consistent and CI runs nox -s lint, which will now execute prek via the existing precommit session.

Pull request overview

Updates the repo’s lint tooling to use prek (a Rust-based, pre-commit-compatible runner) in place of pre-commit, keeping the existing .pre-commit-config.yaml hooks while swapping the executable and dependency.

Changes:

  • Replace pre-commit with prek in the lint dependency group.
  • Update the nox precommit session to run prek run --all-files.
  • Regenerate uv.lock to reflect the dependency swap and removed transitive deps.
File summaries
File Description
uv.lock Re-locks dependencies with prek replacing pre-commit and removes pre-commit transitive packages.
pyproject.toml Switches the lint dependency group from pre-commit to prek.
noxfile.py Updates the precommit session command to invoke prek instead of pre-commit.
Review details
  • Files reviewed: 2/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread noxfile.py Outdated
@codspeed

codspeed Bot commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 12 untouched benchmarks


Comparing switch-to-prek (40157cf) with main (1d78fb7)

Open in CodSpeed

@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 (1d78fb7) to head (40157cf).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #94   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           12        12           
  Lines          290       290           
=========================================
  Hits           290       290           

☔ 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.

nstarman added a commit to GalacticDynamics/unxt that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/jaxmore that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/quaxed that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/xmmutablemap that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/optional_dependencies that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/zeroth that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/oncequinox that referenced this pull request Sep 15, 2026
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>
nstarman added a commit that referenced this pull request Sep 15, 2026
Addresses Copilot review feedback on #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>
nstarman added a commit to GalacticDynamics/is_annotated that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/phasecurvefit that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/plotting_backends that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/diffraxtra that referenced this pull request Sep 15, 2026
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>
nstarman and others added 8 commits September 15, 2026 16:31
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>
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>
…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 #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 v0.10.0 milestone Sep 15, 2026
@nstarman
nstarman merged commit 7a5ab80 into main Sep 15, 2026
26 checks passed
@nstarman
nstarman deleted the switch-to-prek branch September 15, 2026 20:35
nstarman added a commit to GalacticDynamics/phasecurvefit that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/oncequinox that referenced this pull request Sep 15, 2026
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>
nstarman added a commit to GalacticDynamics/diffraxtra that referenced this pull request Sep 15, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔧 Add / update configuration Add or update configuration files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants