1
0
mirror of https://github.com/j178/prek.git synced 2026-04-03 17:34:03 +02:00
Files
prek/docs/todo.md
is-alnilam d9baf0a5f1 Add Ruby support (no download support yet) (#993)
* 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>
2025-11-03 19:12:25 +08:00

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.