(I'm also in favor of not overloading existing flags; they have some
meaning/semantics that developers have come to expect.)

On Sun, Feb 19, 2017 at 12:34 PM, Jean-Baptiste Onofré <j...@nanthrax.net>
wrote:

> Thanks Aviem,
>
> Not sure if we should use skipTests as it really means unit tests and
> integration tests (in Karaf, skipTests skips the unit test,  integration
> test, archetype itests and maven plugin invoker test, but it doesn't skip
> checkstyle, findbugs, etc, for that,  we have a fastinstall property).
>
> Maybe it would make more sense to use a specific property like
> -DfastBuild=true.
>
> WDYT ?
>
> Regards
> JB
>
>
> On 02/19/2017 09:27 PM, Aviem Zur wrote:
>
>> I've created a PR which disables slow verifications if '-DskipTests' was
>> specified, otherwise runs them.
>> I think this satisfies all the considerations mentioned in this thread.
>>
>> PTAL: https://github.com/apache/beam/pull/2048
>> Ticket: https://issues.apache.org/jira/browse/BEAM-1513
>>
>> On Thu, Feb 16, 2017 at 3:05 PM Ismaël Mejía <ieme...@gmail.com> wrote:
>>
>> JB, Maybe I was not clear, when I talked about the tests I was thinking
>>> more about execute them in parallel in the same machine, this is not the
>>> case today for some test suites, and for these the tests need to be
>>> refined
>>> to support this, and configured via the pom to execute the tests in
>>> parallel per method, class, etc. Of course we need to check if this is
>>> worth, because I can imagine that the more expensive time for example in
>>> the IO case comes from starting the embedded versions of the IOs (e.g.
>>> HadoopMiniCluster, MongodExecutable, HBasetestingutility, etc) and not
>>> from
>>> the tests themselves but this has to be evaluated.
>>>
>>>
>>>
>>> On Wed, Feb 15, 2017 at 5:46 PM, Jean-Baptiste Onofré <j...@nanthrax.net>
>>> wrote:
>>>
>>> On Jenkins it's possible to run several jobs in the same time but on
>>>> different executor. That's the easiest way.
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On Feb 15, 2017, 10:15, at 10:15, "Ismaël Mejía" <ieme...@gmail.com>
>>>> wrote:
>>>>
>>>>> This question got lost in the discussion, but there is a small
>>>>> improvement
>>>>> that we can do:
>>>>>
>>>>> Just to check, are we doing parallel builds?
>>>>>>
>>>>>
>>>>> We are on jenkins, not in travis, there is an ongoing PR to fix this.
>>>>>
>>>>> What we can improve is to check if we can run some of the test suites
>>>>> in
>>>>> parallel to gain some extra time. For exemple most of the IOs and some
>>>>> runners don't execute tests in parallel.
>>>>>
>>>>> Ismael
>>>>>
>>>>> (slightly related), is there a way to get change the timeout of travis
>>>>> jobs). Because it is failing most of the time now because of this, and
>>>>> it
>>>>> is quite noisey to have so many false positives.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Feb 10, 2017 at 8:00 PM, Robert Bradshaw <
>>>>> rober...@google.com.invalid> wrote:
>>>>>
>>>>> On Fri, Feb 10, 2017 at 8:45 AM, Dan Halperin
>>>>>>
>>>>> <dhalp...@google.com.invalid
>>>>>
>>>>>>
>>>>>>> wrote:
>>>>>>
>>>>>> On Fri, Feb 10, 2017 at 7:42 AM, Kenneth Knowles
>>>>>>>
>>>>>> <k...@google.com.invalid
>>>>>
>>>>>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> On Feb 10, 2017 07:36, "Dan Halperin"
>>>>>>>>
>>>>>>> <dhalp...@google.com.invalid>
>>>>>
>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> Before we added checkstyle it was under a minute. Now it's over
>>>>>>>>
>>>>>>> five?
>>>>>
>>>>>> That's awful IMO
>>>>>>>>
>>>>>>>>
>>>>>>>> Checkstyle didn't cause all that, did it?
>>>>>>>>
>>>>>>>>
>>>>>>> The "5 minutes" was going with Aviem's numbers after this change.
>>>>>>>
>>>>>> But
>>>>>
>>>>>> yes,
>>>>>>
>>>>>>> Checkstyle alone substantially (>+50%) the time from what it was
>>>>>>>
>>>>>> previously
>>>>>>
>>>>>>> to adding it back to the default build.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> Just to check, are we doing parallel builds?
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Noting that findbugs takes quite a lot more time. Javadoc and jar
>>>>>>>
>>>>>> are the
>>>>>
>>>>>> other two slow ones.
>>>>>>>>
>>>>>>>> RAT is fast. But it has very poor error messages, so we wouldn't
>>>>>>>>
>>>>>>> want a
>>>>>
>>>>>> new
>>>>>>>
>>>>>>>> contributor trying to figure out what is going on without our
>>>>>>>>
>>>>>>> help.
>>>>>
>>>>>>
>>>>>>>>
>>>>>>> There is a larger philosophical issue here: is there a point of
>>>>>>>
>>>>>> Jenkins
>>>>>
>>>>>> precommit testing? Why not just make `mvn install` run everything
>>>>>>>
>>>>>> that
>>>>>
>>>>>> Jenkins does? For that matter, why don't committers just push
>>>>>>>
>>>>>> directly to
>>>>>
>>>>>> master? Wouldn't that make everyone's life easier?
>>>>>>>
>>>>>>> I'd argue that's not true.
>>>>>>>
>>>>>>> 1. Developer productivity -- Jenkins should run many more checks
>>>>>>>
>>>>>> than
>>>>>
>>>>>> developers do. Especially time-, resource-, or setup- intensive
>>>>>>>
>>>>>> tasks.
>>>>>
>>>>>> 2. Automated enforcement -- Jenkins is better at running the right
>>>>>>>
>>>>>> commands
>>>>>>
>>>>>>> than we are.
>>>>>>> 3. Lower the barrier to entry -- individual developers need not
>>>>>>>
>>>>>> have a
>>>>>
>>>>>> running Spark/Flink/Apex/Dataflow setup in order to contribute
>>>>>>>
>>>>>> code.
>>>>>
>>>>>> 4. Focus on the user -- someone checking out the code and using it
>>>>>>>
>>>>>> for
>>>>>
>>>>>> the
>>>>>>
>>>>>>> first time does not care whether the code style checks or has the
>>>>>>>
>>>>>> right
>>>>>
>>>>>> licenses -- that should have been enforced by the Beam team before
>>>>>>> committing.
>>>>>>>
>>>>>>> We should be *very* choosy about what we enforce on every developer
>>>>>>>
>>>>>> every
>>>>>
>>>>>> time they go to compile. I probably compile Beam 50x-100x a day.
>>>>>>>
>>>>>> Literally,
>>>>>>
>>>>>>> the extra minutes you want to add here will cost me an hour daily.
>>>>>>>
>>>>>>>
>>>>>> By the same token of having a different bar for the Jenkins presubmit
>>>>>>
>>>>> vs.
>>>>>
>>>>>> what's run locally, I think it makes a lot of sense to run a
>>>>>>
>>>>> different
>>>>>
>>>>>> command for iterative development than you run before creating a pull
>>>>>> request. E.g. during development I'll often run only one test rather
>>>>>>
>>>>> than
>>>>>
>>>>>> the entire suite, but do run the entire suite occasionally (often
>>>>>>
>>>>> before
>>>>>
>>>>>> commit, especially before pushing).
>>>>>>
>>>>>> The contributors guild should give a suggested command to run before
>>>>>> creating a PR, right in the docs of how to create a PR, which may be
>>>>>>
>>>>> more
>>>>>
>>>>>> expensive than what you run during development. IMHO, this should be
>>>>>>
>>>>> fairly
>>>>>
>>>>>> comprehensive (certainly tests and checkstyle, maybe javadoc and
>>>>>>
>>>>> findbugs).
>>>>>
>>>>>> This should be the "default" command that the one-time-contributor
>>>>>>
>>>>> should
>>>>>
>>>>>> know. For those compiling 50x or more a day, I think the burden of
>>>>>>
>>>>> learning
>>>>>
>>>>>> a second (or more) cheaper commands is not high, and we could even
>>>>>>
>>>>> put such
>>>>>
>>>>>> a thing in the docs (and hopefully a common maven convention like
>>>>>>
>>>>> "mvn
>>>>>
>>>>>> test").
>>>>>>
>>>>>> I've listed the fraction of commits I think will break one of the
>>>>>>
>>>>> following
>>>>>
>>>>>> if that property is not tested:
>>>>>>>
>>>>>>> * compiling (100%)
>>>>>>> * tests (100%)
>>>>>>> * checkstyle (90%)
>>>>>>> * javadoc (30%)
>>>>>>> * findbugs (5%)
>>>>>>> * rat (1%)
>>>>>>>
>>>>>>> So you can see where I stand and why. I'm sorry that 1/20 PRs has
>>>>>>>
>>>>>> Apache
>>>>>
>>>>>> RAT catch a licensing issue or Findbugs catch a threading issue --
>>>>>>>
>>>>>> you
>>>>>
>>>>>> can
>>>>>>
>>>>>>> always get a larger set of the precommit checks using -Prelease,
>>>>>>>
>>>>>> though
>>>>>
>>>>>> of
>>>>>>
>>>>>>> course the integration tests and runnableonservice tests may catch
>>>>>>>
>>>>>> more
>>>>>
>>>>>> issues still. But I want my developer minutes back for the 95%+ of
>>>>>>>
>>>>>> the
>>>>>
>>>>>> rest.
>>>>>>>
>>>>>>> Dan
>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>
> --
> Jean-Baptiste Onofré
> jbono...@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Reply via email to