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.
>>>> > > > >> > > > > >
>>>> > > > >> > > > >
>>>> > > > >> > > >
>>>> > > > >> > >
>>>> > > > >> >
>>>> > > > >>
>>>> > > > >
>>>> > > >
>>>> > >
>>>> >
>>>>
>>>

Reply via email to