Yocto Technical Team Minutes, Engineering Sync, for July 13, 2021

Trevor Woerner

Yocto Technical Team Minutes, Engineering Sync, for July 13, 2021
archive: https://docs.google.com/document/d/1ly8nyhO14kDNnFcW2QskANXW3ZT7QwKC5wWVDg9dDH4/edit

== disclaimer ==
Best efforts are made to ensure the below is accurate and valid. However,
errors sometimes happen. If any errors or omissions are found, please feel
free to reply to this email with any corrections.

== attendees ==
Trevor Woerner
Stephen Jolley
Scott Murray
Joshua Watt
Peter Kjellerstedt
Michael Halstead
Jasper Orschulko
Steve Sakoman
Tony Tascioglu
Trevor Gamblin
Saul Wold
Armin Kuster
Randy MacLeod
Richard Purdie
Ross Burton
Bruce Ashfield

== project status ==
- an eSDK issue has been resolved and this should resolve a number of eSDK
- the prserv rewrite is still pending on resolving the issues with python
- continuing to see AB-INT improvements
- multiconfig needs simpler test cases to reproduce issues

== discussion ==
RP: it was a good week for AB improvements! ptests are growing in number

RP: we are lacking official maintainers for various subsystems. there are a
number of unofficial ones (e.g. Bruce - kernels, Khem - toolchains, etc)
but nothing official. we have a “bus” problem.
Randy: people can adopt packages, but i’m curious about an outline of what
you think is lacking
RP: pseudo, devtool, extensible sdk, eclipse plugin (maybe not), recipetool,
a backup maintainer for bitbake, test suites, QA frameworks, reporting
Randy: it could be a question of corporate mandate for some
RP: i’ll be raising this with the members
TrevorW: in one case there was a problem with a certain subsystem that had
been going on for a long time with no signs of life from the “active
maintainer”. after a period of time i decided i would get involved
and step forward and say i’d take it over. then suddenly the AWOL
maintainer shows up, declares the subsystem has a maintainer and no change
in maintainership is needed. in another case i found what i thought was
a bug in an unmaintained subsystem, worked on a fix/patch but when i
submitted it, the previous maintainer (who had stepped down at this point)
spoke up to say there was no bug, pointed out that my “fix” didn’t
preserve the existing behaviour (which i felt was broken, so of course it
didn’t maintain it) therefore my patch shouldn’t go in. so we have
subsystems whose active maintainers aren’t heard from for long periods
but then show up once someone steps forward to take over, and we have
other subsystems where previous maintainers who have given up their roles
are still controlling the subsystem. if i were to maintain a subsystem, i
would expect some sort of control over the subsystem i was maintaining.
For example with U-Boot a person agrees to maintain, for example, an SoC
so Tom gives them full control over the code related to that SoC. they
don’t wake up the next day to find a whole bunch of SoC-specific patches
have been merged by the benevolent dictator while they were sleeping and
then have to deal with the consequences. The same happens in the kernel:
people are given an area to maintain and they do so.
RP: a maintainer doesn’t get to make all decisions. for example: recently
i wanted to make a change to bitbake but was shot down, so even the
benevelent dictator can be ruled down ;-) there’s no free choice. being
a maintainer isn’t a binary switch, you don’t become a maintainer
then suddenly get full control of some part of the project and get to
make any decisions you want. another example: a kernel submaintainer
isn’t absolute either, when i maintained a kernel subsystem sometimes
you win some discussions and sometimes you lose some. one has to work into
a maintainer role, not just take it over. and it’s good to retain a
connection to a former maintainer for continuance.
TrevorW: having code change “underneath the maintainer” can get
RP: we will never have a system whereby i will only grab a patch after
maintainer sign-off. the maintainer leaves for a 2 week vacation and the
patch queue comes to a halt for that subsystem, that’s not right
TrevorW: having more distributed maintainership might require fundamental
changes to how the project is managed (e.g. how we do releases). some
other projects with more distributed maintainership will have times when
things get added (-rc1, -rc2) with integration windows and during that
time it’s up to maintainers to do their own things with the patches.
with our project (yocto) patches that show up on the mailing list today
are added to next and even master in huge batches and run on the AB. so I
don’t see what the role of a maintainer would be in that case if patches
are being moved about without their intervention
Scott: yocto is different because we’re dealing with the timelines of lots
of sub projects so it might not fit into easy merge windows like it does
for individual projects (-rc1, -rc2 etc merge windows)
RP: getting patches in quickly helps keep people engaged. how would people
feel if they submitted a patch then 3 weeks later got a reply saying
“your patch failed on the AB, please re-spin”?
TrevorW: if you submitted a patch for the linux kernel today it would show
up… 3 (?) releases from now (provided it was “immediately”
accepted)? so that would be the same as other projects
Randy: we do have maintainers for every layer and we have Bruce and Khem, but
there is a gap
RP: wrt pseudo, i still haven’t merged things to master, so i’ve held off
because the original maintainer doesn’t like some of my changes. it’s
a difficult balancing act
Randy: TrevorW would you still be interested in taking over pseudo
TrevorW: I think i’d aim for devtool instead, i think pseudo is
“complicated” (not from a technical point of view, but from a social
RP: the problem with pseudo is that anyone taking it over would most likely
start over and solve the problem in a completely different way. there are
a lot of newer kernel features that we would use instead
JPEW: i would rather have a devtool maintainer than a pseudo maintainer. as a
project we strongly push people towards using devtool on a daily basis, i
would prefer to see that subproject have an active maintainer

Randy: we’re a week away from -m2, anyone have anything else to discuss?
Randy: i’m hoping to update things i’m working on.
RP: there are some things that are broken in sato (icons not generated
correctly) so i’m looking forward to those updates (icons depends on
librsvg, which depends on rust)
Ross: maybe we should revert now until the fix is ready?
RP: if you know which bits to reverse then go ahead
Ross: oh… i think the reverse is already in
RP: okay, maybe there’s something else that needs revert. every week the AUH
reports not being able to move forward on this
Scott: i have a work tree setup for read-only PR server. so i’m hoping to be
able to take that over at some point
RP: ping me if you need help, i can help with historical context
JPEW: i can help too, with some technical issues as well
RP: MichaelH is probably not excited about the webserver stuff
JPEW: where is it running
MH: google compute
JPEW: do we have a kubernetes cluster
MH: no
RP: we would like to share hash equiv on a read-only port, which might give MH
a heart-attack ;-)
MH: currently we’re running on a google computer node, but based on it’s
resources, we could move it to something cheaper
Randy: JPEW: do you need a kubernetes cluster?
JPEW: no. i brought it up because it might be a way to load balance the
demand, but that would require a re-write on some of the internals of the
hash equiv server (e.g. move to a full, separate SQL database for example)

MH: btw, irc logs now being saved again

JPEW: my sstate patch is now ready
RP: does it use compression?
JPEW: originally yes, but then i noticed that it makes sstate not
reproducible, so i dropped it
RP: why? that shouldn’t be the case?
JPEW: it wouldn’t if it were single thread compression, but the way zstd
does parallel compression makes it give different results based on the
compression factor
PR: we use parallel compression for a lot of other stuff and i’ve never seen
such an issue
JPEW: i’ll do more investigation. i think there might be an option to pass
to make it reproducible even under parallel compression
RP: yes, that sounds right
JPEW: also if we’re going to use zstd and pzstd they require those tools to
be available in the host
RP: cmdline (i.e. not libraries)?
JPEW: yes, so we can include it in the buildtools tarball
RP: yes and we can detect it in the host easily
JPEW: okay, i will work up the patch
RP: you can send the patch as-is now and we can add compression later

Scott: any updates to “make jobserver”
TrevorG: are you referring to the patch based on some changes RP made a couple
years back
Scott: yes
TrevorG: i don’t think that patch is doing much for us. i didn’t find
anything conclusive to say that patch is helping. we moved to another
approach (passing a “-l” option to ninja to limit parallel). we’ve
run a couple builds and collected some data, but we don’t have any
results to publish yet. i have a couple hundred log files to look at to
see if we’re on the right track. on the surface i think we’ve already
seen a couple instances of things taking more parallel than they should
(despite our changes) so we still have more things to dig into

Join {yocto@lists.yoctoproject.org to automatically receive all group messages.