Improve pre-commit config (#9563)

- Add a few more hooks. These are all very fast, and I've found them useful in other projects:
  - Autofixes:
    - `trailing-whitespace`: fixes trailing whitespace
    - `requirements-txt-fixer`: alphabetises items in `requirements.txt` files
    - `end-of-file-fixer`: makes sure every file ends with a single newline character
    - `mixed-line-ending`: Makes sure Windows users don't accidentally introduce CRLF line endings into a file that uses LF line endings
  - None-autofixes:
    - `check-yaml`: loads YAML files to validate syntax
    - `check-toml`: loads TOML files to validate syntax
    - `check-merge-conflict`: detects merge-conflict strings in files and blocks them from accidentally being committed
    - `check-case-conflict`: checks for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT; blocks them from being committed.
  - Change the bot schedule to quarterly, to reduce noisy PRs
  - Change the `black` language target-version to Python 3.10, synching the setting here with the changes that were made to our `pyproject.toml` file in #7538
This commit is contained in:
Alex Waygood
2023-01-18 14:29:18 +00:00
committed by GitHub
parent aa4d6d87ae
commit a4e3cfefac
14 changed files with 30 additions and 19 deletions

View File

@@ -1,4 +1,15 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0 # must match requirements-tests.txt
hooks:
- id: trailing-whitespace
- id: requirements-txt-fixer
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
- id: check-merge-conflict
- id: mixed-line-ending
- id: check-case-conflict
- repo: https://github.com/hadialqattan/pycln
rev: v2.1.3 # must match requirements-tests.txt
hooks:
@@ -8,7 +19,7 @@ repos:
rev: 22.12.0 # must match requirements-tests.txt
hooks:
- id: black
language_version: python3.9
language_version: python3.10
- repo: https://github.com/pycqa/isort
rev: 5.11.4 # must match requirements-tests.txt
hooks:
@@ -33,6 +44,6 @@ ci:
autofix_commit_msg: "[pre-commit.ci] auto fixes from pre-commit.com hooks"
autofix_prs: true
autoupdate_commit_msg: "[pre-commit.ci] pre-commit autoupdate"
autoupdate_schedule: weekly
autoupdate_schedule: quarterly
skip: [flake8]
submodules: false