j178 / j178/prek

hi

Open
#73 4 comments 20 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
8.4k
Forks
241
Avg merge
4h 33m
Merged PRs (30d)
109

Description

the best time for collaboration probably would have been when starting the project but I guess the second best time is now!

the slated long-term plan for pre-commit is to replace the python implementation with rust -- I've been slowly working towards that over the last couple of years but I've been busy and progress has been slow. I figure we can probably accelerate that if you'd like to work together on accomplishing it

there's also the tricky task of compatibility and migration (which I've fortunately thought a lot about and will hopefully make the transition smoother!) -- the main compatibility issues is going to be around regular expressions, language: pygrep, and ultimately bootstrapping python where missing for language: python (though I think uv will likely take that responsibility at some point) -- happy to talk more on this though as it's kinda the hardest part of making such a shift successful

can also help with the planned direction I'm going for with languages in general -- as that's going to break a lot of what isn't yet implemented here (or there) since the structure and internals are likely to change a lot there (goal being to divorce the installations, repositories, and languages as they're really three separate entities currently represented as one (maybe 1.5 if we're being honest))

an aside -- the repository in the current state violates several copyrights and licenses. I intentionally chose to release my code under MIT to make it very simple to abide by the license (simply distribute a copy of the license in derivative works) but unfortunately your current implementation reads as a plagiarism -- fortunately an easy fix to include the licenses of your copied work!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked pre-commit-rs project and the current language, installation, and repository internals. Identify compatibility requirements for regular expressions, pygrep, Python bootstrapping, and migration, then review the copied code's licensing. Done is not defined in the issue; the scope and acceptance criteria need to be agreed before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, python, rust
Domain
cli, developer-experience, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.