beam-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Bradshaw <rober...@google.com>
Subject Re: Python Static Typing: Next Steps
Date Tue, 03 Mar 2020 19:09:46 GMT
Nice.

I still think we should enable it in jenkins and get some experience
with it before we add it to the default pre-commit-hook territory.

On Tue, Mar 3, 2020 at 10:38 AM Chad Dombrova <chadrik@gmail.com> wrote:
>
> I tested out dmypy (the mypy daemon) last night and it was completing in under a second
after editing a file and rerunning (usually around 0.6s), which puts it into pre-commit-hook
territory.
>
> -chad
>
>
>
>
> On Tue, Mar 3, 2020 at 1:54 AM Ismaël Mejía <iemejia@gmail.com> wrote:
>>
>> +1 to do it by default. Great to see the typing work arrive to this
>> maturity milestone.
>> We can also refer to some of the mypy typing docs for newbies on the subject.
>>
>> On Tue, Mar 3, 2020 at 10:15 AM Kamil Wasilewski
>> <kamil.wasilewski@polidea.com> wrote:
>> >
>> > +1 for enabling mypy as a precommit job
>> >
>> > This however could be a good occasion to rework the current PythonLint job.
Since yapf has been introduced, some of the checks made by pylint/flake are now unnecessary
and could be dismantled. This would speed-up PythonLint quite a lot.
>> > I volunteer to help with anything as well.
>> >
>> > On Tue, Mar 3, 2020 at 1:43 AM Robert Bradshaw <robertwb@google.com> wrote:
>> >>
>> >> It seems people are conflating git pre-commit hooks (which IMHO should
>> >> ideally be in the sub-second range, and run when an author does "git
>> >> commit") with jenkins pre-commit tests (for which minutes is nothing
>> >> compared to what we already do). I am +1 to adding mypy to the latter
>> >> for sure, and think we should probably hold off for the former.
>> >>
>> >> On Mon, Mar 2, 2020 at 4:38 PM Udi Meiri <ehudm@google.com> wrote:
>> >> >
>> >> > Off-topic: Python lint via pre-commit should be much faster. (I wrote
my own modified-file-only lint in the past)
>> >> >
>> >> > On Mon, Mar 2, 2020 at 2:08 PM Kyle Weaver <kcweaver@google.com>
wrote:
>> >> >>
>> >> >> > Python lint takes 4-5mins to complete. I think if the mypy
analysis is really on the order of 10s, the additional time won't matter and could always
be enabled.
>> >> >>
>> >> >> +1 of course it would be nice to make mypy as fast as possible,
but I don't think speed needs to be a blocker. The productivity gains we'd get from reliable
type analysis more than offset the cost IMO.
>> >> >>
>> >> >> On Mon, Mar 2, 2020 at 2:03 PM Luke Cwik <lcwik@google.com>
wrote:
>> >> >>>
>> >> >>> Python lint takes 4-5mins to complete. I think if the mypy
analysis is really on the order of 10s, the additional time won't matter and could always
be enabled.
>> >> >>>
>> >> >>> On Mon, Mar 2, 2020 at 1:21 PM Chad Dombrova <chadrik@gmail.com>
wrote:
>> >> >>>>>
>> >> >>>>> I believe that mypy via pre-commit hook will be faster
than 10s since it only applies to modified files.
>> >> >>>>
>> >> >>>>
>> >> >>>> Correct, with a few caveats:
>> >> >>>>
>> >> >>>> pre-commit can be setup to only run if a python file changes.
 so modifying a java file won't trigger mypy to run.
>> >> >>>> if *any* python file changes mypy has to run on the whole
codebase, because a change to one file can affect the others (i.e. a function arg type changes).
 it's not really meaningful to run mypy on a single file.
>> >> >>>> the mypy daemon tracks which files have changed, and runs
incremental updates.  so if we setup the precommit hook to run the daemon, we should see that
get appreciably faster.  I'll do some tests and report back.

Mime
View raw message