Prek 0.2.0 has been released (big milestone!) with monorepo support. The https://github.com/apache/airflow/pull/54615 is merged now with golang separation. We will follow with more separation and splitting our prek hooks in the coming weeks :).
Generally - no change in the way how things are used but you have to run `prek install` to reinstall prek git hook -> you will get warning to do so when you run prek without reinstalling it. You can now enter `go-sdk` and `prek run` will only run go checks, or run `prek -c .pre-commit-config.yml` to only run "main folder" checks. There are many ways workspace setup can be used - there is a brand new documentation on using prek workspace here: https://github.com/j178/prek/blob/master/docs/workspace.md - again when we split prek hooks even further this will become much more useful, where you will be able to only run checks for core, providers, task-sdk, helm separately. J. On Mon, Aug 25, 2025 at 3:00 PM Jarek Potiuk <[email protected]> wrote: > Merged https://github.com/apache/airflow/pull/54917 - you will have to > upgrade prek after rebase to main `uv tool upgrade --all` is your friend > again. > > BTW, This one was largely done with Copilot. Another good AI case ;). > > On Mon, Aug 25, 2025 at 4:18 PM Jarek Potiuk <[email protected]> wrote: > >> Speaking of which: https://github.com/apache/airflow/pull/54917 -> >> changing all our prek scripts to PEP-723 inline dependencies (and min prek >> version set to 0.1.3) >> >> J. >> >> >> On Fri, Aug 22, 2025 at 12:37 PM Jarek Potiuk <[email protected]> wrote: >> >>> Yeah. There are a few UX issues I pointed at and Jo is working on them. >>> >>> BTW. We also have other improvements coming that might soon make us >>> start departing from `pre-commit` - even earlier than with monorepo support. >>> >>> Namely: https://github.com/j178/prek/issues/509 that will allow us to >>> move most of the dependencies for Python hooks to be inline PEP 723 >>> compliant dependencies without duplicating them with .pre-commit-config.yaml >>> This one is actually very cool, because it will allow for much easier >>> testing and development of prek hooks >>> >>> uv run ./scripts/ci/prek/hoook_name.py files .... >>> >>> Also there is a discussion in pip to implement PEP-723 - finally - >>> https://github.com/pypa/pip/issues/12891 - and then you will be able to >>> also run such scripts with just *pep* without having to have an explicit >>> venv - which IMHO is a game-changer for Python scripts. >>> >>> I will also try to figure out a way how we can make pre-commit fail with >>> our configuration, ideally with some message that will guide people to stop >>> using it. I have some ideas, but I am not sure how far it will go. >>> >>> J. >>> >>> >>> On Fri, Aug 22, 2025 at 7:28 AM Amogh Desai <[email protected]> >>> wrote: >>> >>>> The monorepo support will be a game changer in terms of repo >>>> organisation! >>>> >>>> Looking forward to the initial PR getting merged so that we can expand >>>> it >>>> across various distributions in our repo and keep the prek hooks minimal >>>> and focused per distribution! >>>> >>>> Thanks & Regards, >>>> Amogh Desai >>>> >>>> >>>> On Wed, Aug 20, 2025 at 5:33 PM Jarek Potiuk <[email protected]> wrote: >>>> >>>> > With https://github.com/apache/airflow/pull/54726 that I just merged >>>> which >>>> > uses prek 0.1.1 released not even an hour ago, we are now getting a >>>> (more >>>> > than) full parity with pre-commit (the auto-update feature was the >>>> only one >>>> > missing for our CI) . >>>> > >>>> > I bumped the minimum version of prek to `0.1.1` in the config file, >>>> so you >>>> > will have to run `uv tool upgrade prek` or similar to get the latest >>>> > version. >>>> > >>>> > I believe that kind-of-ends the initial teething period of >>>> > "switching from pre-commit to prek". I don't foresee we'll have to >>>> bump the >>>> > minimum version of `prek` that frequently. >>>> > >>>> > The next milestone (barring some potential bug fixes) and minimum >>>> version >>>> > bump I expect is when we get monorepo support and split our >>>> > .pre-commit-config.yaml into a number of smaller ones. This looks very >>>> > promising with https://github.com/apache/airflow/pull/54615 - and >>>> feel >>>> > free >>>> > to test it and provide any feedback in >>>> > https://github.com/j178/prek/pull/481 >>>> > >>>> > J. >>>> > >>>> > On Mon, Aug 18, 2025 at 5:57 PM Buğra Öztürk <[email protected] >>>> > >>>> > wrote: >>>> > >>>> > > Amazing news! I switched just after merge and even used it in a PR. >>>> > > Everything looks smooth. Thanks Jarek and all! >>>> > > >>>> > > Bugra Ozturk >>>> > > >>>> > > On Mon, 18 Aug 2025, 17:45 Jarek Potiuk, <[email protected]> wrote: >>>> > > >>>> > > > 0.0.29 is merged so you will have to update (but you will get the >>>> > > warning). >>>> > > > BTW - if someone tried the `URL` install to install prek, the way >>>> to >>>> > get >>>> > > > back to released versions is >>>> > > > >>>> > > > uv tool install --force --upgrade prek >>>> > > > >>>> > > > (Just hit this one) . >>>> > > > J. >>>> > > > >>>> > > > >>>> > > > On Mon, Aug 18, 2025 at 4:09 PM Jarek Potiuk <[email protected]> >>>> wrote: >>>> > > > >>>> > > > > And... (apart from addressing a few teething issues and quickly >>>> > bumping >>>> > > > > versions of prek to 0.0.28 and soon 0.0.29) :): >>>> > > > > >>>> > > > > Jo has already pushed a PR with the preliminary monorepo / >>>> workspace >>>> > > > > support. I created a very draft PR on how separating go-sdk >>>> > > > > .pre-commit-config.yaml could look like: >>>> > > > > * https://github.com/apache/airflow/pull/54615 -> separating >>>> golang >>>> > > > > .pre-commit-config.yaml >>>> > > > > * The PR in prek that implements it -> already with my first >>>> comments >>>> > > > > where tried it: >>>> > > > > https://github.com/j178/prek/pull/481#issuecomment-3196986281 >>>> > > > > >>>> > > > > You can try it yourself also and provide comments: >>>> > > > > >>>> > > > > 1. Install the in-progress version of prek with workspaces >>>> > > > > >>>> > > > > uv tool install "prek @ git+ >>>> > https://github.com/j178/prek.git@workspace >>>> > > " >>>> > > > > >>>> > > > > 2. Checkout my PR in airflow repo: >>>> > > > > >>>> > > > > gh co 54615 >>>> > > > > >>>> > > > > 3. Play >>>> > > > > >>>> > > > > J. >>>> > > > > >>>> > > > > >>>> > > > > On Mon, Aug 18, 2025 at 3:07 PM Kaxil Naik <[email protected] >>>> > >>>> > > wrote: >>>> > > > > >>>> > > > >> I switched too, thank you guys >>>> > > > >> >>>> > > > >> On Mon, 18 Aug 2025 at 07:18, Amogh Desai < >>>> [email protected]> >>>> > > > wrote: >>>> > > > >> >>>> > > > >> > Just made the switch! >>>> > > > >> > >>>> > > > >> > Thank you, Jo, Jarek and Ash! >>>> > > > >> > >>>> > > > >> > Thanks & Regards, >>>> > > > >> > Amogh Desai >>>> > > > >> > >>>> > > > >> > >>>> > > > >> > On Sun, Aug 17, 2025 at 5:36 PM Zhe-You Liu < >>>> [email protected] >>>> > > >>>> > > > >> wrote: >>>> > > > >> > >>>> > > > >> > > I just switched to `prek`, and it runs smoothly and >>>> quickly. >>>> > > > >> > > Thank you, Jarek, Jo, and Ash! >>>> > > > >> > > >>>> > > > >> > > Best regards, >>>> > > > >> > > Jason >>>> > > > >> > > >>>> > > > >> > > On Sun, Aug 17, 2025 at 6:59 PM Pavankumar Gopidesu < >>>> > > > >> > > [email protected]> >>>> > > > >> > > wrote: >>>> > > > >> > > >>>> > > > >> > > > Woohoo great work Jarek thank you :) >>>> > > > >> > > > >>>> > > > >> > > > Thank you Jo and ash. >>>> > > > >> > > > >>>> > > > >> > > > Pavan >>>> > > > >> > > > >>>> > > > >> > > > On Sun, Aug 17, 2025 at 9:27 AM Aritra Basu < >>>> > > > >> [email protected]> >>>> > > > >> > > > wrote: >>>> > > > >> > > > >>>> > > > >> > > > > This is a good change, looking forward to seeing it >>>> adopted >>>> > > more >>>> > > > >> > > > > -- >>>> > > > >> > > > > Regards, >>>> > > > >> > > > > Aritra Basu >>>> > > > >> > > > > >>>> > > > >> > > > > On Sun, 17 Aug 2025, 12:36 pm Jarek Potiuk, < >>>> > [email protected] >>>> > > > >>>> > > > >> > wrote: >>>> > > > >> > > > > >>>> > > > >> > > > > > Hello everyone, >>>> > > > >> > > > > > >>>> > > > >> > > > > > *TL;DR: Please switch from pre-commit to prek for >>>> your >>>> > local >>>> > > > >> > > > development, >>>> > > > >> > > > > > please, at your earliest convenience.* >>>> > > > >> > > > > > >>>> > > > >> > > > > > Following the discussion in >>>> > > > >> > > > > > >>>> > > > >> >>>> https://lists.apache.org/thread/mb73g4rz56n5l0gjyzm9jzolnkkc6o5c I >>>> > > > >> > > > just >>>> > > > >> > > > > > merged https://github.com/apache/airflow/pull/54258 >>>> that >>>> > > > >> switches >>>> > > > >> > > > > > `pre-commit` we used for several years to `prek` in >>>> CI and >>>> > > > >> breeze. >>>> > > > >> > > The >>>> > > > >> > > > > > `prek` tool is faster, leaner and has already more >>>> > features >>>> > > we >>>> > > > >> > wanted >>>> > > > >> > > > to >>>> > > > >> > > > > > have in the last few years for pre-commit and we had >>>> to >>>> > add >>>> > > > >> them in >>>> > > > >> > > > > breeze >>>> > > > >> > > > > > - a lot of them added in a matter of last few days >>>> in the >>>> > > > >> course of >>>> > > > >> > > > > > collaboration with the author. >>>> > > > >> > > > > > >>>> > > > >> > > > > > In short what everyone should do now (at earliest >>>> > > > convenience): >>>> > > > >> > > > > > >>>> > > > >> > > > > > *uv tool install prek* >>>> > > > >> > > > > > *prek install -f* >>>> > > > >> > > > > > >>>> > > > >> > > > > > That's all you need to do, to switch. >>>> > > > >> > > > > > >>>> > > > >> > > > > > The documentation on how to use`prek` is updated in >>>> > > > >> > > > > > >>>> > > > >> > > > > > >>>> > > > >> > > > > >>>> > > > >> > > > >>>> > > > >> > > >>>> > > > >> > >>>> > > > >> >>>> > > > >>>> > > >>>> > >>>> https://github.com/apache/airflow/blob/main/contributing-docs/08_static_code_checks.rst >>>> > > > >> > > > > > >>>> > > > >> > > > > > Here is the short(?) recap: >>>> > > > >> > > > > > >>>> > > > >> > > > > > *On running prek:* >>>> > > > >> > > > > > >>>> > > > >> > > > > > Running pre-commit hooks is as easy as running >>>> `*prek*`. >>>> > > That >>>> > > > >> > should >>>> > > > >> > > > work >>>> > > > >> > > > > > in most cases out-of-the-box (no need even to add >>>> `run`). >>>> > If >>>> > > > you >>>> > > > >> > have >>>> > > > >> > > > > > `prek` installed with `prek install` - it will just >>>> run >>>> > > > >> > automatically >>>> > > > >> > > > > when >>>> > > > >> > > > > > you commit your code. >>>> > > > >> > > > > > >>>> > > > >> > > > > > We removed `breeze static-checks` because `prek` >>>> > implements >>>> > > > >> > > practically >>>> > > > >> > > > > all >>>> > > > >> > > > > > the functionality we had to add in breeze in order to >>>> > > > compensate >>>> > > > >> > for >>>> > > > >> > > > lack >>>> > > > >> > > > > > of cooperation from pre-commit maintainers >>>> (auto-commit, >>>> > > > >> > > --last-commit, >>>> > > > >> > > > > > --only-my-changes . When you run `breeze static >>>> check` you >>>> > > > will >>>> > > > >> > see a >>>> > > > >> > > > > > removal message and instructions on how to switch to >>>> prek. >>>> > > > >> > > > > > >>>> > > > >> > > > > > One notable change is that breeze's >>>> `--only-my-changes ` >>>> > can >>>> > > > be >>>> > > > >> > > > achieved >>>> > > > >> > > > > > with `*prek --from-ref main*` (and it also works now >>>> for >>>> > > past >>>> > > > >> > > branches >>>> > > > >> > > > if >>>> > > > >> > > > > > you are working on PR that was branched from >>>> v3-0-test >>>> > for >>>> > > > >> example >>>> > > > >> > > > > (`prek >>>> > > > >> > > > > > --from-ref v3-0-test` ) >>>> > > > >> > > > > > >>>> > > > >> > > > > > *On why we switched:* >>>> > > > >> > > > > > >>>> > > > >> > > > > > The `prek` tool is written in Rust and *Jo* (sorry I >>>> > > > misspelled >>>> > > > >> > your >>>> > > > >> > > > name >>>> > > > >> > > > > > before): https://github.com/j178 - has gone above >>>> and >>>> > > > beyond >>>> > > > >> and >>>> > > > >> > > > > > accommodated all our comments and issues we found >>>> during >>>> > the >>>> > > > >> > > > development. >>>> > > > >> > > > > > Including the likely toughest decision ever on >>>> changing >>>> > name >>>> > > > >> from >>>> > > > >> > > > > prefligit >>>> > > > >> > > > > > to prek. A lot of people helped to test it and >>>> reported >>>> > (and >>>> > > > >> helped >>>> > > > >> > > > > fixing >>>> > > > >> > > > > > some initial issue) and with 0.0.26 released >>>> yesterday, >>>> > > `prek` >>>> > > > >> > seems >>>> > > > >> > > to >>>> > > > >> > > > > be >>>> > > > >> > > > > > ready to be used in our CI and local development. >>>> The last >>>> > > > issue >>>> > > > >> > that >>>> > > > >> > > > was >>>> > > > >> > > > > > blocker, was with pseudo-terminal allocation and >>>> colors in >>>> > > the >>>> > > > >> > > failure >>>> > > > >> > > > > > output from ruff and others. It is a pleasure to >>>> work with >>>> > > Jo >>>> > > > >> (and >>>> > > > >> > I >>>> > > > >> > > > > > started to learn a bit rust while doing so :D). Big >>>> > thanks >>>> > > to >>>> > > > >> Jo >>>> > > > >> > for >>>> > > > >> > > > the >>>> > > > >> > > > > > dedication and persistence and >>>> "user-focused-thinking". >>>> > > Thanks >>>> > > > >> to >>>> > > > >> > Ash >>>> > > > >> > > > for >>>> > > > >> > > > > > all the encouragement for Jo as well and all the >>>> initial >>>> > > push >>>> > > > >> of us >>>> > > > >> > > in >>>> > > > >> > > > > the >>>> > > > >> > > > > > "prefligit" direction. >>>> > > > >> > > > > > >>>> > > > >> > > > > > There are more things to come and we have a way to >>>> force a >>>> > > > >> minimum >>>> > > > >> > > > > version >>>> > > > >> > > > > > of prek when we start using the upcoming versions >>>> > > > >> > > > (`minimum_prek_version` >>>> > > > >> > > > > > is now set to 0.0.26). >>>> > > > >> > > > > > >>>> > > > >> > > > > > *On pre-commit compatibility:* >>>> > > > >> > > > > > >>>> > > > >> > > > > > For now, the .pre-commit-config.yaml is compatible >>>> with >>>> > the >>>> > > > >> latest >>>> > > > >> > > > > > pre-commit (it will just raise a warning now as >>>> > > > >> > prek_minimum_version >>>> > > > >> > > is >>>> > > > >> > > > > > unknown to it). You can continue using `pre-commit` >>>> for a >>>> > > > while >>>> > > > >> - >>>> > > > >> > but >>>> > > > >> > > > > this >>>> > > > >> > > > > > warning will remind you to switch to `prek` at >>>> earliest >>>> > > > >> > convenience. >>>> > > > >> > > At >>>> > > > >> > > > > > some point of time when `prek` will have better >>>> monorepo >>>> > > > >> support we >>>> > > > >> > > > will >>>> > > > >> > > > > > likely split our pre-commit config to multiple files >>>> at >>>> > > which >>>> > > > >> point >>>> > > > >> > > we >>>> > > > >> > > > > will >>>> > > > >> > > > > > only support `prek` (unless pre-commit will catch up >>>> and >>>> > > > >> implement >>>> > > > >> > > > > > compatible feature, but I have no high hopes for >>>> that) >>>> > > > >> > > > > > >>>> > > > >> > > > > > *If you have errors:* >>>> > > > >> > > > > > >>>> > > > >> > > > > > Of course we should be watching for any teething >>>> issues - >>>> > so >>>> > > > >> please >>>> > > > >> > > > > report >>>> > > > >> > > > > > any issues in #contributors or >>>> #internal-airflow-ci-cd >>>> > Slack >>>> > > > >> > > channels. >>>> > > > >> > > > > > >>>> > > > >> > > > > > If needs be - you can switch back to pre-commit by: >>>> > > > >> > > > > > >>>> > > > >> > > > > > *prek uninstall* >>>> > > > >> > > > > > *pre-commit install * >>>> > > > >> > > > > > >>>> > > > >> > > > > > J. >>>> > > > >> > > > > > >>>> > > > >> > > > > >>>> > > > >> > > > >>>> > > > >> > > >>>> > > > >> > >>>> > > > >> >>>> > > > > >>>> > > > >>>> > > >>>> > >>>> >>>
