* Add Ruby support (no download support yet) Currently only pre-existing Rubies are used, although the code will search for and consider multiple versions. This allows a hook to require 3.4.7 when the default system Ruby is 3.4.6, but RVM (or a similar tool) has installed 3.4.7. If a suitable Ruby cannot be found, the user is prompted to install one manually and re-run. Hooks get an isolated GEM_HOME, based on the hook repository, any additional_dependencies, and the interpreter version/path. Any Ruby upgrade would therefore re-install the gems to ensure that stale versions aren't used. Repository gem dependencies are installed based on the included gemspec files, combined with the additional_dependencies field. * Add pins for CI 'install Ruby' action * Update setup-ruby pin * Tweak version parsing * Tweak env vars --------- Co-authored-by: Jo <10510431+j178@users.noreply.github.com>
2.0 KiB
TODO: Parity with pre-commit
This page tracks gaps that prevent prek from being a drop-in replacement for pre-commit.
Subcommands not implemented
gc
Language support status
The original pre-commit supports hooks written in 10+ languages. The table below tracks prek's parity progress and references any open follow-up work.
| Language | Status in prek | Tracking | Notes |
| --- | --- | --- | |
| python ⭐ | ✅ Supported | — | prek supports automatic version management of Python toolchains. |
| node | ✅ Supported | — | |
| golang | ✅ Supported | — | |
| lua | ✅ Supported | — | |
| system | ✅ Supported | — | |
| script | ✅ Supported | — | |
| pygrep | ✅ Supported | — | |
| docker | ✅ Supported | — | |
| docker_image | ✅ Supported | — | |
| fail | ✅ Supported | — | |
| deno ⭐ | 🚧 WIP | — | Experimental support in prek; upstream pre-commit lacks a native deno language. |
| ruby | 🚧 WIP | #43 | prek does not currently support downloading new Ruby versions, but can use multiple simultaneously installed interpreters |
| rust | 🚧 Planned | #44 | |
| conda | 🚧 Planned | #52 | |
| coursier | 🚧 Planned | #53 | |
| dart | 🚧 Planned | #51 | |
| dotnet | 🚧 Planned | #48 | |
| haskell | 🚧 Planned | — | |
| julia | 🚧 Planned | — | |
| perl | 🚧 Planned | — | |
| r | 🚧 Planned | #42 | |
| swift | 🚧 Planned | #46 | |
⭐ Languages marked with a star highlight functionality prek offers beyond what upstream pre-commit includes today.
Contributions welcome — if you'd like to help add support for any of these languages, please open a PR or comment on the corresponding issue.