And the Oscar goes to: https://github.com/apache/airflow/pull/21020 :)
On Fri, Jan 21, 2022 at 6:30 PM Ferruzzi, Dennis <ferru...@amazon.com.invalid> wrote: > Sounds reasonable. Like you said, it shouldn't take long (relatively) to > get the PRs that are already in the pipe cleared, so this wouldn't be > required for long. > ------------------------------ > *From:* Kaxil Naik <kaxiln...@gmail.com> > *Sent:* Friday, January 21, 2022 5:27 AM > *To:* dev@airflow.apache.org > *Subject:* RE: [EXTERNAL] [PROPOSAL] MyPy incremental reintroduction > > > *CAUTION*: This email originated from outside of the organization. Do not > click links or open attachments unless you can confirm the sender and know > the content is safe. > > Sounds good to me > > On Fri, Jan 21, 2022 at 5:17 PM Jarek Potiuk <ja...@potiuk.com> wrote: > >> Hello everyone, >> >> We are very quickly approaching the "0 MyPy errors" state. This was a >> truly collaborative effort of many people :). Fantastic job ! >> >> Now - I will shortly (when we reach 0!) re-enable MyPy as "failing" >> tests, but this might have a rather nasty side effect that some of the PRs >> approved and not rebased before might introduce new errors which will break >> main (and other PRs). >> I would like to mitigate it by introducing - for a couple of days/week a >> rule that all PRs should be rebased to main before merging. We already have >> a check for that (but it is enabled only in case of "sqlalchemy migration" >> changes). But I would like to enable it for any change that involves python >> code changes. We would run it for a few days and only enable MyPY as >> "obligatory" then and keep it enabled for a few days after. Also I think - >> independently - committers should pay attention when migrating older PRs >> and ask the authors to rebase (but this is not easily visible as you really >> need to check status of the branch PR is coming from to see if the PR is >> rebased). >> >> Do you think those are good ideas? >> >> J. >> >> >> On Wed, Dec 1, 2021 at 9:59 AM Jarek Potiuk <ja...@potiuk.com> wrote: >> >>> Thanks Khailid (and Josh who commented on the issue) for volunteering to >>> help! >>> >>> And I think we need more helping hands! >>> >>> I have a very kind request to the whole community to help with the >>> effort as we have whooping 990 (!) issues to fix. Without the help of >>> the community it will take a few weeks at least, but with lots of >>> helping hands we might do it much faster and get much stronger quality >>> protections in place. >>> >>> I merged a change and tested it on a few PRs >>> (https://github.com/apache/airflow/pull/19914, >>> https://github.com/apache/airflow/pull/19912, >>> https://github.com/apache/airflow/pull/19911) to see how this can work >>> on it. >>> >>> We have now a very simple incremental way of fixing mypy that anyone >>> can contribute to - either as separate PRs or as part of their usual >>> contributions. >>> >>> In the issue https://github.com/apache/airflow/issues/19891 we keep an >>> inventory of packages that need fixing (and I will keep it updated). >>> >>> How to help ? >>> >>> VERY EASY: >>> >>> * Checkout latest main. >>> * Run `./breeze build-image` and rebuild the image (you need it to get >>> latest mypy and related libraries included) >>> * `pip install pre-commit` >>> * `pre-commit install >>> >>> That's all that is needed as prerequisites. >>> >>> There are two ways to help: >>> >>> 1) If you make a regular contribution - whenever you commit your code, >>> mypy will fail with the issues that need fixing. It's as simple as >>> that. Just work as normal and make your pre-commit pass. >>> 2) If you want to take on correcting the whole package as a separate >>> PR, just commend in the https://github.com/apache/airflow/issues/19891 >>> that you are working on it and then you can do this: >>> >>> `find <DIRECTORY> -name "*.py" | xargs pre-commit run mypy --files` >>> >>> It will show you what needs to be fixed. >>> >>> One comment from TP who started commenting on the PRs (and I very much >>> agree to) - rather than slapping '# type ignore` everywhere, we should >>> aim to really bring stronger type checking - even if it means slight >>> refactors, or changing the structure of the code. a bit. The aim is >>> not to "pass" mypy, but to improve the quality of our code. >>> >>> Thanks in advance for cooperation! >>> >>> J. >>> >>> >>> J. >>> >>> On Tue, Nov 30, 2021 at 3:20 PM Khalid Mammadov >>> <khalidmammad...@gmail.com> wrote: >>> > >>> > Hi Jarek, >>> > >>> > >>> > Sounds great! >>> > >>> > I can also help to look into these new issues and fix. >>> > >>> > >>> > Regards, >>> > >>> > Khalid >>> > >>> > On 30/11/2021 12:14, Jarek Potiuk wrote: >>> > > Hey all, >>> > > >>> > > I created an issue for that here: >>> > > https://github.com/apache/airflow/issues/19891 but wanted to get a >>> > > lazy consensus on that one (I think it does not really need voting or >>> > > consensus, but If there is anyone who wants to comment/object fill >>> > > free). >>> > > >>> > > For a few weeks MyPy checks have been disabled after the switch to >>> > > Python 3.7 (per https://github.com/apache/airflow/pull/19317). >>> > > >>> > > We should, however, re-enable it back as it is very useful in >>> catching >>> > > a number of mistakes. >>> > > >>> > > I am re-adding the mypy pre-commit now - with mypy bumped to 0.910. >>> > > This version detects far more errors and we should fix them all >>> before >>> > > we switch the CI check back. >>> > > >>> > > The way I am bringing it back in >>> https://github.com/apache/airflow/pull/19890: >>> > > >>> > > * mypy will be running for incremental changes in pre-commit, same as >>> > > before. This will enable incremental fixes of the code changed by >>> > > committers who use pre-commits locally >>> > > >>> > > * mypy on CI runs in non-failing mode. When the main pre-commit check >>> > > is run, mypy is disabled, but then it is run as a separate step >>> (which >>> > > does not fail but will show the result of running mypy on all our >>> > > code). This will enable us to track the progress of fixes >>> > > >>> > > We should make a concerted effort now and incrementally fix all the >>> > > mypy incompatibilities - ideally package/by/package to avoid huge >>> code >>> > > reviews. >>> > > >>> > > I'd really appreciate a number of people to contribute, so that we >>> can >>> > > re-enable mypy back fully :). >>> > > >>> > > J. >>> >>