Correction - the command is now: tox -e py35-gcp,py35-lint And it ran on my machine in 5min 40s. Not blazing fast, but at least significantly faster than waiting for Jenkins : ) Best -P.
On Tue, Mar 19, 2019 at 5:22 PM Pablo Estrada <[email protected]> wrote: > I use a selection of tox tasks. Here are the tox tasks that I use the most: > - py27-gcp > - py35-gcp > - py27-cython > - py35-cython > - py35-lint > - py27-lint > > Most recently, I'll run `tox -e py3-gcp,py3-lint`, which run fairly > quickly. You can choose which subset works for you. > My insight is: Lints are pretty fast, so it's fine to add a couple > different lints. Unittest runs are pretty slow, so I usually go for the one > with most coverage for my change (x-gcp, or x-cython). > Best > -P. > > On Mon, Feb 25, 2019 at 4:33 PM Ruoyun Huang <[email protected]> wrote: > >> nvm. Don't take my previous non-scientific comparison (only ran it once) >> too seriously. :-) >> >> I tried to repeat each for multiple times and now the difference >> diminishes. likely there was a transient error in caching. >> >> On Mon, Feb 25, 2019 at 3:38 PM Kenneth Knowles <[email protected]> wrote: >> >>> Ah, that is likely caused by us having ill-defined tasks that cannot be >>> cached. Or is it that the configuration time is so significant? >>> >>> Kenn >>> >>> On Mon, Feb 25, 2019 at 11:05 AM Ruoyun Huang <[email protected]> wrote: >>> >>>> Out of curiosity as a light gradle user, I did a side by side >>>> comparison, and the readings confirm what Ken and Michael suggests. >>>> >>>> In the same repository, do gradle clean then followed by either of the >>>> two commands. Measure their runtime respectively. The latter one takes >>>> *1/3* running time. >>>> >>>> time ./gradlew spotlessApply && ./gradlew checkstyleMain && ./gradlew >>>> checkstyleTest && ./gradlew javadoc && ./gradlew findbugsMain && ./gradlew >>>> compileTestJava && ./gradlew compileJava >>>> real 9m29.330s user 0m11.330s sys 0m1.239s >>>> >>>> time ./gradlew spotlessApply checkstyleMain checkstyleTest javadoc >>>> findbugsMain compileJava compileTestJava >>>> real 3m35.573s >>>> user 0m2.701s >>>> sys 0m0.327s >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Mon, Feb 25, 2019 at 10:47 AM Alex Amato <[email protected]> wrote: >>>> >>>>> @Michael, no particular reason. I think Ken's suggestion makes more >>>>> sense. >>>>> >>>>> On Mon, Feb 25, 2019 at 10:36 AM Udi Meiri <[email protected]> wrote: >>>>> >>>>>> Talking about Python: >>>>>> I only know of "./gradlew lint", which include style and some py3 >>>>>> compliance checking. >>>>>> There is no auto-fix like spotlessApply AFAIK. >>>>>> >>>>>> As a side-note, I really dislike our python line continuation indent >>>>>> rule, since pycharm can't be configured to adhere to it and I find myself >>>>>> manually adjusting whitespace all the time. >>>>>> >>>>>> >>>>>> On Mon, Feb 25, 2019 at 10:22 AM Kenneth Knowles <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> FWIW gradle is a depgraph-based build system. You can gain a few >>>>>>> seconds by putting all but spotlessApply in one command. >>>>>>> >>>>>>> ./gradlew spotlessApply && ./gradlew checkstyleMain checkstyleTest >>>>>>> javadoc findbugsMain compileTestJava compileJava >>>>>>> >>>>>>> It might be clever to define a meta-task. Gradle "base plugin" has >>>>>>> the notable check (build and run tests), assemble (make artifacts), and >>>>>>> build (assemble + check, badly named!) >>>>>>> >>>>>>> I think something like "everything except running tests and building >>>>>>> artifacts" might be helpful. >>>>>>> >>>>>>> Kenn >>>>>>> >>>>>>> On Mon, Feb 25, 2019 at 10:13 AM Alex Amato <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> I made a thread about this a while back for java, but I don't think >>>>>>>> the same commands like sptoless work for python. >>>>>>>> >>>>>>>> auto fixing lint issues >>>>>>>> running and quick checks which would fail the PR (without running >>>>>>>> the whole precommit?) >>>>>>>> Something like findbugs to detect common issues (i.e. py3 >>>>>>>> compliance) >>>>>>>> >>>>>>>> FWIW, this is what I have been using for java. It will catch pretty >>>>>>>> much everything except presubmit test failures. >>>>>>>> >>>>>>>> ./gradlew spotlessApply && ./gradlew checkstyleMain && ./gradlew >>>>>>>> checkstyleTest && ./gradlew javadoc && ./gradlew findbugsMain && >>>>>>>> ./gradlew >>>>>>>> compileTestJava && ./gradlew compileJava >>>>>>>> >>>>>>> >>>> >>>> -- >>>> ================ >>>> Ruoyun Huang >>>> >>>> >> >> -- >> ================ >> Ruoyun Huang >> >>
