ba77fbd418
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.
44 lines
1.1 KiB
YAML
44 lines
1.1 KiB
YAML
# Pre-commit hooks for ferro-ta
|
|
# Install: pre-commit install --hook-type pre-commit --hook-type pre-push
|
|
# Run: pre-commit run --all-files
|
|
default_language_version:
|
|
python: python3
|
|
|
|
repos:
|
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
rev: v0.8.0
|
|
hooks:
|
|
- id: ruff
|
|
args: [--fix]
|
|
- id: ruff-format
|
|
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v5.0.0
|
|
hooks:
|
|
- id: trailing-whitespace
|
|
- id: end-of-file-fixer
|
|
- id: check-yaml
|
|
- id: check-added-large-files
|
|
args: [--maxkb=1000]
|
|
- id: check-merge-conflict
|
|
- id: debug-statements
|
|
|
|
# Optional: uncomment to run mypy on commit (after type errors are fixed)
|
|
# - repo: local
|
|
# hooks:
|
|
# - id: mypy
|
|
# name: mypy
|
|
# entry: mypy python/ferro_ta --ignore-missing-imports
|
|
# language: system
|
|
# pass_filenames: false
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: ci-basic-pre-push
|
|
name: ci basic pre-push
|
|
entry: scripts/pre_push_checks.sh
|
|
language: system
|
|
pass_filenames: false
|
|
always_run: true
|
|
stages: [pre-push]
|