From: Jeff King <peff@peff.net>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: "Martin Ågren" <martin.agren@gmail.com>,
git@vger.kernel.org, "Eric Sunshine" <sunshine@sunshineco.com>
Subject: Re: [PATCH v3] doc-diff: don't `cd_to_toplevel`
Date: Wed, 6 Feb 2019 13:49:03 -0500 [thread overview]
Message-ID: <20190206184903.GC10231@sigill.intra.peff.net> (raw)
In-Reply-To: <nycvar.QRO.7.76.6.1902051050090.41@tvgsbejvaqbjf.bet>
On Tue, Feb 05, 2019 at 11:34:54AM +0100, Johannes Schindelin wrote:
> Peff, you asked at the Contributors' Summit for a way to get notified when
> CI fails for your patch, and I was hesitant to add it (even if it would be
> straight-forward, really) because of the false positives.
>
> This is one such example, as the test fails:
>
> https://dev.azure.com/gitgitgadget/git/_build/results?buildId=944
>
> In particular, the tests t2024 and t5552 are broken for
> ma/doc-diff-usage-fix on Windows. The reason seems to be that those are
> already broken for the base commit that Junio picked:
> jk/diff-rendered-docs (actually, not the tip of it, but the commit fixed
> by Martin's patch).
>
> Of course, I understand why Junio picks base commits that are far, far in
> the past (and have regressions that current `master` does not have), it
> makes sense from the point of view where the fixes should be as close to
> the commits they fix. The downside is that we cannot automate regression
> testing more than we do now, with e.g. myself acting as curator of test
> failures.
Thanks for this real-world example; it's definitely something I hadn't
thought too hard about.
I think this is a specific case of more general problems with testing.
We strive to have every commit pass all of the tests, so that people
building on top have a known-good base. But there are many reasons that
may fail in practice (not exhaustive, but just things I've personally
seen):
- some tests are flaky, and will fail intermittently
- some tests _used_ to pass, but no longer do if the environment has
changed (e.g., relying on behavior of system tools that change)
- historical mistakes, where "all tests pass" was only true on one
platform but not others (which I think is what's going on here)
And these are a problem not just for automated CI, but for running "make
test" locally. I don't think we'll ever get 100% accuracy, so at some
point we have to accept some annoying false positives. The question is
how often they come up, and whether they drown out real problems.
Testing under Linux, my experience with the first two is that they're
uncommon enough not to be a huge burden.
The third class seems like it is likely to be a lot more common for
Windows builds, since we haven't historically run tests on them. But it
would also in theory be a thing that would get better going forward, as
we fix all of those test failures (and new commits are less likely to be
built on truly ancient history).
So IMHO this isn't really a show-stopper problem, so much as something
that is a sign of the maturing test/CI setup (I say "maturing", not
"mature", as it seems we've probably still got a ways to go). As far as
notifications go, it probably makes sense for them to be something that
requires the user to sign up for anyway, so at that point they're making
their own choice about whether the signal to noise ratio is acceptable.
I also think there are ways to automate away some of these problems
(e.g., flake detection by repeating test failures, re-running failures
on parent commits to check whether a patch actually introduced the
problem). But implementing those is non-trivial work, so I am certainly
not asking you to do it.
-Peff
next prev parent reply other threads:[~2019-02-06 18:49 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-03 8:35 [PATCH] doc-diff: don't `cd_to_toplevel` before calling `usage` Martin Ågren
2019-02-03 9:08 ` Eric Sunshine
2019-02-03 9:11 ` Eric Sunshine
2019-02-03 10:35 ` Martin Ågren
2019-02-03 11:01 ` Eric Sunshine
2019-02-03 11:08 ` [PATCH v2] " Martin Ågren
2019-02-03 23:01 ` Jeff King
2019-02-04 20:50 ` [PATCH v3] doc-diff: don't `cd_to_toplevel` Martin Ågren
2019-02-04 23:34 ` Jeff King
2019-02-05 10:34 ` Johannes Schindelin
2019-02-05 18:45 ` Junio C Hamano
2019-02-06 12:20 ` Johannes Schindelin
2019-02-06 17:24 ` Junio C Hamano
2019-02-06 18:55 ` Jeff King
2019-02-07 15:41 ` Johannes Schindelin
2019-02-07 17:37 ` Junio C Hamano
2019-02-07 21:34 ` Johannes Schindelin
2019-02-07 20:49 ` Jeff King
2019-02-07 21:42 ` Johannes Schindelin
2019-02-06 18:49 ` Jeff King [this message]
2019-02-07 14:26 ` Johannes Schindelin
2019-02-07 20:45 ` Jeff King
2019-02-07 21:57 ` Johannes Schindelin
2019-02-08 2:53 ` Jeff King
2019-02-08 4:34 ` Jeff King
2019-02-08 0:58 ` SZEDER Gábor
2019-02-08 2:51 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190206184903.GC10231@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=martin.agren@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).