Description
Thanks for building such an awesome tool, and even more importantly such a big ecosystem around it. I couldn't find a public issue tracker for Pre-Commit.CI, so given this affects the recommended transition from this now-deprecated action to that bespoke service, I figured I'd ask here.
We're having trouble determining how to migrate from this deprecated action to pre-commit.ci, given it isn't clear how much of the critical features and functionality of the former we (r-SpaceX, Spyder, etc) currently rely on translate to the latter. In particular,
-
While best minimized to the extent possible, it is not uncommon that some hooks may require access to the current environment rather than an isolated one, require external binaries, or use a
language
for which pre-commit does not currently offer automated dependency installation. In our case, that includes mypy, pyanalyze and pylint, three of our core linters, which need access to the runtime environments of our packages to perform their checks, and are thus run assystem
hooks. With this action, we simply install the deps pinned in arequirements-dev.txt
file, the same that our developers install. How would this action workflow translate to pre-commit.ci? -
Some of our linters/checkers may inherently detect issues specific to the current Python runtime, OS or dep versions (e.g. using added/removed language features/stdlib, POSIX-only calls, portability issues, etc), and we want to ensure that all our hooks install and pass on all supported platforms. Thus, using this action, we run Pre-Commit across a matrix of OSes and Python versions. Is there any equivalent on pre-commit.ci?
-
Some hooks we only want to run in CI or locally on-demand, because they are only supported by specific platforms or are expensive. Furthermore, we sometimes want to run hooks with stages other than
pre-commit
in CI, or use such stages for finer-grain control over which hooks run where and when. For this, we use theextra-args
feature of this action to pass the desired--hook-stage
(s). Is there something comparable we're missing on pre-commit.ci, or what is the recommended approach here?
Thanks!