public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Sergei Trofimovich <slyfox@gentoo.org>
To: gentoo-dev@lists.gentoo.org, wg-stable@gentoo.org,
	arch-leads@gentoo.org, alpha@gentoo.org, amd64@gentoo.org,
	amd64-fbsd@gentoo.org, arm@gentoo.org, arm64@gentoo.org,
	hppa@gentoo.org, ia64@gentoo.org, m68k@gentoo.org,
	mips@gentoo.org, ppc@gentoo.org, ppc64@gentoo.org,
	s390@gentoo.org, sh@gentoo.org, sparc@gentoo.org, x86@gentoo.org,
	x86-fbsd@gentoo.org
Subject: [gentoo-dev] [RFC] Future of gentoo's stable and unstable trees: what are your thoughts?
Date: Mon, 24 Jul 2017 22:22:23 +0100	[thread overview]
Message-ID: <20170724222223.6d359e47@sf> (raw)

[-- Attachment #1: Type: text/plain, Size: 7672 bytes --]

TL;DR;TL;DR:
------------

This email seeks for one step towards less toil tied to gentoo's
keywording/stabilization process. I've CCed a few groups who
might be interested in making this area better:

- gentoo-dev@ as it affects most devs (and non-devs!)
- wg-stable@ as it overlaps quite a bit with efforts staged on STABLEREQ
  (should I join? :)
- arch-leads@ as it directly helps (or breaks everything for) arch teams
- all individual arches for wider visibility

TL;DR
-----

I see the problem of lagging stable and unstable trees as:

1. lack of automation
2. lack of manpower

The PROPOSAL to solve the '1. automation' part is to draft
a new GLEP. If there is any interest (I assume there is!) I'll start one.
Let's call that fufure 'life of KEYWORDS'. It will cover:

- Update on GLEP-40 ("x86 stabilization can do only x86@ team")
  to allow package maintainers to do ARCH=x86 stabilization.
  It will be an arch-agnostic way: each arch will have minimal requirements
  to setup environment suitable for stabilization and keywording:
  CFLAGS to have, hardware required, whatever else is practical.
- Formalize list of stable arches as such (will be covered by
  'arches.desc' GLEP)
- Formalize what is a "stable arch". In short:
  - arch is marked as such in 'arches.desc'
  - performs most of STABLEREQ/KEYWORDREQ or gives rationale
    why progress can't be easily done before 90-days timeout
- Formalize and automate process of dropping keywords for timed out
  STABLEREQ/KEYWORDREQ requests.
- Automate process of restoring dropped KEYWORDS due to bumps
  adding new unkeyworded dependencies. repoman already complains
  about those. What is left is to grab them in batches time to time
  and handle those as if those were KEYWORDREQ.
- File more automated STABLEREQs to rely less on lazy maintainers
  (I am example of lazy maintainer not siling STABLEREQs enough).
- Formalize which STABLEREQ/KEYWORDREQ can be done automatically
  by arch teams (or maybe anyone else having the hardware!).
  In short: anything not marked as "Runtime testing required"
  on bugzilla and not having any blocker bugs.

The proposal to solve the '2. manpower' part is:
- Write more docs and make stabilisation process easier for everyone.

Important detail: the list is not in set in stone but rather a guideline
of things to cover.

Please feel free to propose other topics, questions, concerns, likes or
any other actionable feedback!

Story mode
----------

Hi all!

As you might suspect arch testing (an important process part of
gentoo's health). Recently arch testing became a point of contentions
among gentoo developers.

The non-exhaustive list of complaints is:

- Minor (usually understaffed) arch ${A} is slow and does not process
  STABLEREQ/KEYWORDREQ packages for many months. Lag forces maintainers
  to keep more old versions in the tree prohibiting removal of not
  really-maintained packages.

  In theory policy allows dropping stable keywords from such packages
  but in practice people frequently do not do it because it's a large
  and tedious tree-wide change.

- Packages on major arch (amd64 or x86) are not stabilized frequently
  enough. Packages fall through the cracks in bugzilla, STABLEREQs don't
  get filed by maintainers.

- <Add your problem here so we can understand and analyze it better>

What are the actual problems?
-----------------------------

- Arch testing is complicated, repetitive and (somethat) unrewarding.

  People only notice when things don't work.

- Arch testing is complicated: each architecture (or OS) has it's own
  quirks.

  It's hard for a developer to join empty arch team as documentation
  on specifics is frequently lacking.

  Some example questions could arise:

  - When keywording for ARCH=ppc64 should we test on both powerpc64 and
    powerpc64le or only one of them?

  - Does -Wl,--as-needed work on ia64?

- There seem to be a little of coordination between arch teams which
  tools to use to handle stabilization pipeline.

  Some examples:

  - Q: How to grab a list for keywording?

    A: use 'getatoms.py' from https://wiki.gentoo.org/wiki/Package_testing#Tools
       but there is a few caveats.

  - Q: How to keyword a package before stabilization?

    A: $ ekeyword ~ia64 <a long-list-of-packages>

    Caveat: can easily drop a keyword from ia64 down to ~ia64 for a
    package or two causing tree breakage.

  - Q: How to mark a package as explicitly not working or an ${arch}?

    A: Use KEYWORDS="-${arch}" but bots and ekeyword ignore it.

  - Q: How to mark a single package version as broken for a particular
       arch?

  - Q: What is the format of commit message for arch commit? Should
       package version be there? Should it be one commit per package?
       Per bug? Per arch?

    A: Everyone does it their own way.

What can we do about it?
------------------------

The short answer is: we need more automation and more manpower.

Both are related: in an ideal world robots would do all package testing
for us. People would only need to add new packages into system.

More detailed plan (actions and changes)
----------------------------------------

The plan is to get feedback from gentoo community and form a new
GLEP that will supersede GLEP-40.

We will need input from many active members: arch teams, wg-stable team
and gentoo devs.

The questions that will be covered in the new GLEP:

1. Q: What is a supported stable arch?

   A: - Arch is marked 'stable' in 'profiles.desc' (and upcoming
        'arches.desc')
      - Arch that has at least one team member willing to do
        STABLEREQ/KEYWORDREQ processing
      - The STABLEREQ/KEYWORDREQ request timeout is 90 days

        After timeout expires all keywords for requested package
        will be demoted. To avoid tedious manual de-keywording we
        will need tooling for that.

2. Q: How to make arch testing faster and easier?

   A: - KEYWORDREQ/STABLEREQ bugs not marked as "runtime testing
        required" will be automatically tested and keyworded.

        [handwave] automated tinderbox setup would help a lot
        to now upfront what fails to built, fails tests.

3. Q: How to programmatically get "readiness" status for a particular
      package? Say, how many STABLE-blocking bugs the package has?

   A: Suggestions welcome! Maybe add "package list" field for bugs?

4. Q: How to push more packages into STABLE?

   A: File automatic STABLEREQ bugs more aggressively if no known bugs
      exist for a package version. The rough workflow is the following:

      - Grab a list of candidates for stabilization (will need
        additional tooling)
      - File STABLEREQ against maintainer only first.
      - Maintainer will have a 2-week timeout to either proceed with
        request:
        - add "runtime testing required fields", CC relevant arches to
          start stabilization
        - or set blocking bugs against STABLEREQ to stop stabilization
      - After 2-week timeout tooling automatically CCes arches and
        stabilization happens (ideally with minimal manual work)
      - Profit!

5. Q: <you questions you always wanted to ask>

What do you think of all that?
==============================

Can this proposal make a difference and make gentoo better and easier to
work with?

Does it try to attack the right thing?

Does it completely miss the point?

Does it sound fun?

Please do share your thoughts!

Thank you!

--

  Sergei

[-- Attachment #2: Цифровая подпись OpenPGP --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

             reply	other threads:[~2017-07-24 21:22 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-24 21:22 Sergei Trofimovich [this message]
2017-07-24 21:52 ` [gentoo-dev] Re: [RFC] Future of gentoo's stable and unstable trees: what are your thoughts? Pacho Ramos
2017-07-24 23:22 ` [gentoo-dev] " Peter Stuge
2017-07-24 23:52   ` Rich Freeman
2017-07-25  4:34     ` [gentoo-dev] " Duncan
2017-07-25  6:26       ` Hans de Graaff
2017-07-25  6:18   ` [gentoo-dev] " Hans de Graaff
2017-07-25  9:18     ` Pacho Ramos
2017-07-25 11:54       ` Michał Górny
2017-07-25 12:15         ` Pacho Ramos
2017-07-25 13:19           ` Michał Górny
2017-07-25 13:23             ` Pacho Ramos
2017-07-25 11:26     ` Rich Freeman
2017-07-25  7:44   ` Sergei Trofimovich
2017-07-28 10:44   ` Andreas K. Huettel
2017-07-28 12:45     ` Marek Szuba
2017-07-28 13:10     ` Sam Jorna (wraeth)
2017-07-28 19:59       ` William L. Thomson Jr.
2017-07-28 21:21         ` David Seifert
2017-07-31  0:28         ` Sam Jorna
2017-07-31  0:40           ` Benda Xu
2017-07-31  2:44           ` William L. Thomson Jr.
2017-07-31  2:56             ` Sam Jorna
2017-07-31 15:00               ` William L. Thomson Jr.
2017-07-31 12:59             ` Andreas K. Huettel
2017-07-31 14:43               ` William L. Thomson Jr.
2017-07-31 14:47                 ` David Seifert
2017-07-28 19:44     ` Alec Warner
2017-07-29  1:05       ` Rich Freeman
2017-07-31 14:52         ` Alec Warner
2017-07-31 15:11           ` Rich Freeman
2017-07-31 16:51             ` Peter Volkov
2017-08-01  0:24             ` [gentoo-dev] " Duncan
2017-08-01  0:55               ` Rich Freeman
2017-08-01  1:45                 ` Duncan
2017-07-31 16:44           ` [gentoo-dev] " Michał Górny
2017-07-29  4:18       ` Daniel Campbell
2017-07-29 16:41         ` Mart Raudsepp
2017-07-29 19:10           ` David Seifert
2017-07-29 18:03     ` Andrew Savchenko
2017-07-25  7:22 ` Dirkjan Ochtman
2017-07-25 13:10   ` [gentoo-dev] " Michael Palimaka
2017-07-25 13:22     ` Rich Freeman
2017-07-25 20:16       ` Daniel Campbell
2017-07-25 13:36     ` Pacho Ramos
2017-07-25 14:15     ` Peter Stuge
2017-07-29 18:08   ` [gentoo-dev] " Christopher Head
2017-07-31  6:49     ` R0b0t1
2017-07-25  9:03 ` [gentoo-dev] " Agostino Sarubbo
2017-07-25 19:45   ` Markus Meier
2017-07-25 20:12     ` Rich Freeman
2017-07-26  5:49   ` Hans de Graaff
2017-07-25 12:59 ` Michael Palimaka
2017-07-25 13:30   ` Pacho Ramos
2017-07-25 13:51   ` Michał Górny
2017-07-25 14:13 ` [gentoo-dev] " Michał Górny
2017-07-25 14:28   ` Rich Freeman
2017-07-27 23:12 ` Denis Dupeyron
2017-07-27 23:41   ` Rich Freeman
2017-07-28  0:03     ` Denis Dupeyron
2017-07-28 21:24       ` William Hubbs
2017-07-29 10:24   ` Andrew Savchenko
2017-07-28 20:10 ` William L. Thomson Jr.
2017-07-28 21:12   ` A. Wilcox
2017-07-28 21:41     ` William L. Thomson Jr.
2017-07-29 13:41     ` Andreas K. Huettel
2017-07-28 21:45   ` [gentoo-dev] " Duncan
2017-07-28 21:56     ` William L. Thomson Jr.
2017-07-29 19:44       ` Walter Dnes

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=20170724222223.6d359e47@sf \
    --to=slyfox@gentoo.org \
    --cc=alpha@gentoo.org \
    --cc=amd64-fbsd@gentoo.org \
    --cc=amd64@gentoo.org \
    --cc=arch-leads@gentoo.org \
    --cc=arm64@gentoo.org \
    --cc=arm@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    --cc=hppa@gentoo.org \
    --cc=ia64@gentoo.org \
    --cc=m68k@gentoo.org \
    --cc=mips@gentoo.org \
    --cc=ppc64@gentoo.org \
    --cc=ppc@gentoo.org \
    --cc=s390@gentoo.org \
    --cc=sh@gentoo.org \
    --cc=sparc@gentoo.org \
    --cc=wg-stable@gentoo.org \
    --cc=x86-fbsd@gentoo.org \
    --cc=x86@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