All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] More maintainers
Date: Sat, 5 Sep 2020 23:04:31 +0200	[thread overview]
Message-ID: <20200905230431.34bcd9ea@windsurf.home> (raw)
In-Reply-To: <CA+TH9VkgkuMUUy65L6njfjSuDeJ7wzXueJmX74XF9YQucd8RnA@mail.gmail.com>

Hello,

On Sat, 5 Sep 2020 22:55:11 +0200
Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:

> > I'm not sure what you mean here. You would require all commits to come
> > with a snippet of configuration that allows the commit to be build
> > tested ?  
> 
> Yes, exactly.

This actually raises the barrier to entry even more than an e-mail
based workflow! Newcomers have to understand this practice, what a
configuration snippet is, etc. It's not super complex, but it's not
trivial either.

Also, it's easy to get this snippet wrong, and have the automated
testing not actually test anything.

Also, the amount of CPU time that will be needed remains quite
significant. Another thing we could do is require contributors to
attach the output of a test-pkg run.

But overall, the buildability of something is not really the primary
reason for the review taking time. Indeed, I typically never build test
version bumps, or even simple Python packages, I let the autobuilders
do this job. For new packages, I tend to have a different approach
depending on who the submitter is: experienced contributors are more
likely to know how to properly test their submissions, while newcomers
are more likely to make mistakes (which is normal!), so I tend to test
a bit more contributions from newcomers.

> > If you have a magic solution for this, I'm interested!  
> 
> Well, I'm completely sure of that.
> Anyway, in the context of doing buildable and testable review
> requests, the developer should attach to the commit a minimal
> defconfig and minimal testing.
> That minimal defconfig and that testing are chosen by the developer to
> enhance confidence that the request is working.

Well, it is generally the case that the developer has tested... but
that doesn't mean that this testing was good.

Take the example of libblockdev, recently submitted by Adam. Adam
probably built it with a glibc toolchain, and it worked all fine for
him. And when I tested his libblockdev package, I used what is the
default C library in Buildroot, i.e uClibc, and it failed to build;

As you can see, a minimal defconfig + testing chosen by the developer
is no silver bullet.

> > In the context of Buildroot, saying "a commit is good" requires
> > building thousands of different configurations: number of CPU
> > architectures * number of GCC versions * number of binutils versions *
> > number of C libraries * number of optional dependencies of the package
> > * number of optional dependencies of all dependencies of the package.  
> 
> I'm not confusing, really, and from what I learned on Computer
> Science, that type of testing you're saying here is not even possile.

Glad we agree that it is not possible to do such testing :-)

> What I'm saying here is that we should and must enforce a minimal "it
> compiles" verification and "it runs" verification.

But this is already done by the autobuilders, and works very well: we
as maintainers rely on the autobuilders a lot to tell us if something
is wrong.

Let's take an example: I just pushed the commit adding the
"makedumpfile" package. It has been submitted by a newcomer, so I did
some local build testing, but with only one architecture, one
toolchain, one configuration. It built in this configuration locally,
so I pushed. All the rest of the testing will be done by the
autobuilders.

I just pushed the python-crayons package. I have done zero build
testing. The only thing I've checked is verifying the legal information
in the package, and this cannot be automated.

> Recent history says that we had packages with a service never started
> because the init script was wrong, we should avoid that.

We already have the infrastructure for that: runtime tests. They exist,
they are run by Gitlab CI.

Please submit more runtime tests :-)

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2020-09-05 21:04 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-27 17:34 [Buildroot] More maintainers Adam Duskett
2020-08-27 19:35 ` Angelo Compagnucci
2020-08-27 20:39 ` Thomas Petazzoni
2020-08-29  9:50   ` Yann E. MORIN
2020-09-02 17:53     ` Adam Duskett
2020-09-02 20:08       ` Arnout Vandecappelle
2020-09-02 20:11         ` Adam Duskett
2020-09-02 21:51           ` Christian Stewart
2020-09-03 15:44             ` Avraham Shukron
2020-09-03 16:24               ` Thomas Petazzoni
2020-09-03 16:44                 ` Angelo Compagnucci
2020-09-03 17:29                   ` Adam Duskett
2020-09-04  8:31                     ` Nicolas Cavallari
2020-09-04 17:39                   ` Peter Korsgaard
2020-09-04 18:12                     ` Michael Nazzareno Trimarchi
2020-09-04 19:05                       ` Peter Korsgaard
2020-09-04 19:36                     ` Angelo Compagnucci
2020-09-04 21:10                       ` Peter Korsgaard
2020-09-05  4:52                         ` Christian Stewart
2020-09-05  6:44                           ` Peter Korsgaard
2020-09-05 16:20                             ` Adam Duskett
2020-09-05 17:25                               ` Peter Korsgaard
2020-09-05 19:16                               ` Thomas Petazzoni
2020-09-05 20:10                                 ` Angelo Compagnucci
2020-09-05 20:38                                   ` Thomas Petazzoni
2020-09-05 20:55                                     ` Angelo Compagnucci
2020-09-05 21:04                                       ` Thomas Petazzoni [this message]
2020-09-05 21:34                                         ` Angelo Compagnucci
2020-09-05 22:25                                           ` Adam Duskett
2020-09-06  7:43                                             ` Peter Korsgaard
2020-09-06  7:58                                               ` Yegor Yefremov
2020-09-07 15:02                                                 ` Heiko Thiery
2020-09-07 15:20                                                   ` Thomas Petazzoni
2020-09-07 15:43                                                     ` Heiko Thiery
2020-09-10 22:30                                                     ` Christian Stewart
2020-09-05 20:25                               ` Yann E. MORIN
2020-09-05 20:54                                 ` Yann E. MORIN
2020-09-05 18:59                             ` Alexander Dahl
2020-09-05 19:17                               ` Peter Korsgaard
2020-09-05 20:06                                 ` Christian Stewart
2020-09-04 17:30                 ` James Hilliard
2020-09-03 16:28               ` Angelo Compagnucci
2020-09-04 18:52                 ` Peter Korsgaard
2020-09-03 18:39               ` Christian Stewart
2020-09-07 15:57               ` Michael Nosthoff
2020-09-07 18:35                 ` Alexander Dahl
2020-09-09  6:14                   ` Peter Korsgaard
2020-09-05 13:06 ` [Buildroot] More maintainers: a live discussion ? Thomas Petazzoni
2020-09-07  8:02   ` Thomas Petazzoni

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=20200905230431.34bcd9ea@windsurf.home \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@busybox.net \
    /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 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.