public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Michael Palimaka <kensington@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] Improving the stabilisation process - part 1
Date: Fri, 25 Nov 2016 06:41:20 +1100	[thread overview]
Message-ID: <3decc9b3-f376-8c33-7565-39eae053a05c@gentoo.org> (raw)

As I am sure everyone is aware by now, stabilisation requests on many
architectures take a long time to be actioned. There are many factors
contributing to this, but today I'd like to address three specific
problems that unnecessarily delay developers actioning those requests.:

1. There's no easy way to pick atoms out of a stabilisation bug.
Currently, atoms can appear, in a varying formations, in multiple
locations: in the bug title, spread across multiple comments, in an
attachment, [...].

2. There's no way to determine if a stabilisation request is valid (will
pass repoman) until someone actually tries it.

3. There's no easy way to identify the level of testing required for any
given request.

To address this, I am proposing some changes to Bugzilla, some
automation, and some improved tools.


Bugzilla changes
================

I'd like to introduce two new fields:

1. "Runtime testing required" - a drop-down list with three values:
        * (unset) - the default. The stabilising developer will use
their best judgement as to what testing is required
        * Yes - the maintainer is specifically requesting runtime testing
        * No - the maintainer is happy to stabilise with only a build
test (for example, trivial revision bumps, libraries with good test
coverage, or otherwise at the maintainer's discretion)

2. "Atoms to stabilise" - a textarea containing a list of fully
qualified atoms. Each atom may optionally be followed by a
whitespace-delimited list of architectures for which that atom should be
stabilised. If an atom is not followed by any list of architectures, it
is assumed it should be stabilised for all architectures CC'd on the bug.

Example atom list from a bug with amd64, arm, and x86 in CC:

=app-foo/bar-1.2.3           # will be stabilised on amd64, arm, and x86
=app-foo/baz-2.3.4 amd64 x86 # will be stabilised on only amd64 and x86

I'd also like to introduce a flag called "repoman-tested". This will be
used identify stabilisation requests that have been automatically
repoman checked by a bot (described below).

To prevent cluttering the Bugzilla interface, I suggest resurrecting the
"Stabilisation" component and having these new fields appear only for
bugs filed there and in "Security: Vulnerabilities" (so not to disrupt
the security team's workflow).


Automation
==========

It's easy to forget to check that all the required dependencies are in
stable before filing a stabilisation test, but this wastes the actioning
developer's time. I have prepared a bot that repoman checks the list of
atoms and flags the bug appropriately. This allows easy filtering out of
broken requests.


Improved tools
==============

To support the above, I am also preparing some tools to streamline the
process further:

* A script to, given a bug, produce an architecture-specific list of
atoms ready to feed into package.accept_keywords / emerge

* An updated version of app-portage/tatt (allowing easy testing of USE
flag combinations, reverse dependencies, committing keyword changes etc.)

* Your idea here


Too long; didn't read
=====================

We add a new box to Bugzilla to hold atoms on stabilisation request bugs
so it's easy to extract programmatically.

We add a new box to Bugzilla to indicate if a stabilisation request
requires runtime testing or not to better focus effort.

If your stabilisation request is invalid a bot will let you know and it
will be easy to skip your request until you fix it.


This will also help pave the way for future enhancements such as
triggering automated build and QA tests so that the human only has to do
runtime testing.

Thoughts?


             reply	other threads:[~2016-11-24 19:41 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-24 19:41 Michael Palimaka [this message]
2016-11-24 23:47 ` [gentoo-dev] Improving the stabilisation process - part 1 M. J. Everitt
2016-11-25  4:54 ` Kent Fredric
2016-11-25  5:00   ` Kent Fredric
2016-11-25  6:40   ` Jason Zaman
2016-11-25  7:51     ` Kent Fredric
2016-11-25  9:05       ` [gentoo-dev] " Michael Palimaka
2016-11-25 10:23         ` Kent Fredric
2016-11-25  8:48     ` Michael Palimaka
2016-11-25  7:36   ` Michael Palimaka
2016-11-25  6:51 ` [gentoo-dev] " Jason Zaman
2016-11-25  9:27   ` [gentoo-dev] " Michael Palimaka
2016-11-25 10:00     ` Jason Zaman
2016-11-25 10:29       ` Michael Palimaka
2016-11-26 23:32 ` [gentoo-dev] " William Hubbs
2016-11-27 18:38   ` [gentoo-dev] " Michael Palimaka
2016-11-28  2:27   ` [gentoo-dev] " Kent Fredric

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=3decc9b3-f376-8c33-7565-39eae053a05c@gentoo.org \
    --to=kensington@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /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