# Changelog ## 0.2.12 Released on 2025-10-27. ### Enhancements - Add a warning for unimplemented hooks ([#976](https://github.com/j178/prek/pull/976)) - Allow using system trusted store by `PREK_NATIVE_TLS` ([#959](https://github.com/j178/prek/pull/959)) ### Bug fixes - Do not check for `script` subprocess status ([#964](https://github.com/j178/prek/pull/964)) - Fix compatibility with older luarocks ([#967](https://github.com/j178/prek/pull/967)) - Fix local relative path in `try-repo` ([#975](https://github.com/j178/prek/pull/975)) ### Documentation - Update language support status ([#970](https://github.com/j178/prek/pull/970)) ### Contributors - @yihong0618 - @st1971 - @j178 ## 0.2.11 Released on 2025-10-24. ### Enhancements - Support `language: lua` hooks ([#954](https://github.com/j178/prek/pull/954)) - Support `language_version: system` ([#949](https://github.com/j178/prek/pull/949)) - Implement `no-commit-to-branch` as builtin hook ([#930](https://github.com/j178/prek/pull/930)) - Improve styling for stashing error message ([#953](https://github.com/j178/prek/pull/953)) - Support nix-shell style shebang ([#929](https://github.com/j178/prek/pull/929)) ### Documentation - Add a page about "Quick start" ([#934](https://github.com/j178/prek/pull/934)) - Add kreuzberg to "who is using prek" ([#936](https://github.com/j178/prek/pull/936)) - Clarify minimum mise version required to use `mise use prek` ([#931](https://github.com/j178/prek/pull/931)) ### Contributors - @fllesser - @j178 ## 0.2.10 Released on 2025-10-18. ### Enhancements - Add `--fail-fast` CLI flag to stop after first hook failure ([#908](https://github.com/j178/prek/pull/908)) - Add collision detection for hook env directories ([#914](https://github.com/j178/prek/pull/914)) - Error out if not projects found ([#913](https://github.com/j178/prek/pull/913)) - Implement `check-xml` as builtin hook ([#894](https://github.com/j178/prek/pull/894)) - Implement `check-merge-conflict` as builtin hook ([#885](https://github.com/j178/prek/pull/885)) - Use line-by-line reading in `check-merge-conflict` ([#910](https://github.com/j178/prek/pull/910)) ### Bug fixes - Fix pygrep hook env health check ([#921](https://github.com/j178/prek/pull/921)) - Group `pygrep` with `python` when installing pygrep hooks ([#920](https://github.com/j178/prek/pull/920)) - Ignore `.` prefixed directory when searching managed Python for pygrep ([#919](https://github.com/j178/prek/pull/919)) ### Documentation - Add contribution guide ([#912](https://github.com/j178/prek/pull/912)) ### Other changes ### Contributors - @AdityasWorks - @j178 - @kenwoodjw - @lmmx ## 0.2.9 Released on 2025-10-16. ### Enhancements - Lazily check hook env health ([#897](https://github.com/j178/prek/pull/897)) - Implement `check-symlinks` as builtin hook ([#895](https://github.com/j178/prek/pull/895)) - Implement `detect-private-key` as builtin hook ([#893](https://github.com/j178/prek/pull/893)) ### Bug fixes - Download files to scratch directory to avoid cross-filesystem rename ([#889](https://github.com/j178/prek/pull/889)) - Fix golang hook install local dependencies ([#902](https://github.com/j178/prek/pull/902)) - Ignore the user-set `UV_MANAGED_PYTHON` ([#900](https://github.com/j178/prek/pull/900)) ### Other changes - Add package metadata for cargo-binstall ([#882](https://github.com/j178/prek/pull/882)) ### Contributors - @j178 - @lmmx ## 0.2.8 Released on 2025-10-14. *This is a re-release of 0.2.6 that fixes an issue where publishing to npmjs.com failed.* ### Enhancements - Publish prek to npmjs.com ([#819](https://github.com/j178/prek/pull/819)) - Support YAML merge keys in `.pre-commit-config.yaml` ([#871](https://github.com/j178/prek/pull/871)) ### Bug fixes - Use relative path with `--cd` in the generated hook script ([#868](https://github.com/j178/prek/pull/868)) - Fix autoupdate `rev` rendering for "float-like" version numbers ([#867](https://github.com/j178/prek/pull/867)) ### Documentation - Add Nix and Conda installation details ([#874](https://github.com/j178/prek/pull/874)) ### Contributors - @mondeja - @j178 - @bbannier - @yihong0618 - @colindean ## 0.2.5 Released on 2025-10-10. ### Enhancements - Implement `prek try-repo` ([#797](https://github.com/j178/prek/pull/797)) - Add fallback mechanism for prek executable in git hooks ([#850](https://github.com/j178/prek/pull/850)) - Ignore config error if the directory is skipped ([#860](https://github.com/j178/prek/pull/860)) ### Bug fixes - Fix panic when parse config failed ([#859](https://github.com/j178/prek/pull/859)) ### Other changes - Add a Dockerfile ([#852](https://github.com/j178/prek/pull/852)) ### Contributors - @j178 - @luizvbo ## 0.2.4 Released on 2025-10-07. ### Enhancements - Add support for `.prekignore` to ignore directories from project discovery ([#826](https://github.com/j178/prek/pull/826)) - Make `prek auto-update --jobs` default to 0 (which uses max available parallelism) ([#833](https://github.com/j178/prek/pull/833)) - Improve install message when installing for a subproject ([#847](https://github.com/j178/prek/pull/847)) ### Bug fixes - Convert extension to lowercase before checking file tags ([#839](https://github.com/j178/prek/pull/839)) - Support pass multiple files like `prek run --files a b c d` ([#828](https://github.com/j178/prek/pull/828)) ### Documentation - Add requests-cache to "Who is using prek" ([#824](https://github.com/j178/prek/pull/824)) ### Contributors - @SigureMo - @j178 ## 0.2.3 Released on 2025-09-29. ### Enhancements - Add `--dry-run` to `prek auto-update` ([#806](https://github.com/j178/prek/pull/806)) - Add a global `--log-file` flag to specify the log file path ([#817](https://github.com/j178/prek/pull/817)) - Implement hook health check ([#798](https://github.com/j178/prek/pull/798)) - Show error message in quiet mode ([#807](https://github.com/j178/prek/pull/807)) ### Bug fixes - Write `fail` entry into output directly ([#811](https://github.com/j178/prek/pull/811)) ### Documentation - Update docs about uv in prek ([#810](https://github.com/j178/prek/pull/810)) ### Other changes - Add a security policy for reporting vulnerabilities ([#804](https://github.com/j178/prek/pull/804)) ### Contributors - @mondeja - @j178 ## 0.2.2 Released on 2025-09-26. ### Enhancements - Add `prek cache dir`, move `prek gc` and `prek clean` under `prek cache` ([#795](https://github.com/j178/prek/pull/795)) - Add a hint when hooks failed in CI ([#800](https://github.com/j178/prek/pull/800)) - Add support for specifying `PREK_UV_SOURCE` ([#766](https://github.com/j178/prek/pull/766)) - Run docker container with `--init` ([#791](https://github.com/j178/prek/pull/791)) - Support `--allow-multiple-documents` for `check-yaml` ([#790](https://github.com/j178/prek/pull/790)) ### Bug fixes - Fix interpreter identification ([#801](https://github.com/j178/prek/pull/801)) ### Documentation - Add PaperQA2 to "Who is using prek" ([#793](https://github.com/j178/prek/pull/793)) - Clarify built-in hooks activation conditions and behavior ([#781](https://github.com/j178/prek/pull/781)) - Deduplicate docs between README and MkDocs site ([#792](https://github.com/j178/prek/pull/792)) - Mention `j178/prek-action` in docs ([#753](https://github.com/j178/prek/pull/753)) ### Other Changes - Bump `pre-commit-hooks` in sample-config to v6.0.0 ([#761](https://github.com/j178/prek/pull/761)) - Improve arg parsing for builtin hooks ([#789](https://github.com/j178/prek/pull/789)) ### Contributors - @mondeja - @akx - @bxb100 - @j178 - @onerandomusername ## 0.2.1 ### Enhancements - auto-update: prefer tags that are most similar to the current version ([#719](https://github.com/j178/prek/pull/719)) ### Bug fixes - Fix `git --no-pager diff` command syntax upon failures ([#746](https://github.com/j178/prek/pull/746)) - Clean working tree of current workspace only ([#747](https://github.com/j178/prek/pull/747)) - Use concurrent read and write in `git check-attr` ([#731](https://github.com/j178/prek/pull/731)) ### Documentation - Fix typo in language-version to language_version ([#727](https://github.com/j178/prek/pull/727)) - Update benchmarks ([#728](https://github.com/j178/prek/pull/728)) ### Contributors - @j178 - @matthiask - @AdrianDC - @onerandomusername ## 0.2.0 This is a huge milestone release that introduces **Workspace Mode** — first‑class monorepo support. `prek` now allows you to manage multiple projects with their own `.pre-commit-config.yaml` within a single repository. It auto‑discovers nested projects, runs hooks in project scope, and provides flexible selectors to target specific projects and hooks. This makes `prek` a powerful tool for managing pre-commit hooks in complex repository structures. For more details, see [Workspace Mode](https://prek.j178.dev/workspace/). If you encounter any issues, please report them at [Issues](https://github.com/j178/prek/issues). **Note**: If you ran `prek install` in a repo before, you gonna need to run `prek install` again to replace the old git hook scripts for the workspace mode to work. Special thanks to @potiuk for all the help and feedback in designing and testing this feature! For detailed changes between 0.1.6 and 0.2.0, see [0.2.0-alpha.2](https://github.com/j178/prek/releases/v0.2.0-alpha.2), [0.2.0-alpha.3](https://github.com/j178/prek/releases/v0.2.0-alpha.3), [0.2.0-alpha.4](https://github.com/j178/prek/releases/v0.2.0-alpha.4), and [0.2.0-alpha.5](https://github.com/j178/prek/releases/v0.2.0-alpha.5). ### Enhancements - Fix parsing of tag describe for prerelease versions ([#714](https://github.com/j178/prek/pull/714)) - Truncate log file each time ([#717](https://github.com/j178/prek/pull/717)) ### Performance - Enable more aggressive optimizations for release ([#724](https://github.com/j178/prek/pull/724)) - Speed up check_toml ([#713](https://github.com/j178/prek/pull/713)) ### Bug fixes - Fix hook-impl don't run hooks when specified allow missing config ([#716](https://github.com/j178/prek/pull/716)) - fix: support py38 for pygrep ([#723](https://github.com/j178/prek/pull/723)) ### Other changes - Fix installation on fish and with missing tags ([#721](https://github.com/j178/prek/pull/721)) ### Contributors - @onerandomusername - @kushudai - @j178 ## 0.2.0a5 ### Enhancements - Add built in byte-order-marker fixer ([#700](https://github.com/j178/prek/pull/700)) - Use bigger buffer for fixing trailing whitespace ([#705](https://github.com/j178/prek/pull/705)) ### Bug fixes - Fix `trailing-whitespace` & `mixed-line-ending` write file path ([#708](https://github.com/j178/prek/pull/708)) - Fix file path handling for meta hooks in workspace mode ([#699](https://github.com/j178/prek/pull/699)) ### Documentation - Add docs about configuration ([#703](https://github.com/j178/prek/pull/703)) - Add docs about debugging ([#702](https://github.com/j178/prek/pull/702)) - Generate cli reference ([#707](https://github.com/j178/prek/pull/707)) ### Contributors - @kushudai - @j178 ## 0.2.0a4 ### Enhancements - Bring back `.pre-commit-config.yml` support ([#676](https://github.com/j178/prek/pull/676)) - Ignore config file from hidden directory ([#677](https://github.com/j178/prek/pull/677)) - Support selectors in `prek install/install-hooks/hook-impl` ([#683](https://github.com/j178/prek/pull/683)) ### Bug fixes - Do not set GOROOT for system install Go when running go hooks ([#694](https://github.com/j178/prek/pull/694)) - Fix `check_toml` and `check_yaml` in workspace mode ([#688](https://github.com/j178/prek/pull/688)) ### Documentation - Add docs about TODOs ([#679](https://github.com/j178/prek/pull/679)) - Add docs about builtin hooks ([#678](https://github.com/j178/prek/pull/678)) ### Other changes - docs(manifest): Correctly specify metadata for all packages ([#687](https://github.com/j178/prek/pull/687)) - refactor(cli): Clean up usage of clap ([#689](https://github.com/j178/prek/pull/689)) ### Contributors - @j178 - @epage - @aravindan888 ## 0.2.0a3 ### Enhancements - Add a warning to `hook-impl` when the script needs reinstall ([#647](https://github.com/j178/prek/pull/647)) ### Documentation - Add a notice to rerun `prek install` when upgrading to 0.2.0 ([#646](https://github.com/j178/prek/pull/646)) ### Contributors - @j178 ## 0.2.0-alpha.2 *This is a re-release of [0.2.0-alpha.1](https://github.com/j178/prek/releases/tag/v0.2.0-alpha.1), fixed an issue that prereleases are not published to PyPI.* This is a huge milestone release that introduces **Workspace Mode** — first‑class monorepo support. `prek` now allows you to manage multiple projects with their own `.pre-commit-config.yaml` within a single repository. It auto‑discovers nested projects, runs hooks in project scope, and provides flexible selectors to target specific projects and hooks. This makes `prek` a powerful tool for managing pre-commit hooks in complex repository structures. **Note**: If you ran `prek install` in a repo before, you gonna need to run `prek install` again to replace the old git hook scripts for the workspace mode to work. For more details, see [Workspace Mode](https://prek.j178.dev/workspace/). If you encounter any issues, please report them at [Issues](https://github.com/j178/prek/issues). Special thanks to @potiuk for all the help and feedback in designing and testing this feature! ### Enhancements - Support multiple `.pre-commit-config.yaml` in a workspace (monorepo mode) ([#583](https://github.com/j178/prek/pull/583)) - Implement project and hook selector ([#623](https://github.com/j178/prek/pull/623)) - Add `prek run --cd ` to change directory before running ([#581](https://github.com/j178/prek/pull/581)) - Support `prek list` in workspace mode ([#586](https://github.com/j178/prek/pull/586)) - Support `prek install|install-hooks|hook-impl|init-template-dir` in workspace mode ([#595](https://github.com/j178/prek/pull/595)) - Implement `auto-update` in workspace mode ([#605](https://github.com/j178/prek/pull/605)) - Implement selector completion in workspace mode ([#639](https://github.com/j178/prek/pull/639)) - Simplify `auto-update` implementation ([#608](https://github.com/j178/prek/pull/608)) - Add a `--dry-run` flag to `prek run` ([#622](https://github.com/j178/prek/pull/622)) - Cache workspace discovery result ([#636](https://github.com/j178/prek/pull/636)) - Fix local script hook entry path in workspace mode ([#603](https://github.com/j178/prek/pull/603)) - Fix `hook-impl` allow missing config ([#600](https://github.com/j178/prek/pull/600)) - Fix docker mount in workspace mode ([#638](https://github.com/j178/prek/pull/638)) - Show project line when project is not root ([#637](https://github.com/j178/prek/pull/637)) ### Documentation - Publish docs to `https://prek.j178.dev` ([#627](https://github.com/j178/prek/pull/627)) - Improve workspace docs about skips rule ([#615](https://github.com/j178/prek/pull/615)) - Add an full example and update docs ([#582](https://github.com/j178/prek/pull/582)) ### Other changes - Docs: `.pre-commit-config.yml` support has been removed ([#630](https://github.com/j178/prek/pull/630)) - Enable publishing prereleases ([#641](https://github.com/j178/prek/pull/641)) ### Contributors - [@luizvbo](https://github.com/luizvbo) - [@j178](https://github.com/j178) - [@hugovk](https://github.com/hugovk) ## 0.1.6 ### Enhancements - Improve hook install concurrency ([#611](https://github.com/j178/prek/pull/611)) - Parse JSON from slice ([#604](https://github.com/j178/prek/pull/604)) ### Bug fixes - Reuse hook env only for exactly same dependencies ([#609](https://github.com/j178/prek/pull/609)) - Workaround checkout file failure on Windows ([#616](https://github.com/j178/prek/pull/616)) ## 0.1.5 ### Enhancements - Implement `pre-push` hook type ([#598](https://github.com/j178/prek/pull/598)) - Implement `pre-commit-hooks:check_yaml` as builtin hook ([#557](https://github.com/j178/prek/pull/557)) - Implement `pre-commit-hooks:check-toml` as builtin hook ([#564](https://github.com/j178/prek/pull/564)) - Add validation for file type tags ([#565](https://github.com/j178/prek/pull/565)) - Ignore NotFound error in extracting metadata log ([#597](https://github.com/j178/prek/pull/597)) ### Documentation - Update project status ([#578](https://github.com/j178/prek/pull/578)) ### Other changes - Bump tracing-subscriber to 0.3.20 ([#567](https://github.com/j178/prek/pull/567)) - Remove color from trace log ([#580](https://github.com/j178/prek/pull/580)) ## 0.1.4 ### Enhancements - Improve docker image labels ([#551](https://github.com/j178/prek/pull/551)) ### Performance - Avoid unnecessary allocation in `run_by_batch` ([#549](https://github.com/j178/prek/pull/549)) - Cache current docker container mounts ([#552](https://github.com/j178/prek/pull/552)) ### Bug fixes - Fix `trailing-whitespace` cannot handle file contains invalid utf-8 data ([#544](https://github.com/j178/prek/pull/544)) - Fix trailing-whitespace eol trimming ([#546](https://github.com/j178/prek/pull/546)) - Fix trailing-whitespace markdown eol trimming ([#547](https://github.com/j178/prek/pull/547)) ### Documentation - Add authlib to `Who are using prek` ([#550](https://github.com/j178/prek/pull/550)) ## 0.1.3 ### Enhancements - Support PEP 723 scripts for Python hooks ([#529](https://github.com/j178/prek/pull/529)) ### Bug fixes - Fix Python hook stderr are not captured ([#530](https://github.com/j178/prek/pull/530)) ### Other changes - Add an error context when reading manifest failed ([#527](https://github.com/j178/prek/pull/527)) - Add a renovate rule to bump bundled uv version ([#528](https://github.com/j178/prek/pull/528)) - Disable semantic commits for renovate PRs ([#538](https://github.com/j178/prek/pull/538)) ## 0.1.2 ### Enhancements - Add check for missing hooks in new revision ([#521](https://github.com/j178/prek/pull/521)) ### Bug fixes - Fix `language: script` entry join issue ([#525](https://github.com/j178/prek/pull/525)) ### Other changes - Add OpenLineage to prek users ([#523](https://github.com/j178/prek/pull/523)) ## 0.1.1 ### Breaking changes - Drop support `.yml` config file ([#493](https://github.com/j178/prek/pull/493)) ### Enhancements - Add moving rev warning ([#488](https://github.com/j178/prek/pull/488)) - Implement `prek auto-update` ([#511](https://github.com/j178/prek/pull/511)) - Support local path as a `repo` url ([#513](https://github.com/j178/prek/pull/513)) ### Bug fixes - Fix recursion limit when checking deeply nested json ([#507](https://github.com/j178/prek/pull/507)) - Fix rename tempfile across device ([#508](https://github.com/j178/prek/pull/508)) - Fix build on s390x ([#518](https://github.com/j178/prek/pull/518)) ### Other changes - docs: install prek with mise ([#510](https://github.com/j178/prek/pull/510)) ## 0.0.29 ### Enhancements - Build wheels for more platforms ([#489](https://github.com/j178/prek/pull/489)) ### Bug fixes - Fix `git commit -a` does not pick up staged files correctly ([#487](https://github.com/j178/prek/pull/487)) ## 0.0.28 ### Bug fixes - Fix `inde.lock file exists` error when running `git commit -p` or `git commit -a` ([#482](https://github.com/j178/prek/pull/482)) - Various fixes to `init-templdate-dir` and directory related bug ([#484](https://github.com/j178/prek/pull/484)) ## 0.0.27 ### Enhancements - Clone repo temporarily into scratch directory ([#478](https://github.com/j178/prek/pull/478)) - Don’t show the progress bar if there’s no need for cloning or installing hooks ([#477](https://github.com/j178/prek/pull/477)) - Support `language_version: lts` for node ([#473](https://github.com/j178/prek/pull/473)) ### Bug fixes - Adjust `sample-config` file path before writing ([#474](https://github.com/j178/prek/pull/474)) - Resolve script shebang before running ([#475](https://github.com/j178/prek/pull/475)) ## 0.0.26 ### Enhancements - Disable `prek self update` for package managers ([#468](https://github.com/j178/prek/pull/468)) - Download uv from github releases directly ([#464](https://github.com/j178/prek/pull/464)) - Find `uv` alongside the `prek` binary ([#466](https://github.com/j178/prek/pull/466)) - Run hooks with pty if color enabled ([#471](https://github.com/j178/prek/pull/471)) - Warn unexpected keys in config ([#463](https://github.com/j178/prek/pull/463)) ### Bug fixes - Canonicalize prek executable path ([#467](https://github.com/j178/prek/pull/467)) ### Documentation - Add "Who are using prek" to README ([#458](https://github.com/j178/prek/pull/458)) ## 0.0.25 ### Enhancements - Add check for `minimum_prek_version` ([#437](https://github.com/j178/prefligit/pull/437)) - Make `--to-ref` default to HEAD if `--from-ref` is specified ([#426](https://github.com/j178/prefligit/pull/426)) - Support downloading uv from pypi and mirrors ([#449](https://github.com/j178/prefligit/pull/449)) - Write trace log to `$PREK_HOME/prek.log` ([#447](https://github.com/j178/prefligit/pull/447)) - Implement `mixed_line_ending` as builtin hook ([#444](https://github.com/j178/prefligit/pull/444)) - Support `--output-format=json` in `prek list` ([#446](https://github.com/j178/prefligit/pull/446)) - Add context message to install error ([#455](https://github.com/j178/prefligit/pull/455)) - Add warning for non-existent hook id ([#450](https://github.com/j178/prefligit/pull/450)) ### Performance - Refactor `fix_trailing_whitespace` ([#411](https://github.com/j178/prefligit/pull/411)) ### Bug fixes - Calculate more accurate max cli length ([#442](https://github.com/j178/prefligit/pull/442)) - Fix uv install on Windows ([#453](https://github.com/j178/prefligit/pull/453)) - Static link `liblzma` ([#445](https://github.com/j178/prefligit/pull/445)) ## 0.0.24 ### Enhancements - Add dynamic completion of hook ids ([#380](https://github.com/j178/prek/pull/380)) - Implement `prek list` to list available hooks ([#424](https://github.com/j178/prek/pull/424)) - Implement `pygrep` language support ([#383](https://github.com/j178/prek/pull/383)) - Support `prek run` multiple hooks ([#423](https://github.com/j178/prek/pull/423)) - Implement `check_json` as builtin hook ([#416](https://github.com/j178/prek/pull/416)) ### Performance - Avoid reading whole file into memory in `fix_end_of_file` and make it consistent with `pre-commit-hooks` ([#399](https://github.com/j178/prek/pull/399)) ### Bug fixes - Do not set `GOROOT` and `GOPATH` for system found go ([#415](https://github.com/j178/prek/pull/415)) ### Documentation - Use `brew install j178/tap/prek` for now ([#420](https://github.com/j178/prek/pull/420)) - chore: logo rebranded, Update README.md ([#408](https://github.com/j178/prek/pull/408)) ## 0.0.23 ### Breaking changes In this release, we've renamed the project to `prek` from `prefligit`. It's shorter so easier to type, and it avoids typosquatting with `preflight`. This means that the command-line name is now `prek`, and the PyPI package is now listed as [`prek`](https://pypi.org/project/prek/). And the Homebrew will be updated to `prek` as well. And previously, the cache directory was `~/.cache/prefligit`, now it is `~/.cache/prek`. You'd have to delete the old cache directory manually, or run `prefligit clean` to clean it up. Then uninstall the old `prefligit` and install the new `prek` from scratch. ### Enhancements - Relax uv version check range ([#396](https://github.com/j178/prefligit/pull/396)) ### Bug fixes - Fix `script` command path ([#398](https://github.com/j178/prefligit/pull/398)) - Fix meta hook `check_useless_excludes` ([#401](https://github.com/j178/prefligit/pull/401)) ### Other changes - Rename to `prek` from `prefligit` ([#402](https://github.com/j178/prefligit/pull/402)) ## 0.0.22 ### Enhancements - Add value hint to `prefligit run` flags ([#373](https://github.com/j178/prefligit/pull/373)) - Check minimum supported version for uv found from system ([#352](https://github.com/j178/prefligit/pull/352)) ### Bug fixes - Fix `check_added_large_files` parameter name ([#389](https://github.com/j178/prefligit/pull/389)) - Fix `npm install` on Windows ([#374](https://github.com/j178/prefligit/pull/374)) - Fix docker mount options ([#377](https://github.com/j178/prefligit/pull/377)) - Fix identify tags for `Pipfile.lock` ([#391](https://github.com/j178/prefligit/pull/391)) - Fix identifying symlinks ([#378](https://github.com/j178/prefligit/pull/378)) - Set `GOROOT` when installing golang hook ([#381](https://github.com/j178/prefligit/pull/381)) ### Other changes - Add devcontainer config ([#379](https://github.com/j178/prefligit/pull/379)) - Bump rust toolchain to 1.89 ([#386](https://github.com/j178/prefligit/pull/386)) ## 0.0.21 ### Enhancements - Add `--directory` to `prefligit run` ([#358](https://github.com/j178/prefligit/pull/358)) - Implement `tags_from_interpreter` ([#362](https://github.com/j178/prefligit/pull/362)) - Set GOBIN to `/bin`, set GOPATH to `$PREGLIGIT_HOME/cache/go` ([#369](https://github.com/j178/prefligit/pull/369)) ### Performance - Make Partitions iterator produce slice instead of Vec ([#361](https://github.com/j178/prefligit/pull/361)) - Use `rustc_hash` ([#359](https://github.com/j178/prefligit/pull/359)) ### Bug fixes - Add `node` to PATH when running `npm` ([#371](https://github.com/j178/prefligit/pull/371)) - Fix bug that default hook stage should be pre-commit ([#367](https://github.com/j178/prefligit/pull/367)) - Fix cache dir permission before clean ([#368](https://github.com/j178/prefligit/pull/368)) ### Other changes - Move `Project` into `workspace` module ([#364](https://github.com/j178/prefligit/pull/364)) ## 0.0.20 ### Enhancements - Support golang hooks and golang toolchain management ([#355](https://github.com/j178/prefligit/pull/355)) - Add `--last-commit` flag to `prefligit run` ([#351](https://github.com/j178/prefligit/pull/351)) ### Bug fixes - Fix bug that directories are ignored ([#350](https://github.com/j178/prefligit/pull/350)) - Use `git ls-remote` to fetch go releases ([#356](https://github.com/j178/prefligit/pull/356)) ### Documentation - Add migration section to README ([#354](https://github.com/j178/prefligit/pull/354)) ## 0.0.19 ### Enhancements - Improve node support ([#346](https://github.com/j178/prefligit/pull/346)) - Manage uv cache dir ([#345](https://github.com/j178/prefligit/pull/345)) ### Bug fixes - Add `--install-links` to `npm install` ([#347](https://github.com/j178/prefligit/pull/347)) - Fix large file check to use staged_get instead of intent_add ([#332](https://github.com/j178/prefligit/pull/332)) ## 0.0.18 ### Enhancements - Impl `FromStr` for language request ([#338](https://github.com/j178/prefligit/pull/338)) ### Performance - Use DFS to find connected components in hook dependencies ([#341](https://github.com/j178/prefligit/pull/341)) - Use more `Arc` over `Box` ([#333](https://github.com/j178/prefligit/pull/333)) ### Bug fixes - Fix node path match, add tests ([#339](https://github.com/j178/prefligit/pull/339)) - Skipped hook name should be taken into account for columns ([#335](https://github.com/j178/prefligit/pull/335)) ### Documentation - Add benchmarks ([#342](https://github.com/j178/prefligit/pull/342)) - Update docs ([#337](https://github.com/j178/prefligit/pull/337)) ## 0.0.17 ### Enhancements - Add `sample-config --file` to write sample config to file ([#313](https://github.com/j178/prefligit/pull/313)) - Cache computed `dependencies` on hook ([#319](https://github.com/j178/prefligit/pull/319)) - Cache the found path to uv ([#323](https://github.com/j178/prefligit/pull/323)) - Improve `sample-config` writing file ([#314](https://github.com/j178/prefligit/pull/314)) - Reimplement find matching env logic ([#327](https://github.com/j178/prefligit/pull/327)) ### Bug fixes - Fix issue that `entry` of `pygrep` is not shell commands ([#316](https://github.com/j178/prefligit/pull/316)) - Support `python311` as a valid language version ([#321](https://github.com/j178/prefligit/pull/321)) ### Other changes - Bump cargo-dist to 0.29.0 ([#322](https://github.com/j178/prefligit/pull/322)) - Update DIFF.md ([#318](https://github.com/j178/prefligit/pull/318)) ## 0.0.16 ### Enhancements - Improve error message for hook ([#308](https://github.com/j178/prefligit/pull/308)) - Improve error message for hook installation and run ([#310](https://github.com/j178/prefligit/pull/310)) - Improve hook invalid error message ([#307](https://github.com/j178/prefligit/pull/307)) - Parse `entry` when constructing hook ([#306](https://github.com/j178/prefligit/pull/306)) - Rename `autoupdate` to `auto-update`, `init-templatedir` to `init-template-dir` ([#302](https://github.com/j178/prefligit/pull/302)) ### Bug fixes - Fix `end-of-file-fixer` replaces `\r\n` with `\n` ([#311](https://github.com/j178/prefligit/pull/311)) ## 0.0.15 In this release, `language: node` hooks are fully supported now (finally)!. Give it a try and let us know if you run into any issues! ### Enhancements - Support `nodejs` language hook ([#298](https://github.com/j178/prefligit/pull/298)) - Show unimplemented message earlier ([#296](https://github.com/j178/prefligit/pull/296)) - Simplify npm installing dependencies ([#299](https://github.com/j178/prefligit/pull/299)) ### Documentation - Update readme ([#300](https://github.com/j178/prefligit/pull/300)) ## 0.0.14 ### Enhancements - Show unimplemented status instead of panic ([#290](https://github.com/j178/prefligit/pull/290)) - Try default uv managed python first, fallback to download ([#291](https://github.com/j178/prefligit/pull/291)) ### Other changes - Update Rust crate fancy-regex to 0.16.0 ([#286](https://github.com/j178/prefligit/pull/286)) - Update Rust crate indicatif to 0.18.0 ([#287](https://github.com/j178/prefligit/pull/287)) - Update Rust crate pprof to 0.15.0 ([#288](https://github.com/j178/prefligit/pull/288)) - Update Rust crate serde_json to v1.0.142 ([#285](https://github.com/j178/prefligit/pull/285)) - Update astral-sh/setup-uv action to v6 ([#289](https://github.com/j178/prefligit/pull/289)) ## 0.0.13 ### Enhancements - Add `PREFLIGIT_NO_FAST_PATH` to disable Rust fast path ([#272](https://github.com/j178/prefligit/pull/272)) - Improve subprocess error message ([#276](https://github.com/j178/prefligit/pull/276)) - Remove `LanguagePreference` and improve language check ([#277](https://github.com/j178/prefligit/pull/277)) - Support downloading requested Python version automatically ([#281](https://github.com/j178/prefligit/pull/281)) - Implement language specific version parsing ([#273](https://github.com/j178/prefligit/pull/273)) ### Bug fixes - Fix python version matching ([#275](https://github.com/j178/prefligit/pull/275)) - Show progress bar in verbose mode ([#278](https://github.com/j178/prefligit/pull/278)) ## 0.0.12 ### Bug fixes - Ignore `config not staged` error for config outside the repo ([#270](https://github.com/j178/prefligit/pull/270)) ### Other changes - Add test fixture files ([#266](https://github.com/j178/prefligit/pull/266)) - Use `sync_all` over `flush` ([#269](https://github.com/j178/prefligit/pull/269)) ## 0.0.11 ### Enhancements - Support reading `.pre-commit-config.yml` as well ([#213](https://github.com/j178/prefligit/pull/213)) - Refactor language version resolution and hook install dir ([#221](https://github.com/j178/prefligit/pull/221)) - Implement `prefligit install-hooks` command ([#258](https://github.com/j178/prefligit/pull/258)) - Implement `pre-commit-hooks:end-of-file-fixer` hook ([#255](https://github.com/j178/prefligit/pull/255)) - Implement `pre-commit-hooks:check_added_large_files` hook ([#219](https://github.com/j178/prefligit/pull/219)) - Implement `script` language hooks ([#252](https://github.com/j178/prefligit/pull/252)) - Implement node.js installer ([#152](https://github.com/j178/prefligit/pull/152)) - Use `-v` to show only verbose message, `-vv` show debug log, `-vvv` show trace log ([#211](https://github.com/j178/prefligit/pull/211)) - Write `.prefligit-repo.json` inside cloned repo ([#225](https://github.com/j178/prefligit/pull/225)) - Add language name to 'not yet implemented' messages ([#251](https://github.com/j178/prefligit/pull/251)) ### Bug fixes - Do not install if no additional dependencies for local python hook ([#195](https://github.com/j178/prefligit/pull/195)) - Ensure flushing log file ([#261](https://github.com/j178/prefligit/pull/261)) - Fix zip deflate ([#194](https://github.com/j178/prefligit/pull/194)) ### Other changes - Bump to Rust 1.88 and `cargo update` ([#254](https://github.com/j178/prefligit/pull/254)) - Upgrade to Rust 2024 edition ([#196](https://github.com/j178/prefligit/pull/196)) - Bump uv version ([#260](https://github.com/j178/prefligit/pull/260)) - Simplify archive extraction implementation ([#193](https://github.com/j178/prefligit/pull/193)) - Use `astral-sh/rs-async-zip` ([#259](https://github.com/j178/prefligit/pull/259)) - Use `ubuntu-latest` for release action ([#216](https://github.com/j178/prefligit/pull/216)) - Use async closure ([#200](https://github.com/j178/prefligit/pull/200)) ## 0.0.10 ### Breaking changes **Warning**: This release changed the store layout, it's recommended to delete the old store and install from scratch. To delete the old store, run: ```sh rm -rf ~/.cache/prefligit ``` ### Enhancements - Restructure store folders layout ([#181](https://github.com/j178/prefligit/pull/181)) - Fallback some env vars to to pre-commit ([#175](https://github.com/j178/prefligit/pull/175)) - Save patches to `$PREFLIGIT_HOME/patches` ([#182](https://github.com/j178/prefligit/pull/182)) ### Bug fixes - Fix removing git env vars ([#176](https://github.com/j178/prefligit/pull/176)) - Fix typo in Cargo.toml ([#160](https://github.com/j178/prefligit/pull/160)) ### Other changes - Do not publish to crates.io ([#191](https://github.com/j178/prefligit/pull/191)) - Bump cargo-dist to v0.28.0 ([#170](https://github.com/j178/prefligit/pull/170)) - Bump uv version to 0.6.0 ([#184](https://github.com/j178/prefligit/pull/184)) - Configure Renovate ([#168](https://github.com/j178/prefligit/pull/168)) - Format sample config output ([#172](https://github.com/j178/prefligit/pull/172)) - Make env vars a shareable crate ([#171](https://github.com/j178/prefligit/pull/171)) - Reduce String alloc ([#166](https://github.com/j178/prefligit/pull/166)) - Skip common git flags in command trace log ([#162](https://github.com/j178/prefligit/pull/162)) - Update Rust crate clap to v4.5.29 ([#173](https://github.com/j178/prefligit/pull/173)) - Update Rust crate which to v7.0.2 ([#163](https://github.com/j178/prefligit/pull/163)) - Update astral-sh/setup-uv action to v5 ([#164](https://github.com/j178/prefligit/pull/164)) - Upgrade Rust to 1.84 and upgrade dependencies ([#161](https://github.com/j178/prefligit/pull/161)) ## 0.0.9 Due to a mistake in the release process, this release is skipped. ## 0.0.8 ### Enhancements - Move home dir to `~/.cache/prefligit` ([#154](https://github.com/j178/prefligit/pull/154)) - Implement trailing-whitespace in Rust ([#137](https://github.com/j178/prefligit/pull/137)) - Limit hook install concurrency ([#145](https://github.com/j178/prefligit/pull/145)) - Simplify language default version implementation ([#150](https://github.com/j178/prefligit/pull/150)) - Support install uv from pypi ([#149](https://github.com/j178/prefligit/pull/149)) - Add executing command to error message ([#141](https://github.com/j178/prefligit/pull/141)) ### Bug fixes - Use hook `args` in fast path ([#139](https://github.com/j178/prefligit/pull/139)) ### Other changes - Remove hook install_key ([#153](https://github.com/j178/prefligit/pull/153)) - Remove pyvenv.cfg patch ([#156](https://github.com/j178/prefligit/pull/156)) - Try to use D drive on Windows CI ([#157](https://github.com/j178/prefligit/pull/157)) - Tweak trailing-whitespace-fixer ([#140](https://github.com/j178/prefligit/pull/140)) - Upgrade dist to v0.27.0 ([#158](https://github.com/j178/prefligit/pull/158)) - Uv install python into tools path ([#151](https://github.com/j178/prefligit/pull/151)) ## 0.0.7 ### Enhancements - Add progress bar for hook init and install ([#122](https://github.com/j178/prefligit/pull/122)) - Add color to command help ([#131](https://github.com/j178/prefligit/pull/131)) - Add commit info to version display ([#130](https://github.com/j178/prefligit/pull/130)) - Support meta hooks reading ([#134](https://github.com/j178/prefligit/pull/134)) - Implement meta hooks ([#135](https://github.com/j178/prefligit/pull/135)) ### Bug fixes - Fix same repo clone multiple times ([#125](https://github.com/j178/prefligit/pull/125)) - Fix logging level after renaming ([#119](https://github.com/j178/prefligit/pull/119)) - Fix version tag distance ([#132](https://github.com/j178/prefligit/pull/132)) ### Other changes - Disable uv cache on Windows ([#127](https://github.com/j178/prefligit/pull/127)) - Impl Eq and Hash for ConfigRemoteRepo ([#126](https://github.com/j178/prefligit/pull/126)) - Make `pass_env_vars` runs on Windows ([#133](https://github.com/j178/prefligit/pull/133)) - Run cargo update ([#129](https://github.com/j178/prefligit/pull/129)) - Update Readme ([#128](https://github.com/j178/prefligit/pull/128)) ## 0.0.6 ### Breaking changes In this release, we’ve renamed the project to `prefligit` (a deliberate misspelling of preflight) to prevent confusion with the existing pre-commit tool. For further information, refer to issue #73. - The command-line name is now `prefligit`. We suggest uninstalling any previous version of `pre-commit-rs` and installing `prefligit` from scratch. - The PyPI package is now listed as [`prefligit`](https://pypi.org/project/prefligit/). - The Cargo package is also now [`prefligit`](https://crates.io/crates/prefligit). - The Homebrew formula has been updated to `prefligit`. ### Enhancements - Support `docker_image` language ([#113](https://github.com/j178/pre-commit-rs/pull/113)) - Support `init-templatedir` subcommand ([#101](https://github.com/j178/pre-commit-rs/pull/101)) - Implement get filenames from merge conflicts ([#103](https://github.com/j178/pre-commit-rs/pull/103)) ### Bug fixes - Fix `prefligit install --hook-type` name ([#102](https://github.com/j178/pre-commit-rs/pull/102)) ### Other changes - Apply color option to log ([#100](https://github.com/j178/pre-commit-rs/pull/100)) - Improve tests ([#106](https://github.com/j178/pre-commit-rs/pull/106)) - Remove intermedia Language enum ([#107](https://github.com/j178/pre-commit-rs/pull/107)) - Run `cargo clippy` in the dev drive workspace ([#115](https://github.com/j178/pre-commit-rs/pull/115)) ## 0.0.5 ### Enhancements v0.0.4 release process was broken, so this release is a actually a re-release of v0.0.4. - Improve subprocess trace and error output ([#92](https://github.com/j178/pre-commit-rs/pull/92)) - Stash working tree before running hooks ([#96](https://github.com/j178/pre-commit-rs/pull/96)) - Add color to command trace ([#94](https://github.com/j178/pre-commit-rs/pull/94)) - Improve hook output display ([#79](https://github.com/j178/pre-commit-rs/pull/79)) - Improve uv installation ([#78](https://github.com/j178/pre-commit-rs/pull/78)) - Support docker language ([#67](https://github.com/j178/pre-commit-rs/pull/67)) ## 0.0.4 ### Enhancements - Improve subprocess trace and error output ([#92](https://github.com/j178/pre-commit-rs/pull/92)) - Stash working tree before running hooks ([#96](https://github.com/j178/pre-commit-rs/pull/96)) - Add color to command trace ([#94](https://github.com/j178/pre-commit-rs/pull/94)) - Improve hook output display ([#79](https://github.com/j178/pre-commit-rs/pull/79)) - Improve uv installation ([#78](https://github.com/j178/pre-commit-rs/pull/78)) - Support docker language ([#67](https://github.com/j178/pre-commit-rs/pull/67)) ## 0.0.3 ### Bug fixes - Check uv installed after acquired lock ([#72](https://github.com/j178/pre-commit-rs/pull/72)) ### Other changes - Add copyright of the original pre-commit to LICENSE ([#74](https://github.com/j178/pre-commit-rs/pull/74)) - Add profiler ([#71](https://github.com/j178/pre-commit-rs/pull/71)) - Publish to PyPI ([#70](https://github.com/j178/pre-commit-rs/pull/70)) - Publish to crates.io ([#75](https://github.com/j178/pre-commit-rs/pull/75)) - Rename pypi package to `pre-commit-rusty` ([#76](https://github.com/j178/pre-commit-rs/pull/76)) ## 0.0.2 ### Enhancements - Add `pre-commit self update` ([#68](https://github.com/j178/pre-commit-rs/pull/68)) - Auto install uv ([#66](https://github.com/j178/pre-commit-rs/pull/66)) - Generate shell completion ([#20](https://github.com/j178/pre-commit-rs/pull/20)) - Implement `pre-commit clean` ([#24](https://github.com/j178/pre-commit-rs/pull/24)) - Implement `pre-commit install` ([#28](https://github.com/j178/pre-commit-rs/pull/28)) - Implement `pre-commit sample-config` ([#37](https://github.com/j178/pre-commit-rs/pull/37)) - Implement `pre-commit uninstall` ([#36](https://github.com/j178/pre-commit-rs/pull/36)) - Implement `pre-commit validate-config` ([#25](https://github.com/j178/pre-commit-rs/pull/25)) - Implement `pre-commit validate-manifest` ([#26](https://github.com/j178/pre-commit-rs/pull/26)) - Implement basic `pre-commit hook-impl` ([#63](https://github.com/j178/pre-commit-rs/pull/63)) - Partition filenames and delegate to multiple subprocesses ([#7](https://github.com/j178/pre-commit-rs/pull/7)) - Refactor xargs ([#8](https://github.com/j178/pre-commit-rs/pull/8)) - Skip empty config argument ([#64](https://github.com/j178/pre-commit-rs/pull/64)) - Use `fancy-regex` ([#62](https://github.com/j178/pre-commit-rs/pull/62)) - feat: add fail language support ([#60](https://github.com/j178/pre-commit-rs/pull/60)) ### Bug Fixes - Fix stage operate_on_files ([#65](https://github.com/j178/pre-commit-rs/pull/65))