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

41 lines
2.0 KiB
Markdown

# 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](https://github.com/j178/prek/issues/43) | `prek` does not currently support downloading new Ruby versions, but can use multiple simultaneously installed interpreters |
| rust | 🚧 Planned | [#44](https://github.com/j178/prek/issues/44) | |
| conda | 🚧 Planned | [#52](https://github.com/j178/prek/issues/52) | |
| coursier | 🚧 Planned | [#53](https://github.com/j178/prek/issues/53) | |
| dart | 🚧 Planned | [#51](https://github.com/j178/prek/issues/51) | |
| dotnet | 🚧 Planned | [#48](https://github.com/j178/prek/issues/48) | |
| haskell | 🚧 Planned | — | |
| julia | 🚧 Planned | — | |
| perl | 🚧 Planned | — | |
| r | 🚧 Planned | [#42](https://github.com/j178/prek/issues/42) | |
| swift | 🚧 Planned | [#46](https://github.com/j178/prek/issues/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.