public inbox for overseers@sourceware.org
 help / color / mirror / Atom feed
From: Mark Wielaard <mark@klomp.org>
To: Overseers mailing list <overseers@sourceware.org>
Cc: "Carlos O'Donell" <carlos@redhat.com>,
	"Philip Herron" <philip.herron@embecosm.com>,
	"Thomas Fitzsimmons" <fitzsim@fitzsim.org>,
	"Sergio Durigan Junior" <sergiodj@sergiodj.net>,
	"Dan Horák" <dhorak@redhat.com>,
	"Julian Seward" <jseward@acm.org>
Subject: Re: Moving buildbot master to sourceware
Date: Wed, 6 Apr 2022 10:39:08 +0200	[thread overview]
Message-ID: <Yk1RrKVq3TwxEUrO@wildebeest.org> (raw)
In-Reply-To: <f6390c65-5c11-1a0c-f2a1-7645fd11bb8a@redhat.com>

Hi Carlos,

On Mon, Apr 04, 2022 at 06:15:01PM -0400, Carlos O'Donell via Overseers wrote:
> > Maintenance of the master is fairly minimal and it doesn't require
> > that many resources. The current state database, git poller and build
> > logs total less than 3.5G for hundreds to thousands of builds for all
> > of the above projects.
> > 
> > The bike shed items for installing this on sourceware are:
> > 
> > - Whether to install buildbot from pip or epel. My preference is
> >   throug pip under a user account since that is how I run it
> >   locally. But using the epel package is fine too.
> > - Running it under sourceware.org/buildbot or adding a vhost
> >   builder.sourceware.org. My preference is for a vhost.
> > - A git repo for the master.cfg file builder.git (*)
> >   Plus a git trigger to reload to config by the buildbot master.
> > - A user, group and homedir to store the state and password/key files
> >   /sourceware/home/builder/
> > - The initial members of the builder group which can update the git
> >   repo and key files. The people on CC?
> > - A mailinglist to coordinate builder@sourceware.org or we could
> >   simply use the overseers mailinglist.
> 
> Can we deploy this as a buildbot master container with some customization?
> 
> This would make the service easier to keep going during sourcware updates because
> dependencies would be decoupled.
> 
> It would allow developers to test pre-production changes locally by using the same
> container.

The most natural "container" for a pure python app that we'll be
maintaining through pip is a python virtualenv. I have scripts to
setup and update the virtualenv so it is easy to replicate and play
with independently. You can wrap those in a whole system image of
course. I'll make sure to document that process.

> This is how upstream patchwork changes are being developed, which DJ and I are
> looking at because we will need to update patchwork to v3.1 upstream when it's
> released with DJ's new changes.

Is there documentation on how sourceware patchwork is currently
deployed? Are you actually running a patches upstream version? I am
happy to help upgrading.

I haven't had to make any changes to upstream/packaged/pip buildbot
because all configuration is done through a python file (so if you do
really have to monkey patch the upstream version you can add those to
the config file).

> My plan was to work with downstream distributions, ISVs, and IHVs who are interested
> in a particular project to donate workers. In order to do that though we have to make
> the act of installing and setting up a worker very low friction and very safe.
> 
> The workers should arguably have a net positive impact for the downstream, or ISV, or
> IHV, so they need a way to measure that they prevented a patch that breaks their
> configuration of interest. So I also need to make sure they can gather metrics for
> reporting on the resources they are spending e.g. how soon after going red on their
> build was it corrected?
> 
> For example, could Red Hat or IBM donate workers?
> 
> Can we grow best practice CI adoption in our mature projects by making it easy?

All good ideas and, if you have the matching project developers, then
adding more workers is in general a good thing.

There are a few lessons about making CI most effective:

- Start small with a minimal environment and a minimal subset of tests
  that just have to work.
- Always keep the builder green.
- If it is a flaky test leave it out.
- If there is a test that is failing consistently, but nobody fixes
  it, file a bug and take it out.
- Only expand if you have developers that care to keep that environment green.
- Only add workers if you have devxelopers on the project that can take
  care of the new build environments created for it.
- If you have a worker that is unique in some way (say for a
  non-common architecture) arrange for project maintainers to get
  access to it outside the buildbot so they can actually debug
  problems.

For tracking actual success/failures/added/removed tests we could look
at feeding the test logs from buildbot to bunsen.

Cheers,

Mark


  reply	other threads:[~2022-04-06  8:39 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-04 10:02 Mark Wielaard
2022-04-04 15:24 ` Frank Ch. Eigler
2022-04-04 20:09   ` Mark Wielaard
2022-04-04 22:15 ` Carlos O'Donell
2022-04-06  8:39   ` Mark Wielaard [this message]
2022-04-06 16:27     ` Carlos O'Donell
2022-04-12 12:14       ` Philip Herron
2022-04-17 20:55 ` Mark Wielaard
2022-04-18 21:56   ` Mark Wielaard
2022-04-22  0:40     ` Mark Wielaard
2022-05-24  1:55 ` Mark Wielaard
2022-05-24 23:59   ` Mark Wielaard

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=Yk1RrKVq3TwxEUrO@wildebeest.org \
    --to=mark@klomp.org \
    --cc=carlos@redhat.com \
    --cc=dhorak@redhat.com \
    --cc=fitzsim@fitzsim.org \
    --cc=jseward@acm.org \
    --cc=overseers@sourceware.org \
    --cc=philip.herron@embecosm.com \
    --cc=sergiodj@sergiodj.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 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 read-only IMAP folder(s) and NNTP newsgroup(s).