pre-commit

Developer Tools

A framework for managing multi-language Git pre-commit hooks.

Latest v4.6.2 · by pre-commitWebsitepre-commit/pre-commit

Release activity

Release activity — 6 releases across 6 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 20261 release on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 20261 release on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

6 releases in the last year

Changelog

v4.6.2

pre-commit v4.6.2

Fixed 1
  • Fix language: node hooks that contain "scripts": {"build": ...} with npm 11.x
Fixes
  • Fix language: node hooks that contain "scripts": {"build": ...} with npm 11.x.
    • Regressed in 4.6.1.
    • #3737 issue by @mheiges.
    • #3743 PR by @asottile.
View originalPermalink
How v4.6.2 went
v4.6.1

pre-commit v4.6.1

Fixed 5
  • Install language: node hooks via git to fix npm 12.x compatibility
  • Set JULIA_DEPOT_PATH for language: julia
  • Produce error on mistyped --repo for pre-commit autoupdate
  • Improve performance of commit existence check in pre-push
  • Avoid duplicating conflicted filenames during pre-commit run --all-files
Fixes
  • Install language: node hooks via git.
    • Fixes npm 12.x compatibility
    • #3719 PR by @asottile.
    • #3517 issue by @ojob.
  • Set JULIA_DEPOT_PATH for language: julia.
    • #3711 PR by @damonbayer.
    • pre-commit-ci/runner-image#335 issue by @damonbayer.
  • Produce error on mistyped --repo for pre-commit autoupdate.
    • #3701 PR by @mxr.
    • #3695 issue by @mxr.
  • Improve performance of commit existence check in pre-push.
    • #3726 PR by @asottile.
    • #3604 issue by @ptarjan.
  • Avoid duplicating conflicted filenames during pre-commit run --all-files.
    • #3727 PR by @asottile.
    • #3706 issue by @RomanValov.
View originalPermalink
How v4.6.1 went
v4.6.0

pre-commit v4.6.0

Added 1
  • Allow `--hook-dir` to be missing in `pre-commit hook-impl` to enable easier usage with git 2.54+ git hooks
Fixed 1
  • Make `--hook-type` required in `pre-commit hook-impl`
Features
  • pre-commit hook-impl: allow --hook-dir to be missing to enable easier usage with git 2.54+ git hooks.
    • #3662 PR by @asottile.
Fixes
  • pre-commit hook-impl: --hook-type is required.
    • #3661 PR by @asottile.
View originalPermalink
How v4.6.0 went
v4.5.1

pre-commit v4.5.1

Fixed 1
  • Fix language: python with repo: local without additional_dependencies
Fixes
  • Fix language: python with repo: local without additional_dependencies.
    • #3597 PR by @asottile.
View originalPermalink
How v4.5.1 went
v4.5.0

pre-commit v4.5.0

Features
  • Add pre-commit hazmat.
    • #3585 PR by @asottile.
View originalPermalink
How v4.5.0 went
v4.4.0

pre-commit v4.4.0

Added 3
  • Add --fail-fast option to pre-commit run
  • Add language: unsupported / language: unsupported_script as aliases for language: system / language: script
  • Add support docker-in-docker detection for cgroups v2
Changed 1
  • Upgrade ruby-build / rbenv
Fixed 2
  • Handle when docker gives SecurityOptions: null
  • Fix error context for invalid stages in .pre-commit-config.yaml
Features
  • Add --fail-fast option to pre-commit run.
    • #3528 PR by @JulianMaurin.
  • Upgrade ruby-build / rbenv.
    • #3566 PR by @asottile.
    • #3565 issue by @MRigal.
  • Add language: unsupported / language: unsupported_script as aliases for language: system / language: script (which will eventually be deprecated).
    • #3577 PR by @asottile.
  • Add support docker-in-docker detection for cgroups v2.
    • #3535 PR by @br-rhrbacek.
    • #3360 issue by @JasonAlt.
Fixes
  • Handle when docker gives SecurityOptions: null.
    • #3537 PR by @asottile.
    • #3514 issue by @jenstroeger.
  • Fix error context for invalid stages in .pre-commit-config.yaml.
    • #3576 PR by @asottile.
View originalPermalink
How v4.4.0 went
v4.3.0

pre-commit v4.3.0

Added 1
  • detect rootless docker for language: docker and language: docker_image
Changed 2
  • language: julia now avoids startup.jl when executing hooks
  • language: dart now supports latest dart versions which require a higher sdk lower bound
Features
  • language: docker / language: docker_image: detect rootless docker.
    • #3446 PR by @matthewhughes934.
    • #1243 issue by @dkolepp.
  • language: julia: avoid startup.jl when executing hooks.
    • #3496 PR by @ericphanson.
  • language: dart: support latest dart versions which require a higher sdk lower bound.
    • #3507 PR by @bc-lee.
View originalPermalink
How v4.3.0 went
v4.2.0

pre-commit v4.2.0

Added 1
  • For language: python first attempt a versioned python executable for the default language version before consulting a potentially unversioned sys.executable
Fixed 1
  • Handle error during conflict detection when a file is named HEAD
Features
  • For language: python first attempt a versioned python executable for the default language version before consulting a potentially unversioned sys.executable.
    • #3430 PR by @asottile.
Fixes
  • Handle error during conflict detection when a file is named "HEAD"
    • #3425 PR by @tusharsadhwani.
View originalPermalink
How v4.2.0 went
v4.1.0

pre-commit v4.1.0

Added 1
  • Add language: julia
Fixed 2
  • Disable automatic toolchain switching for language: golang
  • Fix language: r installation when initiated by RStudio
Features
  • Add language: julia.
    • #3348 PR by @fredrikekre.
    • #2689 issue @jmuchovej.
Fixes
  • Disable automatic toolchain switching for language: golang.
    • #3304 PR by @AleksaC.
    • #3300 issue by @AleksaC.
    • #3149 issue by @nijel.
  • Fix language: r installation when initiated by RStudio.
    • #3389 PR by @lorenzwalthert.
    • #3385 issue by @lorenzwalthert.
View originalPermalink
How v4.1.0 went
v4.0.1

pre-commit v4.0.1

Fixed 1
  • Fix `pre-commit migrate-config` for unquoted deprecated stages names with purelib `pyyaml`
Fixes
  • Fix pre-commit migrate-config for unquoted deprecated stages names with purelib pyyaml.
    • #3324 PR by @asottile.
    • pre-commit-ci/issues#234 issue by @lorenzwalthert.
View originalPermalink
How v4.0.1 went
v4.0.0

pre-commit v4.0.0

Added 2
  • Add "sensible regex" warnings to `repo: meta`
  • Add warnings for deprecated `stages` (`commit` -> `pre-commit`, `push` -> `pre-push`, `merge-commit` -> `pre-merge-commit`)
Changed 3
  • Improve `pre-commit migrate-config` to handle more yaml formats
  • Handle `stages` deprecation in `pre-commit migrate-config`
  • Upgrade `ruby-build`
Removed 1
  • Remove `language: python_venv` -- use `language: python` instead
Features
  • Improve pre-commit migrate-config to handle more yaml formats.
    • #3301 PR by @asottile.
  • Handle stages deprecation in pre-commit migrate-config.
    • #3302 PR by @asottile.
    • #2732 issue by @asottile.
  • Upgrade ruby-build.
    • #3199 PR by @ThisGuyCodes.
  • Add "sensible regex" warnings to repo: meta.
    • #3311 PR by @asottile.
  • Add warnings for deprecated stages (commit -> pre-commit, push -> pre-push, merge-commit -> pre-merge-commit).
    • #3312 PR by @asottile.
    • #3313 PR by @asottile.
    • #3315 PR by @asottile.
    • #2732 issue by @asottile.
Migrating
  • language: python_venv has been removed -- use language: python instead.
    • #3320 PR by @asottile.
    • #2734 issue by @asottile.
View originalPermalink
How v4.0.0 went
View all

Discussion