betterself
betterself copied to clipboard
Update pre-commit to 3.7.1
This PR updates pre-commit from 1.4.1 to 3.7.1.
Changelog
3.7.1
==================
Fixes
- Fix `language: rust` default language version check when `rust-toolchain.toml`
is present.
- issue by gaborbernat.
- 3201 PR by asottile.
3.7.0
==================
Features
- Use a tty for `docker` and `docker_image` hooks when `--color` is specified.
- 3122 PR by glehmann.
Fixes
- Fix `fail_fast` for individual hooks stopping when previous hooks had failed.
- 3167 issue by tp832944.
- 3168 PR by asottile.
Updating
- The per-hook behaviour of `fail_fast` was fixed. If you want the pre-3.7.0
behaviour, add `fail_fast: true` to all hooks before the last `fail_fast`
hook.
3.6.2
==================
Fixes
- Fix building golang hooks during `git commit --all`.
- 3130 PR by asottile.
- 2722 issue by pestanko and matthewhughes934.
3.6.1
==================
Fixes
- Remove `PYTHONEXECUTABLE` from environment when running.
- 3110 PR by untitaker.
- Handle staged-files-only with only a crlf diff.
- 3126 PR by asottile.
- issue by tyyrok.
3.6.0
==================
Features
- Check `minimum_pre_commit_version` first when parsing configs.
- 3092 PR by asottile.
Fixes
- Fix deprecation warnings for `importlib.resources`.
- 3043 PR by asottile.
- Fix deprecation warnings for rmtree.
- 3079 PR by edgarrmondragon.
Updating
- Drop support for python<3.9.
- 3042 PR by asottile.
- 3093 PR by asottile.
3.5.0
==================
Features
- Improve performance of `check-hooks-apply` and `check-useless-excludes`.
- 2998 PR by mxr.
- 2935 issue by mxr.
Fixes
- Use `time.monotonic()` for more accurate hook timing.
- 3024 PR by adamchainz.
Migrating
- Require npm 6.x+ for `language: node` hooks.
- 2996 PR by RoelAdriaans.
- 1983 issue by henryiii.
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).
1.12.0
===================
Fixes
- Install multi-hook repositories only once (performance)
- issue by chriskuehl.
- 852 PR by asottile.
- Improve performance by factoring out pkg_resources (performance)
- 840 issue by RonnyPfannschmidt.
- 846 PR by asottile.
1.11.2
===================
Fixes
- `check-useless-exclude` now considers `types`
- 704 issue by asottile.
- 837 PR by georgeyk.
- `pre-push` hook was not identifying all commits on push to new branch
- 843 issue by prem-nuro.
- 844 PR by asottile.
1.11.1
===================
Fixes
- Fix `.git` dir detection in `git<2.5` (regression introduced in
[1.10.5](1105))
- 831 issue by mmacpherson.
- 832 PR by asottile.
1.11.0
===================
Features
- Add new `fail` language which always fails
- light-weight way to forbid files by name.
- 812 821 PRs by asottile.
Fixes
- Fix `ResourceWarning`s for unclosed files
- 811 PR by BoboTiG.
- Don't write ANSI colors on windows when color enabling fails
- 819 PR by jeffreyrack.
1.10.5
===================
Fixes
- Work around `PATH` issue with `brew` `python` on `macos`
- Homebrew/homebrew-core30445 issue by asottile.
- 805 PR by asottile.
- Support `pre-commit install` inside a worktree
- 808 issue by s0undt3ch.
- 809 PR by asottile.
1.10.4
===================
Fixes
- Replace `yaml.load` with safe alternative
- `yaml.load` can lead to arbitrary code execution, though not where it
was used
- issue by tonybaloney.
- 779 PR by asottile.
- Improve not found error with script paths (`./exe`)
- 782 issue by ssbarnea.
- 785 PR by asottile.
- Fix minor buffering issue during `--show-diff-on-failure`
- 796 PR by asottile.
- Default `language_version: python3` for `python_venv` when running in python2
- 794 issue by ssbarnea.
- 797 PR by asottile.
- `pre-commit run X` only run `X` and not hooks with `stages: [...]`
- 772 issue by asottile.
- 803 PR by mblayman.
Misc.
- Improve travis-ci build times by caching rust / swift artifacts
- 781 PR by expobrain.
- Test against python3.7
- 789 PR by expobrain.
1.10.3
===================
Fixes
- Fix `pre-push` during a force push without a fetch
- 777 issue by domenkozar.
- 778 PR by asottile.
1.10.2
===================
Fixes
- pre-commit now invokes hooks with a consistent ordering of filenames
- issue by mxr.
- 767 PR by asottile.
1.10.1
===================
Fixes
- `python_venv` language would leak dependencies when pre-commit was installed
in a `-mvirtualenv` virtualenv
- 755 756 issue and PR by asottile.
1.10.0
===================
Features
- Add support for hooks written in `rust`
- 751 PR by chriskuehl.
1.9.0
==================
Features
- Add new `python_venv` language which uses the `venv` module instead of
`virtualenv`
- 631 issue by dongyuzheng.
- 739 PR by ojii.
- Include `LICENSE` in distribution
- 745 issue by nicoddemus.
- 746 PR by nicoddemus.
Fixes
- Normalize relative paths for `pre-commit try-repo`
- 750 PR by asottile.
1.8.2
==================
Fixes
- Fix cloning relative paths (regression in 1.7.0)
- 728 issue by jdswensen.
- 729 PR by asottile.
1.8.1
==================
Fixes
- Fix integration with go 1.10 and `pkg` directory
- 725 PR by asottile
- Restore support for `git<1.8.5` (inadvertently removed in 1.7.0)
- 723 issue by JohnLyman.
- 724 PR by asottile.
1.8.0
==================
Features
- Add a `manual` stage for cli-only interaction
- 719 issue by hectorv.
- 720 PR by asottile.
- Add a `--multiline` option to `pygrep` hooks
- 716 PR by tdeo.
1.7.0
==================
Features
- pre-commit config validation was split to a separate `cfgv` library
- 700 PR by asottile.
- Allow `--repo` to be specified multiple times to autoupdate
- 658 issue by KevinHock.
- 713 PR by asottile.
- Enable `rev` as a preferred alternative to `sha` in `.pre-commit-config.yaml`
- 106 issue by asottile.
- 715 PR by asottile.
- Use `--clean-src` option when invoking `nodeenv` to save ~70MB per node env
- 717 PR by asottile.
- Refuse to install with `core.hooksPath` set
- pre-commit/pre-commit-hooks250 issue by revolter.
- 663 issue by asottile.
- 718 PR by asottile.
Fixes
- hooks with `additional_dependencies` now get isolated environments
- 590 issue by coldnight.
- 711 PR by asottile.
Misc.
- test against swift 4.x
- 709 by theresama.
Updating
- Run `pre-commit migrate-config` to convert `sha` to `rev` in the
`.pre-commit-config.yaml` file.
1.6.0
==================
Features
- Hooks now may have a `verbose` option to produce output even without failure
- 689 issue by bagerard.
- 695 PR by bagerard.
- Installed hook no longer requires `bash`
- 699 PR by asottile.
Fixes
- legacy pre-push / commit-msg hooks are now invoked as if `git` called them
- 693 issue by samskiter.
- 694 PR by asottile.
- 699 PR by asottile.
1.5.1
==================
Fixes
- proper detection for root commit during pre-push
- 503 PR by philipgian.
- 692 PR by samskiter.
1.5.0
==================
Features
- pre-commit now supports node hooks on windows.
- for now, requires python3 due to https://bugs.python.org/issue32539
- huge thanks to wenzowski for the tip!
- 200 issue by asottile.
- 685 PR by asottile.
Misc.
- internal reorganization of `PrefixedCommandRunner` -> `Prefix`
- 684 PR by asottile.
- https-ify links.
- pre-commit.com is now served over https.
- 688 PR by asottile.
1.4.5
==================
Fixes
- Fix `local` golang repositories with `additional_dependencies`.
- 679 680 issue and PR by asottile.
Misc.
- Replace some string literals with constants
- 678 PR by revolter.
1.4.4
==================
Fixes
- Invoke `git diff` without a pager during `--show-diff-on-failure`.
- 676 PR by asottile.
1.4.3
==================
Fixes
- `pre-commit` on windows can find pythons at non-hardcoded paths.
- 674 PR by asottile.
1.4.2
==================
Fixes
- `pre-commit` no longer clears `GIT_SSH` environment variable when cloning.
- 671 PR by rp-tanium.
Links
- PyPI: https://pypi.org/project/pre-commit
- Changelog: https://data.safetycli.com/changelogs/pre-commit/
- Repo: https://github.com/pre-commit/pre-commit