potiuk commented on code in PR #64780:
URL: https://github.com/apache/airflow/pull/64780#discussion_r3040529402


##########
contributing-docs/08_static_code_checks.rst:
##########
@@ -279,41 +280,48 @@ them manually by running ``prek --stage manual 
<hook-id>``.
 Mypy checks
 -----------
 
-When we run mypy checks locally when pushing a change to PR, the ``mypy-*`` 
checks is run, ``mypy-airflow``,
-``mypy-dev``, ``mypy-providers``, ``mypy-airflow-ctl``, depending on the files 
you are changing. The mypy checks
-are run by passing those changed files to mypy. This is way faster than 
running checks for all files (even
-if mypy cache is used - especially when you change a file in Airflow core that 
is imported and used by many
-files). You also need to have ``breeze ci-image build --python 3.10`` built 
locally to run the mypy checks.
+When we run mypy checks locally, the ``mypy-*`` checks run depending on the 
files you are changing:
+``mypy-airflow-core``, ``mypy-dev``, ``mypy-providers``, ``mypy-task-sdk``, 
``mypy-airflow-ctl``, etc.
+The mypy checks are run by passing changed files to mypy. This is way faster 
than running checks for all
+files (even if mypy cache is used - especially when you change a file in 
Airflow core that is imported
+and used by many files).
 
-However, in some cases, it produces different results than when running checks 
for the whole set
-of files, because ``mypy`` does not even know that some types are defined in 
other files and it might not
-be able to follow imports properly if they are dynamic. Therefore in CI we run 
``mypy`` check for whole
-directories (``airflow`` - excluding providers, ``providers``, ``dev`` and 
``docs``) to make sure
-that we catch all ``mypy`` errors - so you can experience different results 
when running mypy locally and
-in CI. If you want to run mypy checks for all files locally, you can do it by 
running the following
-command (example for ``airflow`` files):
+For **non-provider projects** (airflow-core, task-sdk, airflow-ctl, dev, 
scripts, devel-common), mypy
+runs locally using the ``uv`` virtualenv — no breeze CI image is needed. These 
checks run in the
+``pre-commit`` stage, so they execute automatically on every commit. You can 
also run them directly:
 
 .. code-block:: bash
 
-  prek --stage manual mypy-<FOLDER> --all-files
+  uv run --project <PROJECT> --with "apache-airflow-devel-common[mypy]" mypy 
path/to/code
 
-For example:
+For **providers**, mypy still runs via breeze (``breeze run mypy``) and 
requires
+``breeze ci-image build --python 3.10`` to be built locally.
+
+However, in some cases, running mypy on individual files produces different 
results than when running
+checks for the whole set of files, because ``mypy`` does not even know that 
some types are defined in
+other files and it might not be able to follow imports properly if they are 
dynamic. Therefore in CI we
+run ``mypy`` check for whole directories (``airflow-core``, ``providers``, 
``dev``, ``task-sdk``,
+``airflow-ctl``, etc.) to make sure that we catch all ``mypy`` errors — so you 
can experience different
+results when running mypy locally and in CI. If you want to run mypy checks 
for all files locally, you
+can do it by running the following command (example for ``airflow-core`` 
files):
 
 .. code-block:: bash
 
-  prek --stage manual mypy-airflow --all-files
+  prek --stage manual mypy-airflow-core --all-files

Review Comment:
   Correct.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to