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 --]
next 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