[petsc-dev] solicitation of ideas for managing transition to master under new test harness of new feature/bug fix branches.

Franck Houssen franck.houssen at inria.fr
Mon Jan 15 03:52:48 CST 2018


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