[petsc-dev] solicitation of ideas for managing transition to master under new test harness of new feature/bug fix branches.
Smith, Barry F.
bsmith at mcs.anl.gov
Mon Jan 15 08:08:25 CST 2018
Franck,
Thanks. Having a way to compute the dependencies of the tests on the chances could dramatically reduce the testing time. Thanks for the references.
Barry
> On Jan 15, 2018, at 3:52 AM, Franck Houssen <franck.houssen at inria.fr> wrote:
>
> As a end user of PETSc, I do not know much about the way you manage it internally (workflow, tests, ...).
>
> If you don't use it already (?), the concept of "Test Impact Analysis" (= run only tests impacted by modified/pushed code) may help:
> - if your tests are wrapped with python (?), this proof of concept (for python, based on nosetests) may illustrate the idea:
> https://paulhammant.com/2015/01/18/reducing-test-times-by-only-running-impacted-tests-python-edition/
> - if you use/like windows (I don't), it seems you may found some stuffs in Visual Studio (I've never tested this):
> https://martinfowler.com/articles/rise-test-impact-analysis.html#Pre-calculatedGraphsOfSourceVsTests
>
> The python proof of concept may give ideas/guidelines to write your own TIA (years ago, we did our own based on gcov).
>
> Hope this helps,
>
> Franck
>
> ----- Mail original -----
>> De: "Barry F. Smith" <bsmith at mcs.anl.gov>
>> À: "petsc-dev" <petsc-dev at mcs.anl.gov>
>> Envoyé: Dimanche 14 Janvier 2018 05:48:13
>> Objet: [petsc-dev] solicitation of ideas for managing transition to master under new test harness of new feature/bug
>> fix branches.
>>
>>
>> With the new test harness I am soliciting ideas of how to manage the
>> transition of new feature and bug fix branches from developers/pull
>> requests into master to insure master remains clean and reliable but it
>> doesn't take days or weeks to get new features and bug fixes into master.
>>
>> I am working with the assumption that with our current hodge-podge of test
>> hardware it would take about 3 hours to run the equivalent of the current
>> nightly builds on a new feature/bug branch (this means many OS, many
>> compiles, many variations of external packages, many variations of
>> configure options (single, double, quad, complex, 64 bit indices). With
>> the purchase of new hardware it may be possible to get it down to 30
>> minutes. It will be impossible to get the full test suite with many
>> variants down to a couple minutes.
>>
>> There are issues with race conditions if multiple people want to test and
>> then move branches over at the same time. I'm looking for any ideas on how
>> to limit/eliminate them. We can't have the current situation where multiple
>> people put broken things into next and it is difficult to figure out what
>> branches caused the failures in next and get them fixed promptly, thus
>> resulting in a sluggish next (and hence sluggish PETSc development).
>>
>> Thanks
>>
>> Barry
>>
>> Let's not waste time with another war over the status of next. The issues
>> are largely the same with or without next. So if you like the next model,
>> think we are keeping it, if you don't like it, think we are getting rid
>> of it. But regardless, next (nor master) cannot be the dumping ground for
>> broken branches as it has been.
>>
>> Also a couple of simple mined automated tests on GitHub or Bitbucket are
>> not good enough to move branches into next/master. We need extensive
>> testing with many compilers/OS that these sites do not support before
>> something moves up to next/master. Neither next nor master is the place
>> to find bug issues, they (95+ % of bug issues) must be dealt with before
>> the branch ever hits next/master.
>>
>>
>>
>>
>>
More information about the petsc-dev
mailing list