1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413
|
4.5.1 - 2025-12-16
==================
### Fixes
- Fix `language: python` with `repo: local` without `additional_dependencies`.
- #3597 PR by @asottile.
4.5.0 - 2025-11-22
==================
### Features
- Add `pre-commit hazmat`.
- #3585 PR by @asottile.
4.4.0 - 2025-11-08
==================
### 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.
4.3.0 - 2025-08-09
==================
### 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.
4.2.0 - 2025-03-18
==================
### 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.
4.1.0 - 2025-01-20
==================
### 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.
4.0.1 - 2024-10-08
==================
### 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.
4.0.0 - 2024-10-05
==================
### 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.
### Updating
- `language: python_venv` has been removed -- use `language: python` instead.
- #3320 PR by @asottile.
- #2734 issue by @asottile.
3.8.0 - 2024-07-28
==================
### Features
- Implement health checks for `language: r` so environments are recreated if
the system version of R changes.
- #3206 issue by @lorenzwalthert.
- #3265 PR by @lorenzwalthert.
3.7.1 - 2024-05-10
==================
### Fixes
- Fix `language: rust` default language version check when `rust-toolchain.toml`
is present.
- issue by @gaborbernat.
- #3201 PR by @asottile.
3.7.0 - 2024-03-24
==================
### 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 - 2024-02-18
==================
### Fixes
- Fix building golang hooks during `git commit --all`.
- #3130 PR by @asottile.
- #2722 issue by @pestanko and @matthewhughes934.
3.6.1 - 2024-02-10
==================
### 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 - 2023-12-09
==================
### 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 - 2023-10-13
==================
### 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.
### Updating
- Require npm 6.x+ for `language: node` hooks.
- #2996 PR by @RoelAdriaans.
- #1983 issue by @henryiii.
3.4.0 - 2023-09-02
==================
### 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 - 2023-06-13
==================
### Fixes
- Work around OS packagers setting `--install-dir` / `--bin-dir` in gem settings.
- #2905 PR by @jaysoffian.
- #2799 issue by @lmilbaum.
3.3.2 - 2023-05-17
==================
### Fixes
- Work around `r` on windows sometimes double-un-quoting arguments.
- #2885 PR by @lorenzwalthert.
- #2870 issue by @lorenzwalthert.
3.3.1 - 2023-05-02
==================
### Fixes
- Work around `git` partial clone bug for `autoupdate` on windows.
- #2866 PR by @asottile.
- #2865 issue by @adehad.
3.3.0 - 2023-05-01
==================
### 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 - 2023-04-03
==================
### Fixes
- Fix support for swift >= 5.8.
- #2836 PR by @edelabar.
- #2835 issue by @kgrobelny-intive.
3.2.1 - 2023-03-25
==================
### Fixes
- Fix `language_version` for `language: rust` without global `rustup`.
- #2823 issue by @daschuer.
- #2827 PR by @asottile.
3.2.0 - 2023-03-17
==================
### 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 - 2023-02-27
==================
### Fixes
- Fix `rust` with `language_version` and a non-writable host `RUSTUP_HOME`.
- pre-commit-ci/issues#173 by @Swiftb0y.
- #2788 by @asottile.
3.1.0 - 2023-02-22
==================
### 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 - 2023-02-03
==================
### Fixes
- Fix hook diff detection for files affected by `--textconv`.
- #2743 PR by @adamchainz.
- #2743 issue by @adamchainz.
3.0.3 - 2023-02-01
==================
### Fixes
- Revert "Prevent local `Gemfile` from interfering with hook execution.".
- #2739 issue by @Roguelazer.
- #2740 PR by @asottile.
3.0.2 - 2023-01-29
==================
### Fixes
- Prevent local `Gemfile` from interfering with hook execution.
- #2727 PR by @asottile.
- Fix `language: r`, `repo: local` hooks
- pre-commit-ci/issues#107 by @lorenzwalthert.
- #2728 PR by @asottile.
3.0.1 - 2023-01-26
==================
### Fixes
- Ensure coursier hooks are available offline after install.
- #2723 PR by @asottile.
3.0.0 - 2023-01-23
==================
### 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 - 2022-12-25
===================
### 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 - 2022-07-10
===================
### 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 - 2022-05-05
===================
### 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 - 2022-04-02
===================
### Fixes
- Fix regression for `repo: local` hooks running `python<3.7`
- #2324 PR by @asottile.
2.18.0 - 2022-04-02
===================
### 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 - 2022-01-18
===================
### 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 - 2021-11-30
===================
### 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 - 2021-09-02
===================
### 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 - 2021-08-28
===================
### 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/issues#84 issue by @billsioros.
2.14.0 - 2021-08-06
===================
### 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 - 2021-05-21
===================
### Features
- Setting `SKIP=...` skips installation as well.
- #1875 PR by @asottile.
- pre-commit-ci/issues#53 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 - 2021-04-16
===================
### Fixes
- Fix race condition when stashing files in multiple parallel invocations
- #1881 PR by @adamchainz.
- #1880 issue by @adamchainz.
2.12.0 - 2021-04-06
===================
### 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-prettier#7 issue by @DeltaXWizard.
- Fix permissions of root folder in ruby archives.
- #1868 PR by @asottile.
2.11.1 - 2021-03-09
===================
### Fixes
- Fix r hooks when hook repo is a package
- #1831 PR by @lorenzwalthert.
2.11.0 - 2021-03-07
===================
### 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 - 2021-02-06
===================
### Fixes
- Fix `language: golang` repositories containing recursive submodules
- #1788 issue by @gaurav517.
- #1789 PR by @paulhfischer.
2.10.0 - 2021-01-27
===================
### 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 - 2020-12-07
==================
### 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 - 2020-11-25
==================
### 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 - 2020-11-25
==================
### 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 - 2020-11-21
==================
### 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 - 2020-10-30
==================
### Fixes
- Fix installation of ruby hooks with `language_version: default`
- #1671 issue by @aerickson.
- #1672 PR by @asottile.
2.8.1 - 2020-10-28
==================
### Fixes
- Allow default `language_version` of `system` when the homedir is `/`
- #1669 PR by @asottile.
2.8.0 - 2020-10-28
==================
### 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/action#45 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/issues#2 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 - 2020-08-23
==================
### 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 - 2020-08-22
==================
### 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 - 2020-07-01
==================
### 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 - 2020-06-09
==================
### Fixes
- Prevent infinite recursion of post-checkout on clone
- #1497 PR by @asottile.
- #1496 issue by @admorgan.
2.5.0 - 2020-06-08
==================
### 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 - 2020-05-11
==================
### 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 - 2020-04-22
==================
### 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 - 2020-03-12
==================
### 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 - 2020-02-24
==================
### Fixes
- Temporarily restore python 3.6.0 support (broken in 2.0.0)
- reported by @obestwalter.
- 081f3028 by @asottile.
2.1.0 - 2020-02-18
==================
### 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.
- [](https://github.com/pre-commit/pre-commit)
- #1334 PR by @ddelange.
2.0.1 - 2020-01-29
==================
### Fixes
- Fix `ImportError` in python 3.6.0 / 3.6.1 for `typing.NoReturn`.
- #1302 PR by @asottile.
2.0.0 - 2020-01-28
==================
### 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 - 2020-01-02
===================
### 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/git@36fd304d
- 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 - 2019-10-28
===================
### 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 - 2019-10-26
===================
### 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 - 2019-08-27
===================
### Fixes
- Fix `node_modules` plugin installation on windows
- #1123 issue by @henryykt.
- #1122 PR by @henryykt.
1.18.2 - 2019-08-15
===================
### Fixes
- Make default python lookup more deterministic to avoid redundant installs
- #1117 PR by @scop.
1.18.1 - 2019-08-11
===================
### Fixes
- Fix installation of `rust` hooks with new `cargo`
- #1112 issue by @zimbatm.
- #1113 PR by @zimbatm.
1.18.0 - 2019-08-03
===================
### 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 - 2019-06-06
===================
### 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 - 2019-05-08
===================
### 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 - 2019-05-04
===================
### 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 - 2019-04-16
===================
### Fixes
- Fix cloning non-branch tag while in the fallback slow-clone strategy.
- #997 issue by @jpinner.
- #998 PR by @asottile.
1.15.1 - 2019-04-01
===================
### 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 - 2019-03-30
===================
### 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 - 2019-02-18
===================
### 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 - 2019-02-04
===================
### 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 - 2019-01-10
===================
### Fixes
- Make the hook shebang detection more timid (1.14.0 regression)
- Homebrew/homebrew-core#35825.
- #915 PR by @asottile.
1.14.1 - 2019-01-10
===================
### Fixes
- Fix python executable lookup on windows when using conda
- #913 issue by @dawelter2.
- #914 PR by @asottile.
1.14.0 - 2019-01-08
===================
### 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 - 2018-12-20
===================
### 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 - 2018-10-23
===================
### 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 - 2018-10-10
===================
### 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 - 2018-09-22
===================
### 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 - 2018-09-02
===================
### 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 - 2018-08-06
===================
### Fixes
- Work around `PATH` issue with `brew` `python` on `macos`
- Homebrew/homebrew-core#30445 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 - 2018-07-22
===================
### 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 - 2018-07-02
===================
### Fixes
- Fix `pre-push` during a force push without a fetch
- #777 issue by @domenkozar.
- #778 PR by @asottile.
1.10.2 - 2018-06-11
===================
### Fixes
- pre-commit now invokes hooks with a consistent ordering of filenames
- issue by @mxr.
- #767 PR by @asottile.
1.10.1 - 2018-05-28
===================
### 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 - 2018-05-26
===================
### Features
- Add support for hooks written in `rust`
- #751 PR by @chriskuehl.
1.9.0 - 2018-05-21
==================
### 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 - 2018-03-17
==================
### Fixes
- Fix cloning relative paths (regression in 1.7.0)
- #728 issue by @jdswensen.
- #729 PR by @asottile.
1.8.1 - 2018-03-12
==================
### 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 - 2018-03-11
==================
### 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 - 2018-03-03
==================
### 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-hooks#250 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 - 2018-02-04
==================
### 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 - 2018-01-24
==================
### Fixes
- proper detection for root commit during pre-push
- #503 PR by @philipgian.
- #692 PR by @samskiter.
1.5.0 - 2018-01-13
==================
### 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 - 2018-01-09
==================
### 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 - 2018-01-07
==================
### Fixes
- Invoke `git diff` without a pager during `--show-diff-on-failure`.
- #676 PR by @asottile.
1.4.3 - 2018-01-02
==================
### Fixes
- `pre-commit` on windows can find pythons at non-hardcoded paths.
- #674 PR by @asottile.
1.4.2 - 2018-01-02
==================
### Fixes
- `pre-commit` no longer clears `GIT_SSH` environment variable when cloning.
- #671 PR by @rp-tanium.
1.4.1 - 2017-11-09
==================
### Fixes
- `pre-commit autoupdate --repo ...` no longer deletes other repos.
- #660 issue by @KevinHock.
- #661 PR by @KevinHock.
1.4.0 - 2017-11-08
==================
### Features
- Lazily install repositories.
- When running `pre-commit run <hookid>`, pre-commit will only install
the necessary repositories.
- #637 issue by @webknjaz.
- #639 PR by @asottile.
- Version defaulting now applies to local hooks as well.
- This extends #556 to apply to local hooks.
- #646 PR by @asottile.
- Add new `repo: meta` hooks.
- `meta` hooks expose some linters of the pre-commit configuration itself.
- `id: check-useless-excludes`: ensures that `exclude` directives actually
apply to *any* file in the repository.
- `id: check-hooks-apply`: ensures that the configured hooks apply to
at least one file in the repository.
- pre-commit/pre-commit-hooks#63 issue by @asottile.
- #405 issue by @asottile.
- #643 PR by @hackedd.
- #653 PR by @asottile.
- #654 PR by @asottile.
- Allow a specific repository to be autoupdated instead of all repositories.
- `pre-commit autoupdate --repo ...`
- #656 issue by @KevinHock.
- #657 PR by @KevinHock.
### Fixes
- Apply selinux labelling option to docker volumes
- #642 PR by @jimmidyson.
1.3.0 - 2017-10-08
==================
### Features
- Add `pre-commit try-repo` commands
- The new `try-repo` takes a repo and will run the hooks configured in
that hook repository.
- An example invocation:
`pre-commit try-repo https://github.com/pre-commit/pre-commit-hooks`
- `pre-commit try-repo` can also take all the same arguments as
`pre-commit run`.
- It can be used to try out a repository without needing to configure it.
- It can also be used to test a hook repository while developing it.
- #589 issue by @sverhagen.
- #633 PR by @asottile.
1.2.0 - 2017-10-03
==================
### Features
- Add `pygrep` language
- `pygrep` aims to be a more cross-platform alternative to `pcre` hooks.
- #630 PR by @asottile.
### Fixes
- Use `pipes.quote` for executable path in hook template
- Fixes bash syntax error when git dir contains spaces
- #626 PR by @asottile.
- Clean up hook template
- Simplify code
- Fix `--config` not being respected in some situations
- #627 PR by @asottile.
- Use `file://` protocol for cloning under test
- Fix `file://` clone paths being treated as urls for golang
- #629 PR by @asottile.
- Add `ctypes` as an import for virtualenv healthchecks
- Fixes python3.6.2 <=> python3.6.3 virtualenv invalidation
- e70825ab by @asottile.
1.1.2 - 2017-09-20
==================
### Fixes
- pre-commit can successfully install commit-msg hooks
- Due to an oversight, the commit-msg-tmpl was missing from the packaging
- #623 issue by @sobolevn.
- #624 PR by @asottile.
1.1.1 - 2017-09-17
==================
### Features
- pre-commit also checks the `ssl` module for virtualenv health
- Suggestion by @merwok.
- #619 PR by @asottile.
### Fixes
- pre-commit no longer crashes with unstaged files when run for the first time
- #620 #621 issue by @Lucas-C.
- #622 PR by @asottile.
1.1.0 - 2017-09-11
==================
### Features
- pre-commit configuration gains a `fail_fast` option.
- You must be using the v2 configuration format introduced in 1.0.0.
- `fail_fast` defaults to `false`.
- #240 issue by @Lucas-C.
- #616 PR by @asottile.
- pre-commit configuration gains a global `exclude` option.
- This option takes a python regular expression and can be used to exclude
files from _all_ hooks.
- You must be using the v2 configuration format introduced in 1.0.0.
- #281 issue by @asieira.
- #617 PR by @asottile.
1.0.1 - 2017-09-07
==================
### Fixes
- Fix a regression in the return code of `pre-commit autoupdate`
- `pre-commit migrate-config` and `pre-commit autoupdate` return 0 when
successful.
- #614 PR by @asottile.
1.0.0 - 2017-09-07
==================
pre-commit will now be following [semver](https://semver.org/). Thanks to all
of the [contributors](https://github.com/pre-commit/pre-commit/graphs/contributors)
that have helped us get this far!
### Features
- pre-commit's cache directory has moved from `~/.pre-commit` to
`$XDG_CACHE_HOME/pre-commit` (usually `~/.cache/pre-commit`).
- `pre-commit clean` now cleans up both the old and new directory.
- If you were caching this directory in CI, you'll want to adjust the
location.
- #562 issue by @nagromc.
- #602 PR by @asottile.
- A new configuration format for `.pre-commit-config.yaml` is introduced which
will enable future development.
- The new format has a top-level map instead of a top-level list. The
new format puts the hook repositories in a `repos` key.
- Old list-based configurations will continue to be supported.
- A command `pre-commit migrate-config` has been introduced to "upgrade"
the configuration format to the new map-based configuration.
- `pre-commit autoupdate` now automatically calls `migrate-config`.
- In a later release, list-based configurations will issue a deprecation
warning.
- An example diff for upgrading a configuration:
```diff
+repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
sha: v0.9.2
hooks:
```
- #414 issue by @asottile.
- #610 PR by @asottile.
### Updating
- Run `pre-commit migrate-config` to convert `.pre-commit-config.yaml` to the
new map format.
- Update any references from `~/.pre-commit` to `~/.cache/pre-commit`.
0.18.3 - 2017-09-06
===================
- Allow --config to affect `pre-commit install`
- Tweak not found error message during `pre-push` / `commit-msg`
- Improve node support when running under cygwin.
0.18.2 - 2017-09-05
===================
- Fix `--all-files`, detection of staged files, detection of manually edited
files during merge conflict, and detection of files to push for non-ascii
filenames.
0.18.1 - 2017-09-04
===================
- Only mention locking when waiting for a lock.
- Fix `IOError` during locking in timeout situation on windows under python 2.
0.18.0 - 2017-09-02
===================
- Add a new `docker_image` language type. `docker_image` is intended to be a
lightweight hook type similar to `system` / `script` which allows one to use
an existing docker image that provides a hook. `docker_image` hooks can
also be used as repository `local` hooks.
0.17.0 - 2017-08-24
===================
- Fix typos in help
- Allow `commit-msg` hook to be uninstalled
- Upgrade the `sample-config`
- Remove undocumented `--no-stash` and `--allow-unstaged-config`
- Remove `validate_config` hook pre-commit hook.
- Fix installation race condition when multiple `pre-commit` processes would
attempt to install the same repository.
0.16.3 - 2017-08-10
===================
- autoupdate attempts to maintain config formatting.
0.16.2 - 2017-08-06
===================
- Initialize submodules in hook repositories.
0.16.1 - 2017-08-04
===================
- Improve node support when running under cygwin.
0.16.0 - 2017-08-01
===================
- Remove backward compatibility with repositories providing metadata via
`hooks.yaml`. New repositories should provide `.pre-commit-hooks.yaml`.
Run `pre-commit autoupdate` to upgrade to the latest repositories.
- Improve golang support when running under cygwin.
- Fix crash with unstaged trailing whitespace additions while git was
configured with `apply.whitespace = error`.
- Fix crash with unstaged end-of-file crlf additions and the file's lines
ended with crlf while git was configured with `core-autocrlf = true`.
0.15.4 - 2017-07-23
===================
- Add support for the `commit-msg` git hook
0.15.3 - 2017-07-20
===================
- Recover from invalid python virtualenvs
0.15.2 - 2017-07-09
===================
- Work around a windows-specific virtualenv bug pypa/virtualenv#1062
This failure mode was introduced in 0.15.1
0.15.1 - 2017-07-09
===================
- Use a more intelligent default language version for python
0.15.0 - 2017-07-02
===================
- Add `types` and `exclude_types` for filtering files. These options take
an array of "tags" identified for each file. The tags are sourced from
[identify](https://github.com/chriskuehl/identify). One can list the tags
for a file by running `identify-cli filename`.
- `files` is now optional (defaulting to `''`)
- `always_run` + missing `files` also defaults to `files: ''` (previously it
defaulted to `'^$'` (this reverses e150921c).
0.14.3 - 2017-06-28
===================
- Expose `--origin` and `--source` as `PRE_COMMIT_ORIGIN` and
`PRE_COMMIT_SOURCE` environment variables when running as `pre-push`.
0.14.2 - 2017-06-09
===================
- Use `--no-ext-diff` when running `git diff`
0.14.1 - 2017-06-02
===================
- Don't crash when `always_run` is `True` and `files` is not provided.
- Set `VIRTUALENV_NO_DOWNLOAD` when making python virtualenvs.
0.14.0 - 2017-05-16
===================
- Add a `pre-commit sample-config` command
- Enable ansi color escapes on modern windows
- `autoupdate` now defaults to `--tags-only`, use `--bleeding-edge` for the
old behavior
- Add support for `log_file` in hook configuration to tee hook output to a
file for CI consumption, etc.
- Fix crash with unicode commit messages during merges in python 2.
- Add a `pass_filenames` option to allow disabling automatic filename
positional arguments to hooks.
0.13.6 - 2017-03-27
===================
- Fix regression in 0.13.5: allow `always_run` and `files` together despite
doing nothing.
0.13.5 - 2017-03-26
===================
- 0.13.4 contained incorrect files
0.13.4 - 2017-03-26
===================
- Add `--show-diff-on-failure` option to `pre-commit run`
- Replace `jsonschema` with better error messages
0.13.3 - 2017-02-23
===================
- Add `--allow-missing-config` to install: allows `git commit` without a
configuration.
0.13.2 - 2017-02-17
===================
- Version the local hooks repo
- Allow `minimum_pre_commit_version` for local hooks
0.13.1 - 2017-02-16
===================
- Fix placeholder gem for ruby local hooks
0.13.0 - 2017-02-16
===================
- Autoupdate now works even when the current state is broken.
- Improve pre-push fileset on new branches
- Allow "language local" hooks, hooks which install dependencies using
`additional_dependencies` and `language` are now allowed in `repo: local`.
0.12.2 - 2017-01-27
===================
- Fix docker hooks on older (<1.12) docker
0.12.1 - 2017-01-25
===================
- golang hooks now support additional_dependencies
- Added a --tags-only option to pre-commit autoupdate
0.12.0 - 2017-01-24
===================
- The new default file for implementing hooks in remote repositories is now
.pre-commit-hooks.yaml to encourage repositories to add the metadata. As
such, the previous hooks.yaml is now deprecated and generates a warning.
- Fix bug with local configuration interfering with ruby hooks
- Added support for hooks written in golang.
0.11.0 - 2017-01-20
===================
- SwiftPM support.
0.10.1 - 2017-01-05
===================
- shlex entry of docker based hooks.
- Make shlex behaviour of entry more consistent.
0.10.0 - 2017-01-04
===================
- Add an `install-hooks` command similar to `install --install-hooks` but
without the `install` side-effects.
- Adds support for docker based hooks.
0.9.4 - 2016-12-05
==================
- Warn when cygwin / python mismatch
- Add --config for customizing configuration during run
- Update rbenv + plugins to latest versions
- pcre hooks now fail when grep / ggrep are not present
0.9.3 - 2016-11-07
==================
- Fix python hook installation when a strange setup.cfg exists
0.9.2 - 2016-10-25
==================
- Remove some python2.6 compatibility
- UI is no longer sized to terminal width, instead 80 characters or longest
necessary width.
- Fix inability to create python hook environments when using venv / pyvenv on
osx
0.9.1 - 2016-09-10
==================
- Remove some python2.6 compatibility
- Fix staged-files-only with external diff tools
0.9.0 - 2016-08-31
==================
- Only consider forward diff in changed files
- Don't run on staged deleted files that still exist
- Autoupdate to tags when available
- Stop supporting python2.6
- Fix crash with staged files containing unstaged lines which have non-utf8
bytes and trailing whitespace
0.8.2 - 2016-05-20
==================
- Fix a crash introduced in 0.8.0 when an executable was not found
0.8.1 - 2016-05-17
==================
- Fix regression introduced in 0.8.0 when already using rbenv with no
configured ruby hook version
0.8.0 - 2016-04-11
==================
- Fix --files when running in a subdir
- Improve --help a bit
- Switch to pyterminalsize for determining terminal size
0.7.6 - 2016-01-19
==================
- Work under latest virtualenv
- No longer create empty directories on windows with latest virtualenv
0.7.5 - 2016-01-15
==================
- Consider dead symlinks as files when committing
0.7.4 - 2016-01-12
==================
- Produce error message instead of crashing on non-utf8 installation failure
0.7.3 - 2015-12-22
==================
- Fix regression introduced in 0.7.1 breaking `git commit -a`
0.7.2 - 2015-12-22
==================
- Add `always_run` setting for hooks to run even without file changes.
0.7.1 - 2015-12-19
==================
- Support running pre-commit inside submodules
0.7.0 - 2015-12-13
==================
- Store state about additional_dependencies for rollforward/rollback compatibility
0.6.8 - 2015-12-07
==================
- Build as a universal wheel
- Allow '.format('-like strings in arguments
- Add an option to require a minimum pre-commit version
0.6.7 - 2015-12-02
==================
- Print a useful message when a hook id is not present
- Fix printing of non-ascii with unexpected errors
- Print a message when a hook modifies files but produces no output
0.6.6 - 2015-11-25
==================
- Add `additional_dependencies` to hook configuration.
- Fix pre-commit cloning under git 2.6
- Small improvements for windows
0.6.5 - 2015-11-19
==================
- Allow args for pcre hooks
0.6.4 - 2015-11-13
==================
- Fix regression introduced in 0.6.3 regarding hooks which make non-utf8 diffs
0.6.3 - 2015-11-12
==================
- Remove `expected_return_code`
- Fail a hook if it makes modifications to the working directory
0.6.2 - 2015-10-14
==================
- Use --no-ri --no-rdoc instead of --no-document for gem to fix old gem
0.6.1 - 2015-10-08
==================
- Fix pre-push when pushing something that's already up to date
0.6.0 - 2015-10-05
==================
- Filter hooks by stage (commit, push).
0.5.5 - 2015-09-04
==================
- Change permissions a few files
- Rename the validate entrypoints
- Add --version to some entrypoints
- Add --no-document to gem installations
- Use expanduser when finding the python binary
- Suppress complaint about $TERM when no tty is attached
- Support pcre hooks on osx through ggrep
0.5.4 - 2015-07-24
==================
- Allow hooks to produce outputs with arbitrary bytes
- Fix pre-commit install when .git/hooks/pre-commit is a dead symlink
- Allow an unstaged config when using --files or --all-files
0.5.3 - 2015-06-15
==================
- Fix autoupdate with "local" hooks - don't purge local hooks.
0.5.2 - 2015-06-02
==================
- Fix autoupdate with "local" hooks
0.5.1 - 2015-05-23
==================
- Fix bug with unknown non-ascii hook-id
- Avoid crash when .git/hooks is not present in some git clients
0.5.0 - 2015-05-19
==================
- Add a new "local" hook type for running hooks without remote configuration.
- Complain loudly when .pre-commit-config.yaml is unstaged.
- Better support for multiple language versions when running hooks.
- Allow exclude to be defaulted in repository configuration.
0.4.4 - 2015-03-29
==================
- Use sys.executable when executing virtualenv
0.4.3 - 2015-03-25
==================
- Use reset instead of checkout when checkout out hook repo
0.4.2 - 2015-02-27
==================
- Limit length of xargs arguments to workaround windows xargs bug
0.4.1 - 2015-02-27
==================
- Don't rename across devices when creating sqlite database
0.4.0 - 2015-02-27
==================
- Make ^C^C During installation not cause all subsequent runs to fail
- Print while installing (instead of while cloning)
- Use sqlite to manage repositories (instead of symlinks)
- MVP Windows support
0.3.6 - 2015-02-05
==================
- `args` in venv'd languages are now property quoted.
0.3.5 - 2015-01-15
==================
- Support running during `pre-push`. See https://pre-commit.com/#advanced 'pre-commit during push'.
0.3.4 - 2015-01-13
==================
- Allow hook providers to default `args` in `hooks.yaml`
0.3.3 - 2015-01-06
==================
- Improve message for `CalledProcessError`
0.3.2 - 2014-10-07
==================
- Fix for `staged_files_only` with color.diff = always #176.
0.3.1 - 2014-10-03
==================
- Fix error clobbering #174.
- Remove dependency on `plumbum`.
- Allow pre-commit to be run from anywhere in a repository #175.
0.3.0 - 2014-09-18
==================
- Add `--files` option to `pre-commit run`
0.2.11 - 2014-09-05
===================
- Fix terminal width detection (broken in 0.2.10)
0.2.10 - 2014-09-04
===================
- Bump version of nodeenv to fix bug with ~/.npmrc
- Choose `python` more intelligently when running.
0.2.9 - 2014-09-02
==================
- Fix bug where sys.stdout.write must take `bytes` in python 2.6
0.2.8 - 2014-08-13
==================
- Allow a client to have duplicates of hooks.
- Use --prebuilt instead of system for node.
- Improve some fatal error messages
0.2.7 - 2014-07-28
==================
- Produce output when running pre-commit install --install-hooks
0.2.6 - 2014-07-28
==================
- Print hookid on failure
- Use sys.executable for running nodeenv
- Allow running as `python -m pre_commit`
0.2.5 - 2014-07-17
==================
- Default columns to 80 (for non-terminal execution).
0.2.4 - 2014-07-07
==================
- Support --install-hooks as an argument to `pre-commit install`
- Install hooks before attempting to run anything
- Use `python -m nodeenv` instead of `nodeenv`
0.2.3 - 2014-06-25
==================
- Freeze ruby building infrastructure
- Fix bug that assumed diffs were utf-8
0.2.2 - 2014-06-22
==================
- Fix filenames with spaces
0.2.1 - 2014-06-18
==================
- Use either `pre-commit` or `python -m pre_commit.main` depending on which is
available
- Don't use readlink -f
0.2.0 - 2014-06-17
==================
- Fix for merge-conflict during cherry-picking.
- Add -V / --version
- Add migration install mode / install -f / --overwrite
- Add `pcre` "language" for perl compatible regexes
- Reorganize packages.
0.1.1 - 2014-06-11
==================
- Fixed bug with autoupdate setting defaults on un-updated repos.
0.1.0 - 2014-06-07
==================
- Initial Release
|