From: "Björn Höfling" <bjoern.hoefling@bjoernhoefling.de>
To: Pjotr Prins <pjotr.public12@thebird.nl>
Cc: guix-devel@gnu.org
Subject: Re: Treating tests as special case
Date: Thu, 5 Apr 2018 08:21:15 +0200 [thread overview]
Message-ID: <20180405082115.60e604a6@alma-ubu> (raw)
In-Reply-To: <20180405052439.GA30291@thebird.nl>
[-- Attachment #1: Type: text/plain, Size: 3533 bytes --]
On Thu, 5 Apr 2018 07:24:39 +0200
Pjotr Prins <pjotr.public12@thebird.nl> wrote:
> Last night I was watching Rich Hickey's on Specs and deployment. It is
> a very interesting talk in many ways, recommended. He talks about
> tests at 1:02 into the talk:
>
> https://www.youtube.com/watch?v=oyLBGkS5ICk
>
> and he gave me a new insight which rang immediately true. He said:
> what is the point of running tests everywhere? If two people test the
> same thing, what is the added value of that? (I paraphrase)
>
> With Guix a reproducibly building package generates the same Hash on
> all dependencies. Running the same tests every time on that makes no
> sense.
>
> And this hooks in with my main peeve about building from source. The
> building takes long enough. Testing takes incredibly long with many
> packages (especially language related) and are usually single core
> (unlike the build). It is also bad for our carbon foot print. Assuming
> everyone uses Guix on the planet, is that where we want to end up?
>
> Burning down the house.
>
> Like we pull substitutes we could pull a list of hashes of test cases
> that are known to work (on Hydra or elsewhere). This is much lighter
> than storing substitutes, so when the binaries get removed we can
> still retain the test hashes and have fast builds. Also true for guix
> repo itself.
>
> I know there are two 'inputs' I am not accounting for: (1) hardware
> variants and (2) the Linux kernel. But, honestly, I do not think we
> are in the business of testing those. We can assume these work. If
> not, any issues will be found in other ways (typically a segfault ;).
> Our tests are generally meaningless when it comes to (1) and (2). And
> packages that build differently on different platforms, like openblas,
> we should opt out on.
>
> I think this would be a cool innovation (in more ways than one).
>
> Pj.
Hi Pjotr,
great ideas!
Last night I did a
guix pull && guix package -i git
We have substitutes, right? Yeah, but someone updated git, on my new
machine I didn't configure berlin.guixsd.org yet and hydra didn't have
any substitutes (build wasn't started yet?).
Building git was relatively fast, but all the tests took ages. And it
was just git. It should work. The git maintainers ran the tests. Marius
when he updated it in commit 5c151862c ran the tests. And that should
be enough of testing. Let's skip the tests.
On the other hand, if I create a new package definition and forget to
run the tests. If upstream is too sloppy, did not run the tests and had
no continuous integration. Who will run the tests then?
What if I build my package with different sources?
And you mentioned different environment conditions like machine and
kernel. We still have "only" 70-90% reproducibility. The complement
should have tests enabled. And the question "is my package
reproducible?" is not trivial to answer, and is not computable.
We saw tests that failed only in 2% of the runs and were fine in 98%.
If we would run those tests "just once", we couldn't figure out that
there is a problem (assuming the problem really is in the software, not
just the tests).
There could also be practible problems with that: If all write there
software nice and with autoconfigure and we just have a "make && make
test && make install" it's easy to skip the test. But for more
complicated things we have to find a way to tell the build-system how
to skip tests.
Björn
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2018-04-05 6:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-05 5:24 Treating tests as special case Pjotr Prins
2018-04-05 6:05 ` Gábor Boskovits
2018-04-05 8:39 ` Pjotr Prins
2018-04-05 8:58 ` Hartmut Goebel
2018-04-05 6:21 ` Björn Höfling [this message]
2018-04-05 8:43 ` Pjotr Prins
2018-04-06 8:58 ` Chris Marusich
2018-04-06 18:36 ` David Pirotte
2018-04-05 10:14 ` Ricardo Wurmus
2018-04-05 12:19 ` Björn Höfling
2018-04-05 14:10 ` Ricardo Wurmus
2018-04-05 10:26 ` Ricardo Wurmus
2018-04-05 14:14 ` Ludovic Courtès
2018-04-05 14:59 ` Pjotr Prins
2018-04-05 15:17 ` Ricardo Wurmus
2018-04-05 15:24 ` Ludovic Courtès
2018-04-05 16:41 ` Pjotr Prins
2018-04-05 18:35 ` Pjotr Prins
2018-04-06 7:57 ` Retaining substitutes Ludovic Courtès
2018-04-05 20:26 ` Treating tests as special case Mark H Weaver
2018-04-06 6:06 ` Pjotr Prins
2018-04-06 8:27 ` Ricardo Wurmus
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=20180405082115.60e604a6@alma-ubu \
--to=bjoern.hoefling@bjoernhoefling.de \
--cc=guix-devel@gnu.org \
--cc=pjotr.public12@thebird.nl \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.