Changelog
### 3.4.0
```
==================
Features
- Add `language: haskell`.
- 2932 by alunduil.
- Improve cpu count detection when run under cgroups.
- 2979 PR by jdb8.
- 2978 issue by jdb8.
Fixes
- Handle negative exit codes from hooks receiving posix signals.
- 2971 PR by chriskuehl.
- 2970 issue by chriskuehl.
```
### 3.3.3
```
==================
Fixes
- Work around OS packagers setting `--install-dir` / `--bin-dir` in gem settings.
- 2905 PR by jaysoffian.
- 2799 issue by lmilbaum.
```
### 3.3.2
```
==================
Fixes
- Work around `r` on windows sometimes double-un-quoting arguments.
- 2885 PR by lorenzwalthert.
- 2870 issue by lorenzwalthert.
```
### 3.3.1
```
==================
Fixes
- Work around `git` partial clone bug for `autoupdate` on windows.
- 2866 PR by asottile.
- 2865 issue by adehad.
```
### 3.3.0
```
==================
Features
- Upgrade ruby-build.
- 2846 PR by jalessio.
- Use blobless clone for faster autoupdate.
- 2859 PR by asottile.
- Add `-j` / `--jobs` argument to `autoupdate` for parallel execution.
- 2863 PR by asottile.
- issue by gaborbernat.
```
### 3.2.2
```
==================
Fixes
- Fix support for swift >= 5.8.
- 2836 PR by edelabar.
- 2835 issue by kgrobelny-intive.
```
### 3.2.1
```
==================
Fixes
- Fix `language_version` for `language: rust` without global `rustup`.
- 2823 issue by daschuer.
- 2827 PR by asottile.
```
### 3.2.0
```
==================
Features
- Allow `pre-commit`, `pre-push`, and `pre-merge-commit` as `stages`.
- 2732 issue by asottile.
- 2808 PR by asottile.
- Add `pre-rebase` hook support.
- 2582 issue by BrutalSimplicity.
- 2725 PR by mgaligniana.
Fixes
- Remove bulky cargo cache from `language: rust` installs.
- 2820 PR by asottile.
```
### 3.1.1
```
==================
Fixes
- Fix `rust` with `language_version` and a non-writable host `RUSTUP_HOME`.
- pre-commit-ci/issues173 by Swiftb0y.
- 2788 by asottile.
```
### 3.1.0
```
==================
Fixes
- Fix `dotnet` for `.sln`-based hooks for dotnet>=7.0.200.
- 2763 PR by m-rsha.
- Prevent stashing when `diff` fails to execute.
- 2774 PR by asottile.
- 2773 issue by strubbly.
- Dependencies are no longer sorted in repository key.
- 2776 PR by asottile.
Updating
- Deprecate `language: python_venv`. Use `language: python` instead.
- 2746 PR by asottile.
- 2734 issue by asottile.
```
### 3.0.4
```
==================
Fixes
- Fix hook diff detection for files affected by `--textconv`.
- 2743 PR by adamchainz.
- 2743 issue by adamchainz.
```
### 3.0.3
```
==================
Fixes
- Revert "Prevent local `Gemfile` from interfering with hook execution.".
- 2739 issue by Roguelazer.
- 2740 PR by asottile.
```
### 3.0.2
```
==================
Fixes
- Prevent local `Gemfile` from interfering with hook execution.
- 2727 PR by asottile.
- Fix `language: r`, `repo: local` hooks
- pre-commit-ci/issues107 by lorenzwalthert.
- 2728 PR by asottile.
```
### 3.0.1
```
==================
Fixes
- Ensure coursier hooks are available offline after install.
- 2723 PR by asottile.
```
### 3.0.0
```
==================
Features
- Make `language: golang` bootstrap `go` if not present.
- 2651 PR by taoufik07.
- 2649 issue by taoufik07.
- `language: coursier` now supports `additional_dependencies` and `repo: local`
- 2702 PR by asottile.
- Upgrade `ruby-build` to `20221225`.
- 2718 PR by jalessio.
Fixes
- Improve error message for invalid yaml for `pre-commit autoupdate`.
- 2686 PR by asottile.
- 2685 issue by CarstenGrohmann.
- `repo: local` no longer provisions an empty `git` repo.
- 2699 PR by asottile.
Updating
- Drop support for python<3.8
- 2655 PR by asottile.
- Drop support for top-level list, use `pre-commit migrate-config` to update.
- 2656 PR by asottile.
- Drop support for `sha` to specify revision, use `pre-commit migrate-config`
to update.
- 2657 PR by asottile.
- Remove `pre-commit-validate-config` and `pre-commit-validate-manifest`, use
`pre-commit validate-config` and `pre-commit validate-manifest` instead.
- 2658 PR by asottile.
- `language: golang` hooks must use `go.mod` to specify dependencies
- 2672 PR by taoufik07.
```
### 2.21.0
```
===================
Features
- Require new-enough virtualenv to prevent 3.10 breakage
- 2467 PR by asottile.
- Respect aliases with `SKIP` for environment install.
- 2480 PR by kmARC.
- 2478 issue by kmARC.
- Allow `pre-commit run --files` against unmerged paths.
- 2484 PR by asottile.
- Also apply regex warnings to `repo: local` hooks.
- 2524 PR by chrisRedwine.
- 2521 issue by asottile.
- `rust` is now a "first class" language -- supporting `language_version` and
installation when not present.
- 2534 PR by Holzhaus.
- `r` now uses more-reliable binary installation.
- 2460 PR by lorenzwalthert.
- `GIT_ALLOW_PROTOCOL` is now passed through for git operations.
- 2555 PR by asottile.
- `GIT_ASKPASS` is now passed through for git operations.
- 2564 PR by mattp-.
- Remove `toml` dependency by using `cargo add` directly.
- 2568 PR by m-rsha.
- Support `dotnet` hooks which have dotted prefixes.
- 2641 PR by rkm.
- 2629 issue by rkm.
Fixes
- Properly adjust `--commit-msg-filename` if run from a sub directory.
- 2459 PR by asottile.
- Simplify `--intent-to-add` detection by using `git diff`.
- 2580 PR by m-rsha.
- Fix `R.exe` selection on windows.
- 2605 PR by lorenzwalthert.
- 2599 issue by SInginc.
- Skip default `nuget` source when installing `dotnet` packages.
- 2642 PR by rkm.
```
### 2.20.0
```
===================
Features
- Expose `source` and `object-name` (positional args) of `prepare-commit-msg`
hook as `PRE_COMMIT_COMIT_MSG_SOURCE` and `PRE_COMMIT_COMMIT_OBJECT_NAME`.
- 2407 PR by M-Whitaker.
- 2406 issue by M-Whitaker.
Fixes
- Fix `language: ruby` installs when `--user-install` is set in gemrc.
- 2394 PR by narpfel.
- 2393 issue by narpfel.
- Adjust pty setup for solaris.
- 2390 PR by gaige.
- 2389 issue by gaige.
- Remove unused `--config` option from `gc`, `sample-config`,
`validate-config`, `validate-manifest` sub-commands.
- 2429 PR by asottile.
```
### 2.19.0
```
===================
Features
- Allow multiple outputs from `language: dotnet` hooks.
- 2332 PR by WallucePinkham.
- Add more information to `healthy()` failure.
- 2348 PR by asottile.
- Upgrade ruby-build.
- 2342 PR by jalessio.
- Add `pre-commit validate-config` / `pre-commit validate-manifest` and
deprecate `pre-commit-validate-config` and `pre-commit-validate-manifest`.
- 2362 PR by asottile.
Fixes
- Fix `pre-push` when pushed ref contains spaces.
- 2345 PR by wwade.
- 2344 issue by wwade.
Updating
- Change `pre-commit-validate-config` / `pre-commit-validate-manifest` to
`pre-commit validate-config` / `pre-commit validate-manifest`.
- 2362 PR by asottile.
```
### 2.18.1
```
===================
Fixes
- Fix regression for `repo: local` hooks running `python<3.7`
- 2324 PR by asottile.
```
### 2.18.0
```
===================
Features
- Keep `GIT_HTTP_PROXY_AUTHMETHOD` in git environ.
- 2272 PR by VincentBerthier.
- 2271 issue by VincentBerthier.
- Support both `cs` and `coursier` executables for coursier hooks.
- 2293 PR by Holzhaus.
- Include more information in errors for `language_version` /
`additional_dependencies` for languages which do not support them.
- 2315 PR by asottile.
- Have autoupdate preferentially pick tags which look like versions when
there are multiple equivalent tags.
- 2312 PR by mblayman.
- 2311 issue by mblayman.
- Upgrade `ruby-build`.
- 2319 PR by jalessio.
- Add top level `default_install_hook_types` which will be installed when
`--hook-types` is not specified in `pre-commit install`.
- 2322 PR by asottile.
Fixes
- Fix typo in help message for `--from-ref` and `--to-ref`.
- 2266 PR by leetrout.
- Prioritize binary builds for R dependencies.
- 2277 PR by lorenzwalthert.
- Fix handling of git worktrees.
- 2252 PR by daschuer.
- Fix handling of `$R_HOME` for R hooks.
- 2301 PR by jeff-m-sullivan.
- 2300 issue by jeff-m-sullivan.
- Fix a rare race condition in change stashing.
- 2323 PR by asottile.
- 2287 issue by ian-h-chamberlain.
Updating
- Remove python3.6 support. Note that pre-commit still supports running hooks
written in older versions, but pre-commit itself requires python 3.7+.
- 2215 PR by asottile.
- pre-commit has migrated from the `master` branch to `main`.
- 2302 PR by asottile.
```
### 2.17.0
```
===================
Features
- add warnings for regexes containing `[\\/]`.
- 2151 issue by sanjioh.
- 2154 PR by kuviokelluja.
- upgrade supported ruby versions.
- 2205 PR by jalessio.
- allow `language: conda` to use `mamba` or `micromamba` via
`PRE_COMMIT_USE_MAMBA=1` or `PRE_COMMIT_USE_MICROMAMBA=1` respectively.
- 2204 issue by janjagusch.
- 2207 PR by xhochy.
- display `git --version` in error report.
- 2210 PR by asottile.
- add `language: lua` as a supported language.
- 2158 PR by mblayman.
Fixes
- temporarily add `setuptools` to the zipapp.
- 2122 issue by andreoliwa.
- a737d5f commit by asottile.
- use `go install` instead of `go get` for go 1.18+ support.
- 2161 PR by schmir.
- fix `language: r` with a local renv and `RENV_PROJECT` set.
- 2170 PR by lorenzwalthert.
- forbid overriding `entry` in `language: meta` hooks which breaks them.
- 2180 issue by DanKaplanSES.
- 2181 PR by asottile.
- always use `!/bin/sh` on windows for hook script.
- 2182 issue by hushigome-visco.
- 2187 PR by asottile.
```
### 2.16.0
```
===================
Features
- add warning for regexes containing `[\/]` or `[/\\]`.
- 2053 PR by radek-sprta.
- 2043 issue by asottile.
- move hook template back to `bash` resolving shebang-portability issues.
- 2065 PR by asottile.
- add support for `fail_fast` at the individual hook level.
- 2097 PR by colens3.
- 1143 issue by potiuk.
- allow passthrough of `GIT_CONFIG_KEY_*`, `GIT_CONFIG_VALUE_*`, and
`GIT_CONFIG_COUNT`.
- 2136 PR by emzeat.
Fixes
- fix pre-commit autoupdate for `core.useBuiltinFSMonitor=true` on windows.
- 2047 PR by asottile.
- 2046 issue by lcnittl.
- fix temporary file stashing with for `submodule.recurse=1`.
- 2071 PR by asottile.
- 2063 issue by a666.
- ban broken importlib-resources versions.
- 2098 PR by asottile.
- replace `exit(...)` with `raise SystemExit(...)` for portability.
- 2103 PR by asottile.
- 2104 PR by asottile.
```
### 2.15.0
```
===================
Features
- add support for hooks written in `dart`.
- 2027 PR by asottile.
- add support for `post-rewrite` hooks.
- 2036 PR by uSpike.
- 2035 issue by uSpike.
Fixes
- fix `check-useless-excludes` with exclude matching broken symlink.
- 2029 PR by asottile.
- 2019 issue by pkoch.
- eliminate duplicate mutable sha warning messages for `pre-commit autoupdate`.
- 2030 PR by asottile.
- 2010 issue by graingert.
```
### 2.14.1
```
===================
Fixes
- fix force-push of disparate histories using git>=2.28.
- 2005 PR by asottile.
- 2002 issue by bogusfocused.
- fix `check-useless-excludes` and `check-hooks-apply` matching non-root
`.pre-commit-config.yaml`.
- 2026 PR by asottile.
- pre-commit-ci/issues84 issue by billsioros.
```
### 2.14.0
```
===================
Features
- During `pre-push` hooks, expose local branch as `PRE_COMMIT_LOCAL_BRANCH`.
- 1947 PR by FlorentClarret.
- 1410 issue by MaicoTimmerman.
- Improve container id detection for docker-beside-docker with custom hostname.
- 1919 PR by adarnimrod.
- 1918 issue by adarnimrod.
Fixes
- Read legacy hooks in an encoding-agnostic way.
- 1943 PR by asottile.
- 1942 issue by sbienkow-ninja.
- Fix execution of docker hooks for docker-in-docker.
- 1997 PR by asottile.
- 1978 issue by robin-moss.
```
### 2.13.0
```
===================
Features
- Setting `SKIP=...` skips installation as well.
- 1875 PR by asottile.
- pre-commit-ci/issues53 issue by TylerYep.
- Attempt to mount from host with docker-in-docker.
- 1888 PR by okainov.
- 1387 issue by okainov.
- Enable `repo: local` for `r` hooks.
- 1878 PR by lorenzwalthert.
- Upgrade `ruby-build` and `rbenv`.
- 1913 PR by jalessio.
Fixes
- Better detect `r` packages.
- 1898 PR by lorenzwalthert.
- Avoid warnings with mismatched `renv` versions.
- 1841 PR by lorenzwalthert.
- Reproducibly produce ruby tar resources.
- 1915 PR by asottile.
```
### 2.12.1
```
===================
Fixes
- Fix race condition when stashing files in multiple parallel invocations
- 1881 PR by adamchainz.
- 1880 issue by adamchainz.
```
### 2.12.0
```
===================
Features
- Upgrade rbenv.
- 1854 PR by asottile.
- 1848 issue by sirosen.
Fixes
- Give command length a little more room when running batch files on windows
so underlying commands can expand further.
- 1864 PR by asottile.
- pre-commit/mirrors-prettier7 issue by DeltaXWizard.
- Fix permissions of root folder in ruby archives.
- 1868 PR by asottile.
```
### 2.11.1
```
===================
Fixes
- Fix r hooks when hook repo is a package
- 1831 PR by lorenzwalthert.
```
### 2.11.0
```
===================
Features
- Improve warning for mutable ref.
- 1809 PR by JamMarHer.
- Add support for `post-merge` hook.
- 1800 PR by psacawa.
- 1762 issue by psacawa.
- Add `r` as a supported hook language.
- 1799 PR by lorenzwalthert.
Fixes
- Fix `pre-commit install` on `subst` / network drives on windows.
- 1814 PR by asottile.
- 1802 issue by goroderickgo.
- Fix installation of `local` golang repositories for go 1.16.
- 1818 PR by rafikdraoui.
- 1815 issue by rafikdraoui.
```
### 2.10.1
```
===================
Fixes
- Fix `language: golang` repositories containing recursive submodules
- 1788 issue by gaurav517.
- 1789 PR by paulhfischer.
```
### 2.10.0
```
===================
Features
- Allow `ci` as a top-level map for configuration for https://pre-commit.ci
- 1735 PR by asottile.
- Add warning for mutable `rev` in configuration
- 1715 PR by paulhfischer.
- 974 issue by asottile.
- Add warning for `/*` in top-level `files` / `exclude` regexes
- 1750 PR by paulhfischer.
- 1702 issue by asottile.
- Expose `PRE_COMMIT_REMOTE_BRANCH` environment variable during `pre-push`
hooks
- 1770 PR by surafelabebe.
- Produce error message for `language` / `language_version` for non-installable
languages
- 1771 PR by asottile.
Fixes
- Fix execution in worktrees in subdirectories of bare repositories
- 1778 PR by asottile.
- 1777 issue by s0undt3ch.
```
### 2.9.3
```
==================
Fixes
- Fix crash on cygwin mismatch check outside of a git directory
- 1721 PR by asottile.
- 1720 issue by chronoB.
- Fix cleanup code on docker volumes for go
- 1725 PR by fsouza.
- Fix working directory detection on SUBST drives on windows
- 1727 PR by mrogaski.
- 1610 issue by jcameron73.
```
### 2.9.2
```
==================
Fixes
- Fix default value for `types_or` so `symlink` and `directory` can be matched
- 1716 PR by asottile.
- 1718 issue by CodeBleu.
```
### 2.9.1
```
==================
Fixes
- Improve error message for "hook goes missing"
- 1709 PR by paulhfischer.
- 1708 issue by theod07.
- Add warning for `/*` in `files` / `exclude` regexes
- 1707 PR by paulhfischer.
- 1702 issue by asottile.
- Fix `healthy()` check for `language: python` on windows when the base
executable has non-ascii characters.
- 1713 PR by asottile.
- 1711 issue by Najiva.
```
### 2.9.0
```
==================
Features
- Add `types_or` which allows matching multiple disparate `types` in a hook
- 1677 by MarcoGorelli.
- 607 by asottile.
- Add Github Sponsors / Open Collective links
- https://github.com/sponsors/asottile
- https://opencollective.com/pre-commit
Fixes
- Improve cleanup for `language: dotnet`
- 1678 by rkm.
- Fix "xargs" when running windows batch files
- 1686 PR by asottile.
- 1604 issue by apietrzak.
- 1604 issue by ufwtlsb.
- Fix conflict with external `rbenv` and `language_version: default`
- 1700 PR by asottile.
- 1699 issue by abuxton.
- Improve performance of `git status` / `git diff` commands by ignoring
submodules
- 1704 PR by Vynce.
- 1701 issue by Vynce.
```
### 2.8.2
```
==================
Fixes
- Fix installation of ruby hooks with `language_version: default`
- 1671 issue by aerickson.
- 1672 PR by asottile.
```
### 2.8.1
```
==================
Fixes
- Allow default `language_version` of `system` when the homedir is `/`
- 1669 PR by asottile.
```
### 2.8.0
```
==================
Features
- Update `rbenv` / `ruby-build`
- 1612 issue by tdeo.
- 1614 PR by asottile.
- Update `sample-config` versions
- 1611 PR by mcsitter.
- Add new language: `dotnet`
- 1598 by rkm.
- Add `--negate` option to `language: pygrep` hooks
- 1643 PR by MarcoGorelli.
- Add zipapp support
- 1616 PR by asottile.
- Run pre-commit through https://pre-commit.ci
- 1662 PR by asottile.
- Add new language: `coursier` (a jvm-based package manager)
- 1633 PR by JosephMoniz.
- Exit with distinct codes: 1 (user error), 3 (unexpected error), 130 (^C)
- 1601 PR by int3l.
Fixes
- Improve `healthy()` check for `language: node` + `language_version: system`
hooks when the system executable goes missing.
- pre-commit/action45 issue by KOliver94.
- 1589 issue by asottile.
- 1590 PR by asottile.
- Fix excess whitespace in error log traceback
- 1592 PR by asottile.
- Fix posixlike shebang invocations with shim executables of the git hook
script on windows.
- 1593 issue by Celeborn2BeAlive.
- 1595 PR by Celeborn2BeAlive.
- Remove hard-coded `C:\PythonXX\python.exe` path on windows as it caused
confusion (and `virtualenv` can sometimes do better)
- 1599 PR by asottile.
- Fix `language: ruby` hooks when `--format-executable` is present in a gemrc
- issue by `Rainbow Tux` (discord).
- 1603 PR by asottile.
- Move `cygwin` / `win32` mismatch error earlier to catch msys2 mismatches
- 1605 issue by danyeaw.
- 1606 PR by asottile.
- Remove `-p` workaround for old `virtualenv`
- 1617 PR by asottile.
- Fix `language: node` installations to not symlink outside of the environment
- pre-commit-ci/issues2 issue by DanielJSottile.
- 1667 PR by asottile.
- Don't identify shim executables as valid `system` for defaulting
`language_version` for `language: node` / `language: ruby`
- 1658 issue by adithyabsk.
- 1668 PR by asottile.
```
### 2.7.1
```
==================
Fixes
- Improve performance of docker hooks by removing slow `ps` call
- 1572 PR by rkm.
- 1569 issue by asottile.
- Fix un-`healthy()` invalidation followed by install being reported as
un-`healthy()`.
- 1576 PR by asottile.
- 1575 issue by jab.
- Fix rare file race condition on windows with `os.replace()`
- 1577 PR by asottile.
```
### 2.7.0
```
==================
Features
- Produce error message if an environment is immediately unhealthy
- 1535 PR by asottile.
- Add --no-allow-missing-config option to init-templatedir
- 1539 PR by singergr.
- Add warning for old list-style configuration
- 1544 PR by asottile.
- Allow pre-commit to succeed on a readonly store.
- 1570 PR by asottile.
- 1536 issue by asottile.
Fixes
- Fix error messaging when the store directory is readonly
- 1546 PR by asottile.
- 1536 issue by asottile.
- Improve `diff` performance with many hooks
- 1566 PR by jhenkens.
- 1564 issue by jhenkens.
```
### 2.6.0
```
==================
Fixes
- Fix node hooks when `NPM_CONFIG_USERCONFIG` is set
- 1521 PR by asottile.
- 1516 issue by rkm.
Features
- Skip `rbenv` / `ruby-download` if system ruby is available
- 1509 PR by asottile.
- Partial support for ruby on windows (if system ruby is installed)
- 1509 PR by asottile.
- 201 issue by asottile.
```
### 2.5.1
```
==================
Fixes
- Prevent infinite recursion of post-checkout on clone
- 1497 PR by asottile.
- 1496 issue by admorgan.
```
### 2.5.0
```
==================
Features
- Expose a `PRE_COMMIT=1` environment variable when running hooks
- 1467 PR by tech-chad.
- 1426 issue by lorenzwalthert.
Fixes
- Fix `UnicodeDecodeError` on windows when using the `py` launcher to detect
executables with non-ascii characters in the path
- 1474 PR by asottile.
- 1472 issue by DrFobos.
- Fix `DeprecationWarning` on python3.9 for `random.shuffle` method
- 1480 PR by asottile.
- 1479 issue by isidentical.
- Normalize slashes earlier such that global `files` / `exclude` use forward
slashes on windows as well.
- 1494 PR by asottile.
- 1476 issue by harrybiddle.
```
### 2.4.0
```
==================
Features
- Add support for `post-commit` hooks
- 1415 PR by ModischFabrications.
- 1411 issue by ModischFabrications.
- Silence pip version warning in python installation error
- 1412 PR by asottile.
- Improve python `healthy()` when upgrading operating systems.
- 1431 PR by asottile.
- 1427 issue by ahonnecke.
- `language: python_venv` is now an alias to `language: python` (and will be
removed in a future version).
- 1431 PR by asottile.
- Speed up python `healthy()` check.
- 1431 PR by asottile.
- `pre-commit autoupdate` now tries to maintain quoting style of `rev`.
- 1435 PR by marcjay.
- 1434 issue by marcjay.
Fixes
- Fix installation of go modules in `repo: local`.
- 1428 PR by scop.
- Fix committing with unstaged files and a failing `post-checkout` hook.
- 1422 PR by domodwyer.
- 1418 issue by domodwyer.
- Fix installation of node hooks with system node installed on freebsd.
- 1443 PR by asottile.
- 1440 issue by jockej.
- Fix ruby hooks when `GEM_PATH` is set globally.
- 1442 PR by tdeo.
- Improve error message when `pre-commit autoupdate` /
`pre-commit migrate-config` are run but the pre-commit configuration is not
valid yaml.
- 1448 PR by asottile.
- 1447 issue by rpdelaney.
```
### 2.3.0
```
==================
Features
- Calculate character width using `east_asian_width`
- 1378 PR by sophgn.
- Use `language_version: system` by default for `node` hooks if `node` / `npm`
are globally installed.
- 1388 PR by asottile.
Fixes
- No longer use a hard-coded user id for docker hooks on windows
- 1371 PR by killuazhu.
- Fix colors on windows during `git commit`
- 1381 issue by Cielquan.
- 1382 PR by asottile.
- Produce readable error message for incorrect argument count to `hook-impl`
- 1394 issue by pip9ball.
- 1395 PR by asottile.
- Fix installations which involve an upgrade of `pip` on windows
- 1398 issue by xiaohuazi123.
- 1399 PR by asottile.
- Preserve line endings in `pre-commit autoupdate`
- 1402 PR by utek.
```
### 2.2.0
```
==================
Features
- Add support for the `post-checkout` hook
- 1120 issue by domenkozar.
- 1339 PR by andrewhare.
- Add more readable `--from-ref` / `--to-ref` aliases for `--source` /
`--origin`
- 1343 PR by asottile.
Fixes
- Make sure that `--commit-msg-filename` is passed for `commit-msg` /
`prepare-commit-msg`.
- 1336 PR by particledecay.
- 1341 PR by particledecay.
- Fix crash when installation error is un-decodable bytes
- 1358 issue by Guts.
- 1359 PR by asottile.
- Fix python `healthy()` check when `python` executable goes missing.
- 1363 PR by asottile.
- Fix crash when script executables are missing shebangs.
- 1350 issue by chriselion.
- 1364 PR by asottile.
Misc.
- pre-commit now requires python>=3.6.1 (previously 3.6.0)
- 1346 PR by asottile.
```
### 2.1.1
```
==================
Fixes
- Temporarily restore python 3.6.0 support (broken in 2.0.0)
- reported by obestwalter.
- 081f3028 by asottile.
```
### 2.1.0
```
==================
Features
- Replace `aspy.yaml` with `sort_keys=False`.
- 1306 PR by asottile.
- Add support for `perl`.
- 1303 PR by scop.
Fixes
- Improve `.git/hooks/*` shebang creation when pythons are in `/usr/local/bin`.
- 1312 issue by kbsezginel.
- 1319 PR by asottile.
Misc.
- Add repository badge for pre-commit.
- [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
- 1334 PR by ddelange.
```
### 2.0.1
```
==================
Fixes
- Fix `ImportError` in python 3.6.0 / 3.6.1 for `typing.NoReturn`.
- 1302 PR by asottile.
```
### 2.0.0
```
==================
Features
- Expose `PRE_COMMIT_REMOTE_NAME` and `PRE_COMMIT_REMOTE_URL` as environment
variables during `pre-push` hooks.
- 1274 issue by dmbarreiro.
- 1288 PR by dmbarreiro.
Fixes
- Fix `python -m pre_commit --version` to mention `pre-commit` instead of
`__main__.py`.
- 1273 issue by ssbarnea.
- 1276 PR by orcutt989.
- Don't filter `GIT_SSL_NO_VERIFY` from environment when cloning.
- 1293 PR by schiermike.
- Allow `pre-commit init-templatedir` to succeed even if `core.hooksPath` is
set.
- 1298 issue by damienrj.
- 1299 PR by asottile.
Misc
- Fix changelog date for 1.21.0.
- 1275 PR by flaudisio.
Updating
- Removed `pcre` language, use `pygrep` instead.
- 1268 PR by asottile.
- Removed `--tags-only` argument to `pre-commit autoupdate` (it has done
nothing since 0.14.0).
- 1269 by asottile.
- Remove python2 / python3.5 support. Note that pre-commit still supports
running hooks written in python2, but pre-commit itself requires python 3.6+.
- 1260 issue by asottile.
- 1277 PR by asottile.
- 1281 PR by asottile.
- 1282 PR by asottile.
- 1287 PR by asottile.
- 1289 PR by asottile.
- 1292 PR by asottile.
```
### 1.21.0
```
===================
Features
- Add `conda` as a new `language`.
- 1204 issue by xhochy.
- 1232 PR by xhochy.
- Add top-level configuration `files` for file selection.
- 1220 issue by TheButlah.
- 1248 PR by asottile.
- Rework `--verbose` / `verbose` to be more consistent with normal runs.
- 1249 PR by asottile.
- Add support for the `pre-merge-commit` git hook.
- 1210 PR by asottile.
- this requires git 2.24+.
- Add `pre-commit autoupdate --freeze` which produces "frozen" revisions.
- 1068 issue by SkypLabs.
- 1256 PR by asottile.
- Display hook runtime duration when run with `--verbose`.
- 1144 issue by potiuk.
- 1257 PR by asottile.
Fixes
- Produce better error message when erroneously running inside of `.git`.
- 1219 issue by Nusserdt.
- 1224 PR by asottile.
- Note: `git` has since fixed this bug: git/git36fd304d
- Produce better error message when hook installation fails.
- 1250 issue by asottile.
- 1251 PR by asottile.
- Fix cloning when `GIT_SSL_CAINFO` is necessary.
- 1253 issue by igankevich.
- 1254 PR by igankevich.
- Fix `pre-commit try-repo` for bare, on-disk repositories.
- 1258 issue by webknjaz.
- 1259 PR by asottile.
- Add some whitespace to `pre-commit autoupdate` to improve terminal autolink.
- 1261 issue by yhoiseth.
- 1262 PR by yhoiseth.
Misc.
- Minor code documentation updates.
- 1200 PR by ryanrhee.
- 1201 PR by ryanrhee.
```
### 1.20.0
```
===================
Features
- Allow building newer versions of `ruby`.
- 1193 issue by choffee.
- 1195 PR by choffee.
- Bump versions reported in `pre-commit sample-config`.
- 1197 PR by asottile.
Fixes
- Fix rare race condition with multiple concurrent first-time runs.
- 1192 issue by raholler.
- 1196 PR by asottile.
```
### 1.19.0
```
===================
Features
- Allow `--hook-type` to be specified multiple times.
- example: `pre-commit install --hook-type pre-commit --hook-type pre-push`
- 1139 issue by MaxymVlasov.
- 1145 PR by asottile.
- Include more version information in crash logs.
- 1142 by marqueewinq.
- Hook colors are now passed through on platforms which support `pty`.
- 1169 by asottile.
- pre-commit now uses `importlib.metadata` directly when running in python 3.8
- 1176 by asottile.
- Normalize paths to forward slash separators on windows.
- makes it easier to match paths with `files:` regex
- avoids some quoting bugs in shell-based hooks
- 1173 issue by steigenTI.
- 1179 PR by asottile.
Fixes
- Remove some extra newlines from error messages.
- 1148 by asottile.
- When a hook is not executable it now reports `not executable` instead of
`not found`.
- 1159 issue by nixjdm.
- 1161 PR by WillKoehrsen.
- Fix interleaving of stdout / stderr in hooks.
- 1168 by asottile.
- Fix python environment `healthy()` check when current working directory
contains modules which shadow standard library names.
- issue by vwhsu92.
- 1185 PR by asottile.
Updating
- Regexes handling both backslashes and forward slashes for directory
separators now only need to handle forward slashes.
```
### 1.18.3
```
===================
Fixes
- Fix `node_modules` plugin installation on windows
- 1123 issue by henryykt.
- 1122 PR by henryykt.
```
### 1.18.2
```
===================
Fixes
- Make default python lookup more deterministic to avoid redundant installs
- 1117 PR by scop.
```
### 1.18.1
```
===================
Fixes
- Fix installation of `rust` hooks with new `cargo`
- 1112 issue by zimbatm.
- 1113 PR by zimbatm.
```
### 1.18.0
```
===================
Features
- Use the current running executable if it matches the requested
`language_version`
- 1062 PR by asottile.
- Print the stage when a hook is not found
- 1078 issue by madkinsz.
- 1079 PR by madkinsz.
- `pre-commit autoupdate` now supports non-`master` default branches
- 1089 PR by asottile.
- Add `pre-commit init-templatedir` which makes it easier to automatically
enable `pre-commit` in cloned repositories.
- 1084 issue by ssbarnea.
- 1090 PR by asottile.
- 1107 PR by asottile.
- pre-commit's color can be controlled using
`PRE_COMMIT_COLOR={auto,always,never}`
- 1073 issue by saper.
- 1092 PR by geieredgar.
- 1098 PR by geieredgar.
- pre-commit's color can now be disabled using `TERM=dumb`
- 1073 issue by saper.
- 1103 PR by asottile.
- pre-commit now supports `docker` based hooks on windows
- 1072 by cz-fish.
- 1093 PR by geieredgar.
Fixes
- Fix shallow clone
- 1077 PR by asottile.
- Fix autoupdate version flip flop when using shallow cloning
- 1076 issue by mxr.
- 1088 PR by asottile.
- Fix autoupdate when the current revision is invalid
- 1088 PR by asottile.
Misc.
- Replace development instructions with `tox --devenv ...`
- 1032 issue by yoavcaspi.
- 1067 PR by asottile.
```
### 1.17.0
```
===================
Features
- Produce better output on `^C`
- 1030 PR by asottile.
- Warn on unknown keys at the top level and repo level
- 1028 PR by yoavcaspi.
- 1048 PR by asottile.
Fixes
- Fix handling of `^C` in wrapper script in python 3.x
- 1027 PR by asottile.
- Fix `rmtree` for non-writable directories
- 1042 issue by detailyang.
- 1043 PR by asottile.
- Pass `--color` option to `git diff` in `--show-diff-on-failure`
- 1007 issue by chadrik.
- 1051 PR by mandarvaze.
Misc.
- Fix test when `pre-commit` is installed globally
- 1032 issue by yoavcaspi.
- 1045 PR by asottile.
```
### 1.16.1
```
===================
Fixes
- Don't `UnicodeDecodeError` on unexpected non-UTF8 output in python health
check on windows.
- 1021 issue by nicoddemus.
- 1022 PR by asottile.
```
### 1.16.0
```
===================
Features
- Add support for `prepare-commit-msg` hook
- 1004 PR by marcjay.
Fixes
- Fix repeated legacy `pre-commit install` on windows
- 1010 issue by AbhimanyuHK.
- 1011 PR by asottile.
- Whitespace fixup
- 1014 PR by mxr.
- Fix CI check for working pcre support
- 1015 PR by Myrheimb.
Misc.
- Switch CI from travis / appveyor to azure pipelines
- 1012 PR by asottile.
```
### 1.15.2
```
===================
Fixes
- Fix cloning non-branch tag while in the fallback slow-clone strategy.
- 997 issue by jpinner.
- 998 PR by asottile.
```
### 1.15.1
```
===================
Fixes
- Fix command length calculation on posix when `SC_ARG_MAX` is not defined.
- 691 issue by ushuz.
- 987 PR by asottile.
```
### 1.15.0
```
===================
Features
- No longer require being in a `git` repo to run `pre-commit` `clean` / `gc` /
`sample-config`.
- 959 PR by asottile.
- Improve command line length limit detection.
- 691 issue by antonbabenko.
- 966 PR by asottile.
- Use shallow cloning when possible.
- 958 PR by DanielChabrowski.
- Add `minimum_pre_commit_version` top level key to require a new-enough
version of `pre-commit`.
- 977 PR by asottile.
- Add helpful CI-friendly message when running
`pre-commit run --all-files --show-diff-on-failure`.
- 982 PR by bnorquist.
Fixes
- Fix `try-repo` for staged untracked changes.
- 973 PR by DanielChabrowski.
- Fix rpm build by explicitly using `!/usr/bin/env python3` in hook template.
- 985 issue by tim77.
- 986 PR by tim77.
- Guard against infinite recursion when executing legacy hook script.
- 981 PR by tristan0x.
Misc
- Add test for `git.no_git_env()`
- 972 PR by javabrett.
```
### 1.14.4
```
===================
Fixes
- Don't filter `GIT_SSH_COMMAND` env variable from `git` commands
- 947 issue by firba1.
- 948 PR by firba1.
- Install npm packages as if they were installed from `git`
- 943 issue by ssbarnea.
- 949 PR by asottile.
- Don't filter `GIT_EXEC_PREFIX` env variable from `git` commands
- 664 issue by revolter.
- 944 PR by minrk.
```
### 1.14.3
```
===================
Fixes
- Improve performance of filename classification by 45% - 55%.
- 921 PR by asottile.
- Fix installing `go` hooks while `GOBIN` environment variable is set.
- 924 PR by ashanbrown.
- Fix crash while running `pre-commit migrate-config` / `pre-commit autoupdate`
with an empty configuration file.
- 929 issue by ardakuyumcu.
- 933 PR by jessebona.
- Require a newer virtualenv to fix metadata-based setup.cfg installs.
- 936 PR by asottile.
```
### 1.14.2
```
===================
Fixes
- Make the hook shebang detection more timid (1.14.0 regression)
- Homebrew/homebrew-core35825.
- 915 PR by asottile.
```
### 1.14.1
```
===================
Fixes
- Fix python executable lookup on windows when using conda
- 913 issue by dawelter2.
- 914 PR by asottile.
```
### 1.14.0
```
===================
Features
- Add an `alias` configuration value to allow repeated hooks to be
differentiated
- 882 issue by s0undt3ch.
- 886 PR by s0undt3ch.
- Add `identity` meta hook which just prints filenames
- 865 issue by asottile.
- 898 PR by asottile.
- Factor out `cached-property` and improve startup performance by ~10%
- 899 PR by asottile.
- Add a warning on unexpected keys in configuration
- 899 PR by asottile.
- Teach `pre-commit try-repo` to clone uncommitted changes on disk.
- 589 issue by sverhagen.
- 703 issue by asottile.
- 904 PR by asottile.
- Implement `pre-commit gc` which will clean up no-longer-referenced cache
repos.
- 283 issue by jtwang.
- 906 PR by asottile.
- Add top level config `default_language_version` to streamline overriding the
`language_version` configuration in many places
- 647 issue by asottile.
- 908 PR by asottile.
- Add top level config `default_stages` to streamline overriding the `stages`
configuration in many places
- 768 issue by mattlqx.
- 909 PR by asottile.
Fixes
- More intelligently pick hook shebang (`!/usr/bin/env python3`)
- 878 issue by fristedt.
- 893 PR by asottile.
- Several fixes related to `--files` / `--config`:
- `pre-commit run --files x` outside of a git dir no longer stacktraces
- `pre-commit run --config ./relative` while in a sub directory of the git
repo is now able to find the configuration
- `pre-commit run --files ...` no longer runs a subprocess per file
(performance)
- 895 PR by asottile.
- `pre-commit try-repo ./relative` while in a sub directory of the git repo is
now able to clone properly
- 903 PR by asottile.
- Ensure `meta` repos cannot have a language other than `system`
- 905 issue by asottile.
- 907 PR by asottile.
- Fix committing with unstaged files that were `git add --intent-to-add` added
- 881 issue by henniss.
- 912 PR by asottile.
Misc.
- Use `--no-gpg-sign` when running tests
- 894 PR by s0undt3ch.
```
### 1.13.0
```
===================
Features
- Run hooks in parallel
- individual hooks may opt out of parallel execution with `require_serial: true`
- 510 issue by chriskuehl.
- 851 PR by chriskuehl.
Fixes
- Improve platform-specific `xargs` command length detection
- 691 issue by antonbabenko.
- 839 PR by georgeyk.
- Fix `pre-commit autoupdate` when updating to a latest tag missing a
`.pre-commit-hooks.yaml`
- 856 issue by asottile.
- 857 PR by runz0rd.
- Upgrade the `pre-commit-hooks` version in `pre-commit sample-config`
- 870 by asottile.
- Improve balancing of multiprocessing by deterministic shuffling of args
- 861 issue by Dunedan.
- 874 PR by chriskuehl.
- `ruby` hooks work with latest `gem` by removing `--no-ri` / `--no-rdoc` and
instead using `--no-document`.
- 889 PR by asottile.
Misc.
- Use `--no-gpg-sign` when running tests
- 885 PR by s0undt3ch.
Updating
- If a hook requires serial execution, set `require_serial: true` to avoid the new
parallel execution.
- `ruby` hooks now require `gem>=2.0.0`. If your platform doesn't support this
by default, select a newer version using
[`language_version`](https://pre-commit.com/#overriding-language-version).
```
Links
- PyPI: https://pypi.org/project/pre-commit
- Changelog: https://data.safetycli.com/changelogs/pre-commit/
- Repo: https://github.com/pre-commit/pre-commit
This PR updates pre-commit from 1.12.0 to 3.4.0.
Changelog
### 3.4.0 ``` ================== Features - Add `language: haskell`. - 2932 by alunduil. - Improve cpu count detection when run under cgroups. - 2979 PR by jdb8. - 2978 issue by jdb8. Fixes - Handle negative exit codes from hooks receiving posix signals. - 2971 PR by chriskuehl. - 2970 issue by chriskuehl. ``` ### 3.3.3 ``` ================== Fixes - Work around OS packagers setting `--install-dir` / `--bin-dir` in gem settings. - 2905 PR by jaysoffian. - 2799 issue by lmilbaum. ``` ### 3.3.2 ``` ================== Fixes - Work around `r` on windows sometimes double-un-quoting arguments. - 2885 PR by lorenzwalthert. - 2870 issue by lorenzwalthert. ``` ### 3.3.1 ``` ================== Fixes - Work around `git` partial clone bug for `autoupdate` on windows. - 2866 PR by asottile. - 2865 issue by adehad. ``` ### 3.3.0 ``` ================== Features - Upgrade ruby-build. - 2846 PR by jalessio. - Use blobless clone for faster autoupdate. - 2859 PR by asottile. - Add `-j` / `--jobs` argument to `autoupdate` for parallel execution. - 2863 PR by asottile. - issue by gaborbernat. ``` ### 3.2.2 ``` ================== Fixes - Fix support for swift >= 5.8. - 2836 PR by edelabar. - 2835 issue by kgrobelny-intive. ``` ### 3.2.1 ``` ================== Fixes - Fix `language_version` for `language: rust` without global `rustup`. - 2823 issue by daschuer. - 2827 PR by asottile. ``` ### 3.2.0 ``` ================== Features - Allow `pre-commit`, `pre-push`, and `pre-merge-commit` as `stages`. - 2732 issue by asottile. - 2808 PR by asottile. - Add `pre-rebase` hook support. - 2582 issue by BrutalSimplicity. - 2725 PR by mgaligniana. Fixes - Remove bulky cargo cache from `language: rust` installs. - 2820 PR by asottile. ``` ### 3.1.1 ``` ================== Fixes - Fix `rust` with `language_version` and a non-writable host `RUSTUP_HOME`. - pre-commit-ci/issues173 by Swiftb0y. - 2788 by asottile. ``` ### 3.1.0 ``` ================== Fixes - Fix `dotnet` for `.sln`-based hooks for dotnet>=7.0.200. - 2763 PR by m-rsha. - Prevent stashing when `diff` fails to execute. - 2774 PR by asottile. - 2773 issue by strubbly. - Dependencies are no longer sorted in repository key. - 2776 PR by asottile. Updating - Deprecate `language: python_venv`. Use `language: python` instead. - 2746 PR by asottile. - 2734 issue by asottile. ``` ### 3.0.4 ``` ================== Fixes - Fix hook diff detection for files affected by `--textconv`. - 2743 PR by adamchainz. - 2743 issue by adamchainz. ``` ### 3.0.3 ``` ================== Fixes - Revert "Prevent local `Gemfile` from interfering with hook execution.". - 2739 issue by Roguelazer. - 2740 PR by asottile. ``` ### 3.0.2 ``` ================== Fixes - Prevent local `Gemfile` from interfering with hook execution. - 2727 PR by asottile. - Fix `language: r`, `repo: local` hooks - pre-commit-ci/issues107 by lorenzwalthert. - 2728 PR by asottile. ``` ### 3.0.1 ``` ================== Fixes - Ensure coursier hooks are available offline after install. - 2723 PR by asottile. ``` ### 3.0.0 ``` ================== Features - Make `language: golang` bootstrap `go` if not present. - 2651 PR by taoufik07. - 2649 issue by taoufik07. - `language: coursier` now supports `additional_dependencies` and `repo: local` - 2702 PR by asottile. - Upgrade `ruby-build` to `20221225`. - 2718 PR by jalessio. Fixes - Improve error message for invalid yaml for `pre-commit autoupdate`. - 2686 PR by asottile. - 2685 issue by CarstenGrohmann. - `repo: local` no longer provisions an empty `git` repo. - 2699 PR by asottile. Updating - Drop support for python<3.8 - 2655 PR by asottile. - Drop support for top-level list, use `pre-commit migrate-config` to update. - 2656 PR by asottile. - Drop support for `sha` to specify revision, use `pre-commit migrate-config` to update. - 2657 PR by asottile. - Remove `pre-commit-validate-config` and `pre-commit-validate-manifest`, use `pre-commit validate-config` and `pre-commit validate-manifest` instead. - 2658 PR by asottile. - `language: golang` hooks must use `go.mod` to specify dependencies - 2672 PR by taoufik07. ``` ### 2.21.0 ``` =================== Features - Require new-enough virtualenv to prevent 3.10 breakage - 2467 PR by asottile. - Respect aliases with `SKIP` for environment install. - 2480 PR by kmARC. - 2478 issue by kmARC. - Allow `pre-commit run --files` against unmerged paths. - 2484 PR by asottile. - Also apply regex warnings to `repo: local` hooks. - 2524 PR by chrisRedwine. - 2521 issue by asottile. - `rust` is now a "first class" language -- supporting `language_version` and installation when not present. - 2534 PR by Holzhaus. - `r` now uses more-reliable binary installation. - 2460 PR by lorenzwalthert. - `GIT_ALLOW_PROTOCOL` is now passed through for git operations. - 2555 PR by asottile. - `GIT_ASKPASS` is now passed through for git operations. - 2564 PR by mattp-. - Remove `toml` dependency by using `cargo add` directly. - 2568 PR by m-rsha. - Support `dotnet` hooks which have dotted prefixes. - 2641 PR by rkm. - 2629 issue by rkm. Fixes - Properly adjust `--commit-msg-filename` if run from a sub directory. - 2459 PR by asottile. - Simplify `--intent-to-add` detection by using `git diff`. - 2580 PR by m-rsha. - Fix `R.exe` selection on windows. - 2605 PR by lorenzwalthert. - 2599 issue by SInginc. - Skip default `nuget` source when installing `dotnet` packages. - 2642 PR by rkm. ``` ### 2.20.0 ``` =================== Features - Expose `source` and `object-name` (positional args) of `prepare-commit-msg` hook as `PRE_COMMIT_COMIT_MSG_SOURCE` and `PRE_COMMIT_COMMIT_OBJECT_NAME`. - 2407 PR by M-Whitaker. - 2406 issue by M-Whitaker. Fixes - Fix `language: ruby` installs when `--user-install` is set in gemrc. - 2394 PR by narpfel. - 2393 issue by narpfel. - Adjust pty setup for solaris. - 2390 PR by gaige. - 2389 issue by gaige. - Remove unused `--config` option from `gc`, `sample-config`, `validate-config`, `validate-manifest` sub-commands. - 2429 PR by asottile. ``` ### 2.19.0 ``` =================== Features - Allow multiple outputs from `language: dotnet` hooks. - 2332 PR by WallucePinkham. - Add more information to `healthy()` failure. - 2348 PR by asottile. - Upgrade ruby-build. - 2342 PR by jalessio. - Add `pre-commit validate-config` / `pre-commit validate-manifest` and deprecate `pre-commit-validate-config` and `pre-commit-validate-manifest`. - 2362 PR by asottile. Fixes - Fix `pre-push` when pushed ref contains spaces. - 2345 PR by wwade. - 2344 issue by wwade. Updating - Change `pre-commit-validate-config` / `pre-commit-validate-manifest` to `pre-commit validate-config` / `pre-commit validate-manifest`. - 2362 PR by asottile. ``` ### 2.18.1 ``` =================== Fixes - Fix regression for `repo: local` hooks running `python<3.7` - 2324 PR by asottile. ``` ### 2.18.0 ``` =================== Features - Keep `GIT_HTTP_PROXY_AUTHMETHOD` in git environ. - 2272 PR by VincentBerthier. - 2271 issue by VincentBerthier. - Support both `cs` and `coursier` executables for coursier hooks. - 2293 PR by Holzhaus. - Include more information in errors for `language_version` / `additional_dependencies` for languages which do not support them. - 2315 PR by asottile. - Have autoupdate preferentially pick tags which look like versions when there are multiple equivalent tags. - 2312 PR by mblayman. - 2311 issue by mblayman. - Upgrade `ruby-build`. - 2319 PR by jalessio. - Add top level `default_install_hook_types` which will be installed when `--hook-types` is not specified in `pre-commit install`. - 2322 PR by asottile. Fixes - Fix typo in help message for `--from-ref` and `--to-ref`. - 2266 PR by leetrout. - Prioritize binary builds for R dependencies. - 2277 PR by lorenzwalthert. - Fix handling of git worktrees. - 2252 PR by daschuer. - Fix handling of `$R_HOME` for R hooks. - 2301 PR by jeff-m-sullivan. - 2300 issue by jeff-m-sullivan. - Fix a rare race condition in change stashing. - 2323 PR by asottile. - 2287 issue by ian-h-chamberlain. Updating - Remove python3.6 support. Note that pre-commit still supports running hooks written in older versions, but pre-commit itself requires python 3.7+. - 2215 PR by asottile. - pre-commit has migrated from the `master` branch to `main`. - 2302 PR by asottile. ``` ### 2.17.0 ``` =================== Features - add warnings for regexes containing `[\\/]`. - 2151 issue by sanjioh. - 2154 PR by kuviokelluja. - upgrade supported ruby versions. - 2205 PR by jalessio. - allow `language: conda` to use `mamba` or `micromamba` via `PRE_COMMIT_USE_MAMBA=1` or `PRE_COMMIT_USE_MICROMAMBA=1` respectively. - 2204 issue by janjagusch. - 2207 PR by xhochy. - display `git --version` in error report. - 2210 PR by asottile. - add `language: lua` as a supported language. - 2158 PR by mblayman. Fixes - temporarily add `setuptools` to the zipapp. - 2122 issue by andreoliwa. - a737d5f commit by asottile. - use `go install` instead of `go get` for go 1.18+ support. - 2161 PR by schmir. - fix `language: r` with a local renv and `RENV_PROJECT` set. - 2170 PR by lorenzwalthert. - forbid overriding `entry` in `language: meta` hooks which breaks them. - 2180 issue by DanKaplanSES. - 2181 PR by asottile. - always use `!/bin/sh` on windows for hook script. - 2182 issue by hushigome-visco. - 2187 PR by asottile. ``` ### 2.16.0 ``` =================== Features - add warning for regexes containing `[\/]` or `[/\\]`. - 2053 PR by radek-sprta. - 2043 issue by asottile. - move hook template back to `bash` resolving shebang-portability issues. - 2065 PR by asottile. - add support for `fail_fast` at the individual hook level. - 2097 PR by colens3. - 1143 issue by potiuk. - allow passthrough of `GIT_CONFIG_KEY_*`, `GIT_CONFIG_VALUE_*`, and `GIT_CONFIG_COUNT`. - 2136 PR by emzeat. Fixes - fix pre-commit autoupdate for `core.useBuiltinFSMonitor=true` on windows. - 2047 PR by asottile. - 2046 issue by lcnittl. - fix temporary file stashing with for `submodule.recurse=1`. - 2071 PR by asottile. - 2063 issue by a666. - ban broken importlib-resources versions. - 2098 PR by asottile. - replace `exit(...)` with `raise SystemExit(...)` for portability. - 2103 PR by asottile. - 2104 PR by asottile. ``` ### 2.15.0 ``` =================== Features - add support for hooks written in `dart`. - 2027 PR by asottile. - add support for `post-rewrite` hooks. - 2036 PR by uSpike. - 2035 issue by uSpike. Fixes - fix `check-useless-excludes` with exclude matching broken symlink. - 2029 PR by asottile. - 2019 issue by pkoch. - eliminate duplicate mutable sha warning messages for `pre-commit autoupdate`. - 2030 PR by asottile. - 2010 issue by graingert. ``` ### 2.14.1 ``` =================== Fixes - fix force-push of disparate histories using git>=2.28. - 2005 PR by asottile. - 2002 issue by bogusfocused. - fix `check-useless-excludes` and `check-hooks-apply` matching non-root `.pre-commit-config.yaml`. - 2026 PR by asottile. - pre-commit-ci/issues84 issue by billsioros. ``` ### 2.14.0 ``` =================== Features - During `pre-push` hooks, expose local branch as `PRE_COMMIT_LOCAL_BRANCH`. - 1947 PR by FlorentClarret. - 1410 issue by MaicoTimmerman. - Improve container id detection for docker-beside-docker with custom hostname. - 1919 PR by adarnimrod. - 1918 issue by adarnimrod. Fixes - Read legacy hooks in an encoding-agnostic way. - 1943 PR by asottile. - 1942 issue by sbienkow-ninja. - Fix execution of docker hooks for docker-in-docker. - 1997 PR by asottile. - 1978 issue by robin-moss. ``` ### 2.13.0 ``` =================== Features - Setting `SKIP=...` skips installation as well. - 1875 PR by asottile. - pre-commit-ci/issues53 issue by TylerYep. - Attempt to mount from host with docker-in-docker. - 1888 PR by okainov. - 1387 issue by okainov. - Enable `repo: local` for `r` hooks. - 1878 PR by lorenzwalthert. - Upgrade `ruby-build` and `rbenv`. - 1913 PR by jalessio. Fixes - Better detect `r` packages. - 1898 PR by lorenzwalthert. - Avoid warnings with mismatched `renv` versions. - 1841 PR by lorenzwalthert. - Reproducibly produce ruby tar resources. - 1915 PR by asottile. ``` ### 2.12.1 ``` =================== Fixes - Fix race condition when stashing files in multiple parallel invocations - 1881 PR by adamchainz. - 1880 issue by adamchainz. ``` ### 2.12.0 ``` =================== Features - Upgrade rbenv. - 1854 PR by asottile. - 1848 issue by sirosen. Fixes - Give command length a little more room when running batch files on windows so underlying commands can expand further. - 1864 PR by asottile. - pre-commit/mirrors-prettier7 issue by DeltaXWizard. - Fix permissions of root folder in ruby archives. - 1868 PR by asottile. ``` ### 2.11.1 ``` =================== Fixes - Fix r hooks when hook repo is a package - 1831 PR by lorenzwalthert. ``` ### 2.11.0 ``` =================== Features - Improve warning for mutable ref. - 1809 PR by JamMarHer. - Add support for `post-merge` hook. - 1800 PR by psacawa. - 1762 issue by psacawa. - Add `r` as a supported hook language. - 1799 PR by lorenzwalthert. Fixes - Fix `pre-commit install` on `subst` / network drives on windows. - 1814 PR by asottile. - 1802 issue by goroderickgo. - Fix installation of `local` golang repositories for go 1.16. - 1818 PR by rafikdraoui. - 1815 issue by rafikdraoui. ``` ### 2.10.1 ``` =================== Fixes - Fix `language: golang` repositories containing recursive submodules - 1788 issue by gaurav517. - 1789 PR by paulhfischer. ``` ### 2.10.0 ``` =================== Features - Allow `ci` as a top-level map for configuration for https://pre-commit.ci - 1735 PR by asottile. - Add warning for mutable `rev` in configuration - 1715 PR by paulhfischer. - 974 issue by asottile. - Add warning for `/*` in top-level `files` / `exclude` regexes - 1750 PR by paulhfischer. - 1702 issue by asottile. - Expose `PRE_COMMIT_REMOTE_BRANCH` environment variable during `pre-push` hooks - 1770 PR by surafelabebe. - Produce error message for `language` / `language_version` for non-installable languages - 1771 PR by asottile. Fixes - Fix execution in worktrees in subdirectories of bare repositories - 1778 PR by asottile. - 1777 issue by s0undt3ch. ``` ### 2.9.3 ``` ================== Fixes - Fix crash on cygwin mismatch check outside of a git directory - 1721 PR by asottile. - 1720 issue by chronoB. - Fix cleanup code on docker volumes for go - 1725 PR by fsouza. - Fix working directory detection on SUBST drives on windows - 1727 PR by mrogaski. - 1610 issue by jcameron73. ``` ### 2.9.2 ``` ================== Fixes - Fix default value for `types_or` so `symlink` and `directory` can be matched - 1716 PR by asottile. - 1718 issue by CodeBleu. ``` ### 2.9.1 ``` ================== Fixes - Improve error message for "hook goes missing" - 1709 PR by paulhfischer. - 1708 issue by theod07. - Add warning for `/*` in `files` / `exclude` regexes - 1707 PR by paulhfischer. - 1702 issue by asottile. - Fix `healthy()` check for `language: python` on windows when the base executable has non-ascii characters. - 1713 PR by asottile. - 1711 issue by Najiva. ``` ### 2.9.0 ``` ================== Features - Add `types_or` which allows matching multiple disparate `types` in a hook - 1677 by MarcoGorelli. - 607 by asottile. - Add Github Sponsors / Open Collective links - https://github.com/sponsors/asottile - https://opencollective.com/pre-commit Fixes - Improve cleanup for `language: dotnet` - 1678 by rkm. - Fix "xargs" when running windows batch files - 1686 PR by asottile. - 1604 issue by apietrzak. - 1604 issue by ufwtlsb. - Fix conflict with external `rbenv` and `language_version: default` - 1700 PR by asottile. - 1699 issue by abuxton. - Improve performance of `git status` / `git diff` commands by ignoring submodules - 1704 PR by Vynce. - 1701 issue by Vynce. ``` ### 2.8.2 ``` ================== Fixes - Fix installation of ruby hooks with `language_version: default` - 1671 issue by aerickson. - 1672 PR by asottile. ``` ### 2.8.1 ``` ================== Fixes - Allow default `language_version` of `system` when the homedir is `/` - 1669 PR by asottile. ``` ### 2.8.0 ``` ================== Features - Update `rbenv` / `ruby-build` - 1612 issue by tdeo. - 1614 PR by asottile. - Update `sample-config` versions - 1611 PR by mcsitter. - Add new language: `dotnet` - 1598 by rkm. - Add `--negate` option to `language: pygrep` hooks - 1643 PR by MarcoGorelli. - Add zipapp support - 1616 PR by asottile. - Run pre-commit through https://pre-commit.ci - 1662 PR by asottile. - Add new language: `coursier` (a jvm-based package manager) - 1633 PR by JosephMoniz. - Exit with distinct codes: 1 (user error), 3 (unexpected error), 130 (^C) - 1601 PR by int3l. Fixes - Improve `healthy()` check for `language: node` + `language_version: system` hooks when the system executable goes missing. - pre-commit/action45 issue by KOliver94. - 1589 issue by asottile. - 1590 PR by asottile. - Fix excess whitespace in error log traceback - 1592 PR by asottile. - Fix posixlike shebang invocations with shim executables of the git hook script on windows. - 1593 issue by Celeborn2BeAlive. - 1595 PR by Celeborn2BeAlive. - Remove hard-coded `C:\PythonXX\python.exe` path on windows as it caused confusion (and `virtualenv` can sometimes do better) - 1599 PR by asottile. - Fix `language: ruby` hooks when `--format-executable` is present in a gemrc - issue by `Rainbow Tux` (discord). - 1603 PR by asottile. - Move `cygwin` / `win32` mismatch error earlier to catch msys2 mismatches - 1605 issue by danyeaw. - 1606 PR by asottile. - Remove `-p` workaround for old `virtualenv` - 1617 PR by asottile. - Fix `language: node` installations to not symlink outside of the environment - pre-commit-ci/issues2 issue by DanielJSottile. - 1667 PR by asottile. - Don't identify shim executables as valid `system` for defaulting `language_version` for `language: node` / `language: ruby` - 1658 issue by adithyabsk. - 1668 PR by asottile. ``` ### 2.7.1 ``` ================== Fixes - Improve performance of docker hooks by removing slow `ps` call - 1572 PR by rkm. - 1569 issue by asottile. - Fix un-`healthy()` invalidation followed by install being reported as un-`healthy()`. - 1576 PR by asottile. - 1575 issue by jab. - Fix rare file race condition on windows with `os.replace()` - 1577 PR by asottile. ``` ### 2.7.0 ``` ================== Features - Produce error message if an environment is immediately unhealthy - 1535 PR by asottile. - Add --no-allow-missing-config option to init-templatedir - 1539 PR by singergr. - Add warning for old list-style configuration - 1544 PR by asottile. - Allow pre-commit to succeed on a readonly store. - 1570 PR by asottile. - 1536 issue by asottile. Fixes - Fix error messaging when the store directory is readonly - 1546 PR by asottile. - 1536 issue by asottile. - Improve `diff` performance with many hooks - 1566 PR by jhenkens. - 1564 issue by jhenkens. ``` ### 2.6.0 ``` ================== Fixes - Fix node hooks when `NPM_CONFIG_USERCONFIG` is set - 1521 PR by asottile. - 1516 issue by rkm. Features - Skip `rbenv` / `ruby-download` if system ruby is available - 1509 PR by asottile. - Partial support for ruby on windows (if system ruby is installed) - 1509 PR by asottile. - 201 issue by asottile. ``` ### 2.5.1 ``` ================== Fixes - Prevent infinite recursion of post-checkout on clone - 1497 PR by asottile. - 1496 issue by admorgan. ``` ### 2.5.0 ``` ================== Features - Expose a `PRE_COMMIT=1` environment variable when running hooks - 1467 PR by tech-chad. - 1426 issue by lorenzwalthert. Fixes - Fix `UnicodeDecodeError` on windows when using the `py` launcher to detect executables with non-ascii characters in the path - 1474 PR by asottile. - 1472 issue by DrFobos. - Fix `DeprecationWarning` on python3.9 for `random.shuffle` method - 1480 PR by asottile. - 1479 issue by isidentical. - Normalize slashes earlier such that global `files` / `exclude` use forward slashes on windows as well. - 1494 PR by asottile. - 1476 issue by harrybiddle. ``` ### 2.4.0 ``` ================== Features - Add support for `post-commit` hooks - 1415 PR by ModischFabrications. - 1411 issue by ModischFabrications. - Silence pip version warning in python installation error - 1412 PR by asottile. - Improve python `healthy()` when upgrading operating systems. - 1431 PR by asottile. - 1427 issue by ahonnecke. - `language: python_venv` is now an alias to `language: python` (and will be removed in a future version). - 1431 PR by asottile. - Speed up python `healthy()` check. - 1431 PR by asottile. - `pre-commit autoupdate` now tries to maintain quoting style of `rev`. - 1435 PR by marcjay. - 1434 issue by marcjay. Fixes - Fix installation of go modules in `repo: local`. - 1428 PR by scop. - Fix committing with unstaged files and a failing `post-checkout` hook. - 1422 PR by domodwyer. - 1418 issue by domodwyer. - Fix installation of node hooks with system node installed on freebsd. - 1443 PR by asottile. - 1440 issue by jockej. - Fix ruby hooks when `GEM_PATH` is set globally. - 1442 PR by tdeo. - Improve error message when `pre-commit autoupdate` / `pre-commit migrate-config` are run but the pre-commit configuration is not valid yaml. - 1448 PR by asottile. - 1447 issue by rpdelaney. ``` ### 2.3.0 ``` ================== Features - Calculate character width using `east_asian_width` - 1378 PR by sophgn. - Use `language_version: system` by default for `node` hooks if `node` / `npm` are globally installed. - 1388 PR by asottile. Fixes - No longer use a hard-coded user id for docker hooks on windows - 1371 PR by killuazhu. - Fix colors on windows during `git commit` - 1381 issue by Cielquan. - 1382 PR by asottile. - Produce readable error message for incorrect argument count to `hook-impl` - 1394 issue by pip9ball. - 1395 PR by asottile. - Fix installations which involve an upgrade of `pip` on windows - 1398 issue by xiaohuazi123. - 1399 PR by asottile. - Preserve line endings in `pre-commit autoupdate` - 1402 PR by utek. ``` ### 2.2.0 ``` ================== Features - Add support for the `post-checkout` hook - 1120 issue by domenkozar. - 1339 PR by andrewhare. - Add more readable `--from-ref` / `--to-ref` aliases for `--source` / `--origin` - 1343 PR by asottile. Fixes - Make sure that `--commit-msg-filename` is passed for `commit-msg` / `prepare-commit-msg`. - 1336 PR by particledecay. - 1341 PR by particledecay. - Fix crash when installation error is un-decodable bytes - 1358 issue by Guts. - 1359 PR by asottile. - Fix python `healthy()` check when `python` executable goes missing. - 1363 PR by asottile. - Fix crash when script executables are missing shebangs. - 1350 issue by chriselion. - 1364 PR by asottile. Misc. - pre-commit now requires python>=3.6.1 (previously 3.6.0) - 1346 PR by asottile. ``` ### 2.1.1 ``` ================== Fixes - Temporarily restore python 3.6.0 support (broken in 2.0.0) - reported by obestwalter. - 081f3028 by asottile. ``` ### 2.1.0 ``` ================== Features - Replace `aspy.yaml` with `sort_keys=False`. - 1306 PR by asottile. - Add support for `perl`. - 1303 PR by scop. Fixes - Improve `.git/hooks/*` shebang creation when pythons are in `/usr/local/bin`. - 1312 issue by kbsezginel. - 1319 PR by asottile. Misc. - Add repository badge for pre-commit. - [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) - 1334 PR by ddelange. ``` ### 2.0.1 ``` ================== Fixes - Fix `ImportError` in python 3.6.0 / 3.6.1 for `typing.NoReturn`. - 1302 PR by asottile. ``` ### 2.0.0 ``` ================== Features - Expose `PRE_COMMIT_REMOTE_NAME` and `PRE_COMMIT_REMOTE_URL` as environment variables during `pre-push` hooks. - 1274 issue by dmbarreiro. - 1288 PR by dmbarreiro. Fixes - Fix `python -m pre_commit --version` to mention `pre-commit` instead of `__main__.py`. - 1273 issue by ssbarnea. - 1276 PR by orcutt989. - Don't filter `GIT_SSL_NO_VERIFY` from environment when cloning. - 1293 PR by schiermike. - Allow `pre-commit init-templatedir` to succeed even if `core.hooksPath` is set. - 1298 issue by damienrj. - 1299 PR by asottile. Misc - Fix changelog date for 1.21.0. - 1275 PR by flaudisio. Updating - Removed `pcre` language, use `pygrep` instead. - 1268 PR by asottile. - Removed `--tags-only` argument to `pre-commit autoupdate` (it has done nothing since 0.14.0). - 1269 by asottile. - Remove python2 / python3.5 support. Note that pre-commit still supports running hooks written in python2, but pre-commit itself requires python 3.6+. - 1260 issue by asottile. - 1277 PR by asottile. - 1281 PR by asottile. - 1282 PR by asottile. - 1287 PR by asottile. - 1289 PR by asottile. - 1292 PR by asottile. ``` ### 1.21.0 ``` =================== Features - Add `conda` as a new `language`. - 1204 issue by xhochy. - 1232 PR by xhochy. - Add top-level configuration `files` for file selection. - 1220 issue by TheButlah. - 1248 PR by asottile. - Rework `--verbose` / `verbose` to be more consistent with normal runs. - 1249 PR by asottile. - Add support for the `pre-merge-commit` git hook. - 1210 PR by asottile. - this requires git 2.24+. - Add `pre-commit autoupdate --freeze` which produces "frozen" revisions. - 1068 issue by SkypLabs. - 1256 PR by asottile. - Display hook runtime duration when run with `--verbose`. - 1144 issue by potiuk. - 1257 PR by asottile. Fixes - Produce better error message when erroneously running inside of `.git`. - 1219 issue by Nusserdt. - 1224 PR by asottile. - Note: `git` has since fixed this bug: git/git36fd304d - Produce better error message when hook installation fails. - 1250 issue by asottile. - 1251 PR by asottile. - Fix cloning when `GIT_SSL_CAINFO` is necessary. - 1253 issue by igankevich. - 1254 PR by igankevich. - Fix `pre-commit try-repo` for bare, on-disk repositories. - 1258 issue by webknjaz. - 1259 PR by asottile. - Add some whitespace to `pre-commit autoupdate` to improve terminal autolink. - 1261 issue by yhoiseth. - 1262 PR by yhoiseth. Misc. - Minor code documentation updates. - 1200 PR by ryanrhee. - 1201 PR by ryanrhee. ``` ### 1.20.0 ``` =================== Features - Allow building newer versions of `ruby`. - 1193 issue by choffee. - 1195 PR by choffee. - Bump versions reported in `pre-commit sample-config`. - 1197 PR by asottile. Fixes - Fix rare race condition with multiple concurrent first-time runs. - 1192 issue by raholler. - 1196 PR by asottile. ``` ### 1.19.0 ``` =================== Features - Allow `--hook-type` to be specified multiple times. - example: `pre-commit install --hook-type pre-commit --hook-type pre-push` - 1139 issue by MaxymVlasov. - 1145 PR by asottile. - Include more version information in crash logs. - 1142 by marqueewinq. - Hook colors are now passed through on platforms which support `pty`. - 1169 by asottile. - pre-commit now uses `importlib.metadata` directly when running in python 3.8 - 1176 by asottile. - Normalize paths to forward slash separators on windows. - makes it easier to match paths with `files:` regex - avoids some quoting bugs in shell-based hooks - 1173 issue by steigenTI. - 1179 PR by asottile. Fixes - Remove some extra newlines from error messages. - 1148 by asottile. - When a hook is not executable it now reports `not executable` instead of `not found`. - 1159 issue by nixjdm. - 1161 PR by WillKoehrsen. - Fix interleaving of stdout / stderr in hooks. - 1168 by asottile. - Fix python environment `healthy()` check when current working directory contains modules which shadow standard library names. - issue by vwhsu92. - 1185 PR by asottile. Updating - Regexes handling both backslashes and forward slashes for directory separators now only need to handle forward slashes. ``` ### 1.18.3 ``` =================== Fixes - Fix `node_modules` plugin installation on windows - 1123 issue by henryykt. - 1122 PR by henryykt. ``` ### 1.18.2 ``` =================== Fixes - Make default python lookup more deterministic to avoid redundant installs - 1117 PR by scop. ``` ### 1.18.1 ``` =================== Fixes - Fix installation of `rust` hooks with new `cargo` - 1112 issue by zimbatm. - 1113 PR by zimbatm. ``` ### 1.18.0 ``` =================== Features - Use the current running executable if it matches the requested `language_version` - 1062 PR by asottile. - Print the stage when a hook is not found - 1078 issue by madkinsz. - 1079 PR by madkinsz. - `pre-commit autoupdate` now supports non-`master` default branches - 1089 PR by asottile. - Add `pre-commit init-templatedir` which makes it easier to automatically enable `pre-commit` in cloned repositories. - 1084 issue by ssbarnea. - 1090 PR by asottile. - 1107 PR by asottile. - pre-commit's color can be controlled using `PRE_COMMIT_COLOR={auto,always,never}` - 1073 issue by saper. - 1092 PR by geieredgar. - 1098 PR by geieredgar. - pre-commit's color can now be disabled using `TERM=dumb` - 1073 issue by saper. - 1103 PR by asottile. - pre-commit now supports `docker` based hooks on windows - 1072 by cz-fish. - 1093 PR by geieredgar. Fixes - Fix shallow clone - 1077 PR by asottile. - Fix autoupdate version flip flop when using shallow cloning - 1076 issue by mxr. - 1088 PR by asottile. - Fix autoupdate when the current revision is invalid - 1088 PR by asottile. Misc. - Replace development instructions with `tox --devenv ...` - 1032 issue by yoavcaspi. - 1067 PR by asottile. ``` ### 1.17.0 ``` =================== Features - Produce better output on `^C` - 1030 PR by asottile. - Warn on unknown keys at the top level and repo level - 1028 PR by yoavcaspi. - 1048 PR by asottile. Fixes - Fix handling of `^C` in wrapper script in python 3.x - 1027 PR by asottile. - Fix `rmtree` for non-writable directories - 1042 issue by detailyang. - 1043 PR by asottile. - Pass `--color` option to `git diff` in `--show-diff-on-failure` - 1007 issue by chadrik. - 1051 PR by mandarvaze. Misc. - Fix test when `pre-commit` is installed globally - 1032 issue by yoavcaspi. - 1045 PR by asottile. ``` ### 1.16.1 ``` =================== Fixes - Don't `UnicodeDecodeError` on unexpected non-UTF8 output in python health check on windows. - 1021 issue by nicoddemus. - 1022 PR by asottile. ``` ### 1.16.0 ``` =================== Features - Add support for `prepare-commit-msg` hook - 1004 PR by marcjay. Fixes - Fix repeated legacy `pre-commit install` on windows - 1010 issue by AbhimanyuHK. - 1011 PR by asottile. - Whitespace fixup - 1014 PR by mxr. - Fix CI check for working pcre support - 1015 PR by Myrheimb. Misc. - Switch CI from travis / appveyor to azure pipelines - 1012 PR by asottile. ``` ### 1.15.2 ``` =================== Fixes - Fix cloning non-branch tag while in the fallback slow-clone strategy. - 997 issue by jpinner. - 998 PR by asottile. ``` ### 1.15.1 ``` =================== Fixes - Fix command length calculation on posix when `SC_ARG_MAX` is not defined. - 691 issue by ushuz. - 987 PR by asottile. ``` ### 1.15.0 ``` =================== Features - No longer require being in a `git` repo to run `pre-commit` `clean` / `gc` / `sample-config`. - 959 PR by asottile. - Improve command line length limit detection. - 691 issue by antonbabenko. - 966 PR by asottile. - Use shallow cloning when possible. - 958 PR by DanielChabrowski. - Add `minimum_pre_commit_version` top level key to require a new-enough version of `pre-commit`. - 977 PR by asottile. - Add helpful CI-friendly message when running `pre-commit run --all-files --show-diff-on-failure`. - 982 PR by bnorquist. Fixes - Fix `try-repo` for staged untracked changes. - 973 PR by DanielChabrowski. - Fix rpm build by explicitly using `!/usr/bin/env python3` in hook template. - 985 issue by tim77. - 986 PR by tim77. - Guard against infinite recursion when executing legacy hook script. - 981 PR by tristan0x. Misc - Add test for `git.no_git_env()` - 972 PR by javabrett. ``` ### 1.14.4 ``` =================== Fixes - Don't filter `GIT_SSH_COMMAND` env variable from `git` commands - 947 issue by firba1. - 948 PR by firba1. - Install npm packages as if they were installed from `git` - 943 issue by ssbarnea. - 949 PR by asottile. - Don't filter `GIT_EXEC_PREFIX` env variable from `git` commands - 664 issue by revolter. - 944 PR by minrk. ``` ### 1.14.3 ``` =================== Fixes - Improve performance of filename classification by 45% - 55%. - 921 PR by asottile. - Fix installing `go` hooks while `GOBIN` environment variable is set. - 924 PR by ashanbrown. - Fix crash while running `pre-commit migrate-config` / `pre-commit autoupdate` with an empty configuration file. - 929 issue by ardakuyumcu. - 933 PR by jessebona. - Require a newer virtualenv to fix metadata-based setup.cfg installs. - 936 PR by asottile. ``` ### 1.14.2 ``` =================== Fixes - Make the hook shebang detection more timid (1.14.0 regression) - Homebrew/homebrew-core35825. - 915 PR by asottile. ``` ### 1.14.1 ``` =================== Fixes - Fix python executable lookup on windows when using conda - 913 issue by dawelter2. - 914 PR by asottile. ``` ### 1.14.0 ``` =================== Features - Add an `alias` configuration value to allow repeated hooks to be differentiated - 882 issue by s0undt3ch. - 886 PR by s0undt3ch. - Add `identity` meta hook which just prints filenames - 865 issue by asottile. - 898 PR by asottile. - Factor out `cached-property` and improve startup performance by ~10% - 899 PR by asottile. - Add a warning on unexpected keys in configuration - 899 PR by asottile. - Teach `pre-commit try-repo` to clone uncommitted changes on disk. - 589 issue by sverhagen. - 703 issue by asottile. - 904 PR by asottile. - Implement `pre-commit gc` which will clean up no-longer-referenced cache repos. - 283 issue by jtwang. - 906 PR by asottile. - Add top level config `default_language_version` to streamline overriding the `language_version` configuration in many places - 647 issue by asottile. - 908 PR by asottile. - Add top level config `default_stages` to streamline overriding the `stages` configuration in many places - 768 issue by mattlqx. - 909 PR by asottile. Fixes - More intelligently pick hook shebang (`!/usr/bin/env python3`) - 878 issue by fristedt. - 893 PR by asottile. - Several fixes related to `--files` / `--config`: - `pre-commit run --files x` outside of a git dir no longer stacktraces - `pre-commit run --config ./relative` while in a sub directory of the git repo is now able to find the configuration - `pre-commit run --files ...` no longer runs a subprocess per file (performance) - 895 PR by asottile. - `pre-commit try-repo ./relative` while in a sub directory of the git repo is now able to clone properly - 903 PR by asottile. - Ensure `meta` repos cannot have a language other than `system` - 905 issue by asottile. - 907 PR by asottile. - Fix committing with unstaged files that were `git add --intent-to-add` added - 881 issue by henniss. - 912 PR by asottile. Misc. - Use `--no-gpg-sign` when running tests - 894 PR by s0undt3ch. ``` ### 1.13.0 ``` =================== Features - Run hooks in parallel - individual hooks may opt out of parallel execution with `require_serial: true` - 510 issue by chriskuehl. - 851 PR by chriskuehl. Fixes - Improve platform-specific `xargs` command length detection - 691 issue by antonbabenko. - 839 PR by georgeyk. - Fix `pre-commit autoupdate` when updating to a latest tag missing a `.pre-commit-hooks.yaml` - 856 issue by asottile. - 857 PR by runz0rd. - Upgrade the `pre-commit-hooks` version in `pre-commit sample-config` - 870 by asottile. - Improve balancing of multiprocessing by deterministic shuffling of args - 861 issue by Dunedan. - 874 PR by chriskuehl. - `ruby` hooks work with latest `gem` by removing `--no-ri` / `--no-rdoc` and instead using `--no-document`. - 889 PR by asottile. Misc. - Use `--no-gpg-sign` when running tests - 885 PR by s0undt3ch. Updating - If a hook requires serial execution, set `require_serial: true` to avoid the new parallel execution. - `ruby` hooks now require `gem>=2.0.0`. If your platform doesn't support this by default, select a newer version using [`language_version`](https://pre-commit.com/#overriding-language-version). ```Links
- PyPI: https://pypi.org/project/pre-commit - Changelog: https://data.safetycli.com/changelogs/pre-commit/ - Repo: https://github.com/pre-commit/pre-commit