devx: add a repo-managed pre-push CI gate

Add a versioned pre-push runner that mirrors the basic required CI suites we can execute locally, including version/changelog checks, Rust fmt/clippy/core checks, Python lint/typecheck/tests, docs, and the WASM gate.

Wire the runner into pre-commit at the pre-push stage, add make prepush and make hooks for manual use and hook installation, and document the workflow in the contribution guides.

Also add pre-commit to the development dependency set and refresh uv.lock so a synced dev environment can install and run the hook reproducibly.
This commit is contained in:
Pratik Bhadane
2026-03-24 14:24:44 +05:30
parent 29c6f5cf84
commit ba77fbd418
7 changed files with 352 additions and 4 deletions
+28
View File
@@ -36,6 +36,34 @@ uv run ruff check python/ tests/
uv run mypy python/ferro_ta --ignore-missing-imports
```
## Git hooks and pre-push checks
Install the repo-managed git hooks after syncing your environment:
```bash
make hooks
```
That installs both the existing `pre-commit` hook and a `pre-push` hook that
runs the local CI gate before anything is pushed.
To run the same gate manually:
```bash
make prepush
```
To run only part of it while iterating:
```bash
make prepush CHECKS="version changelog python_lint"
```
The pre-push runner covers the basic required CI categories we can execute
locally: version/changelog checks, Rust fmt/clippy/core checks, Python
lint/typecheck/tests, docs, and WASM. It intentionally skips the multi-version
matrix, audit, and benchmark-regression jobs.
## Alternative: set up with plain pip
```bash