OpenEmbedded Technical Steering Committee (TSC) Meeting Minutes 2020-04-20 ==========================================================================
Meeting was held in #oe-tsc on Freenode; channel access public. Present: - Richard Purdie (RP) - Joshua Watt (JPEW) - Bruce Ashfield (zeddii) - Paul Eggleton (bluelightning) - Martin Jansa (JaMa) Summary: * Training & certification - LF is providing training, needs some review/extension - Certification - long term goal, need to find someone with interest to drive it - zeddii & JPEW volunteered to help * multilib problems - See RP's email yesterday: https://lists.openembedded.org/g/openembedded-architecture/message/1052 - An architectural change is needed - Technical discussion (see log below); will continue on the mailing list Full meeting log ----------------- [09:00] <bluelightning> hello folks [09:00] <RP> and no JaMa :/ [09:00] <RP> hi bluelightning [09:01] <JPEW> Hello [09:01] <zeddii> here [09:02] <JPEW> Should we give JaMa a few minutes? [09:03] <bluelightning> sure [09:03] <RP> JPEW: he's not online at all which is a bad sign :/ [09:03] <bluelightning> he was online earlier though it seems [09:04] <RP> might be worth an email? [09:04] <JPEW> Will do [09:05] <RP> thanks [09:08] <JaMa> Hi, sorry I'm late [09:08] <JPEW> JaMa, no worries :) [09:08] <JPEW> 4 things on the agenda today: https://www.openembedded.org/wiki/TSC [09:08] <JPEW> 3 are repeats [09:09] <JPEW> Oops, I guess the version tags one needs removed? [09:09] <RP> I think we resolved it? [09:09] <RP> hi JaMa, glad you are around! :) [09:10] <JaMa> I've created the reminder, but for tomorrow :/ [09:10] <RP> I think a quick visit into post 3.1 development may be good too [09:10] <bluelightning> JaMa: you did better than me, I forgot to create the reminder ;) [09:11] <RP> bluelightning: you'll need a reminder to create the reminder [09:11] <bluelightning> RP: maybe just a permanent "you forgot something" sticky note on my monitor would be appropriate for me :D [09:11] <JPEW> RP: Do you want to start with the post 3.1 development? [09:12] <RP> JPEW: lets start with the training and certification? [09:12] <JPEW> Sounds good.... what is that :) [09:13] <RP> The LF runs "YP" training courses [09:13] <RP> obviously that overlaps a lot with OE. They started as in person instructor courses, now they're virtual instructor led and there are plans to have a self paced e-learning verison [09:14] <RP> I think that is all good and I've volunteered to review the course material, I actually already did and put forward a number of corrections and suggestions [09:14] <RP> There is talk about certification ideas. That is more complex as it would need funding and a bigger time input from "us", the projects. [09:15] <RP> The reason I bring all this up is that there is some opportunity for anyone with a strong interest to get involved and help these things move forward [09:15] <RP> I've mentioned to the YP TSC and I'm also mentioning to the OE TSC as well [09:15] <JPEW> Ya, I think at a minimum it would be good to review the course material (I'd be willing to do that) [09:16] <JPEW> What sort of "certification" is being discussed? [09:16] <RP> Keep in mind this is a course the LF charges for and the material is therefore confidential [09:17] <RP> JPEW: the idea would be like some of the other LF certifications [09:17] <RP> e.g. https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/#domains [09:18] <RP> At this point I guess I'm asking if anyone has a strong interest in being involved and helping drive this [09:18] <JaMa> FWIW: I'm curious how wide this certification can be, because OE/YP is _very_ wide area, so being expert in some area doesn't help much in other areas, especially when customer doesn't even know how they want e.g. to maintain the distro [09:19] <RP> JaMa: a lot would come down to how we define the things someone should know to gain the qualification [09:20] <RP> I did argue for a split level approach with two levels, an essentials and advanced [09:20] <RP> I suspect we'd need to focus on the essentials first [09:20] <RP> We'd look at getting an advanced training course going first, then look at exams for the level [09:22] <JPEW> Makes sense.... I'll think about it [09:23] <RP> This is probably a long term objective. Short term we can improve the current training which will feed into the e-learning. Certification is a longer term goal [09:23] <RP> I really just need to know who is interested and available to help work on it (if anyone) [09:24] <RP> The TSCs are the people who guide "the architecture" in many ways [09:24] <RP> I appreciate its hard to comment with so few details. I'm struggling with the division between YP and OE here too a bit :/ [09:24] <RP> I'll stop here and move on to 3.1 since I'm mostly talking to myself? :) [09:24] <zeddii> I can help out. I can't step up for "drive it", but I'm definitely interested at some level. [09:25] <RP> zeddii: there is a section in the training about the kernel bits which you might like to review ;-) [09:26] <zeddii> the thought crossed my mind. :D [09:26] <JaMa> I'm only curious not in position to get involved with this, at work I can imagine hiring someone cerified with essentials more useful, than trying to find advanced certification for whatever area, the company currently strugles with (which is often specific to just that project or from historical reasons which don't exist anywhere else) [09:27] <RP> JaMa: I'd imagine the essentials would be the most useful for scenarios like that, yes [09:27] <RP> and it may be why the economics on the advanced cert don't work out :( [09:27] <RP> JaMa: its actually good to have confirmation that its an issue companies struggle with [09:28] <RP> JaMa: do you think existing engineers would be interested in taking it? [09:28] <JaMa> I can imagine new people joining SCM/Build team [09:29] <RP> JaMa: ok, thanks [09:29] <JaMa> for component teams (most of engineers) they need only project specific minimum to be able to interact with our build and for that they IMHO don't need generic essentials knowledge [09:30] <RP> JaMa: Is there something which would be useful for them? [09:30] <RP> I guess its too project specfic to be able to train for :( (back to your original point) [09:30] <JaMa> and for Build team people the essentials would be useful to be efficient to start debugging whatever issues we're currently seeing and then probably start learning from there (even if it includes additional advanced training) [09:31] <RP> zeddii, JPEW: I'll keep you in mind as things develop. I think they'll probably try and sort out the feedback I gave them, then we might need fresh eyes [09:32] <zeddii> ack'd [09:32] <RP> JaMa: the trouble with advanced is that there are so many directions it could go. I have some nice ideas but I think even project veterans would be challenged by at least one area on the list of things I was thinking about [09:32] <JaMa> RP: yes, and they use only very small part, mostly just changing one variable after creating new annotated tag and if they need something more complicated they usually ask Build team for help [09:33] <RP> Not to cut the discussion but I'll start talking about 3.1 as we can probably fade from one topic to another [09:33] <RP> We need to think about what we want to do post 3.1 in master for 3.2 [09:34] <JaMa> yes, I can imagine things like: multilib, external toolchain, nasty prebuilt binaries, using secondary toolchains, ... [09:34] <RP> Given where we're at resource wise, I am thinking it may be time to try and sort out a few more structural things, consider performance for example and maybe things like the ptest dependency dilemma [09:35] <RP> JaMa: tinfoil! [09:35] <bluelightning> \o/ [09:35] <RP> Lots of people would benefit from understanding what it does and how you can use it [09:35] <bluelightning> yes... needs better docs, that's most likely on me [09:35] <RP> bluelightning: how many people currently understand it? :) [09:36] * RP isn't sure he is in that category :/ [09:36] <JaMa> I wanted to type various bitbake magic people don't notice until they really need them :) [09:36] <RP> even if I did recently fix/break it [09:36] <bluelightning> well, understanding how to use it is the main thing, most don't need to know how it works [09:36] <RP> bluelightning: yes, exactly [09:36] <RP> and I was thinking of use [09:37] <RP> but its an interesting example of things where I think some widerspread understanding of what can be done would be useful [09:37] <RP> back on the architecture topic, did anyone have any ideas on my multilib dilemma i posted about over the weekend? [09:38] <JPEW> I read it... I didn't get any inspirations [09:38] <JaMa> the same here :/ [09:38] <RP> Is the filter flag for variables a good idea or a really bad one? [09:38] * bluelightning did not think about it enough [09:39] <RP> The TSC is effectively the guardian of this so we probably do need to think about this one... [09:39] <RP> I haven't got clean builds on the autobuilder yet with a ton of changes :( [09:40] <RP> equally, it highlights how inconsistent and "pure luck" the current code is [09:40] <JPEW> Ya [09:41] <JaMa> is it clear what caused the issues recently? from the e-mail it wasn't clear to me if this was all "pure luck" which started to run out now or new behavior [09:41] <JPEW> multilib is pretty invasive... would it help if it was more integrated instead of trying to be relegated to a distinct class? [09:41] <RP> I knew there were gremlins, I'm rather bothered by how bad they turned out to be [09:41] <RP> JaMa: someone tried to use a few too many features together with multilib [09:42] <JaMa> with thud we're also strugling a bit since multilib had to be enabled :/ [09:42] <RP> JPEW: I don't see how you can integrate it more other than covering all the recipes with MLPREFIX everywhere [09:43] <JaMa> "than covering all the recipes with MLPREFIX everywhere" that's pretty much what we did :) [09:43] <RP> JaMa: things haven't changed much in this area since before thud :( [09:45] <JaMa> our multilib use is also special, because instead of building normal image without MLPREFIX and including few extra package with MLPREFIX, we build everything except kernel and kernel modules with MLPREFIX [09:45] <RP> So going back to the more general 3.2, my feeling is we probably do need to experiment a bit more to see if we can improve things like parsing speed. I already fear its all the anonymous python that hurts us though [09:45] <JaMa> so whole userspace is 32bit and only kernel and modules are aarch64 [09:45] <RP> JaMa: it should still work... [09:46] <RP> JaMa: do you know if we've fixed any of that to work better in zeus/dunfell? [09:46] <JPEW> RP: Ya, you had mentioned moving some of the anon python to library code [09:46] <RP> JPEW: well not so much anon python as the python functions in staging.bbclass or sstate.bbclass [09:47] <RP> create better python libraries [09:47] <RP> I did also wonder about splitting the classes directory into global classes and recipe classes [09:47] <RP> (global e.g. package_rpm, recipe e.g. autotools) [09:48] <JPEW> Is that just for user uderstanding, or would it help parsing time? [09:48] <JaMa> RP: I haven't noticed any improvements for this use case in zeus/dunfell [09:49] <RP> JPEW: that would be more for understanding, users do complain about it being confusing to have two types mixed together [09:49] <RP> JaMa: figures :( [09:49] <RP> JPEW: I guess the question I'm asking is are there other things we should consider? [09:50] <RP> or should we consider this a bad idea for 3.2 and try and keep more compatibility with 3.1? [09:51] <JaMa> just saying that covering the recipes with MLPREFIX looks ugly, but at least works reliably, maybe the filter functions could as well, but already feels difficult to get right for all possible corner cases [09:51] <RP> JaMa: the filter case at least makes it clear which code needs MLPREFIX and which does not [09:52] <zeddii> on the compatibility with 3.1 topic, I wouldn’t put that as a priority when considering 3.2 work. [09:52] <RP> although my patch in -next is a poor relation of a proper filter approach [09:52] <RP> zeddii: that is my leaning too [09:53] <JaMa> but the expectation might be different e.g. useradd.bbclass should add MLPREFIX to base-passwd RDEPENDS in our case (because we don't want any aarch64 packages in the image) while everybody else doesn't want MLPREFIX to be added here [09:54] <RP> JaMa: right, I think the expectation is different there :/ [09:54] <RP> "There should only be one base-passwd and it should be the non-multilib" is probably the starting point in general :/ [09:54] <JaMa> and if the filter API needs me to overlay standard bbclass, then it's pretty much the same as adding ${MLPREFIX} in the variable [09:55] <RP> the original purpose of multilib.bbclass was to avoid having to go through all the recipes and classes and adding MLPREFIX everywhere [09:56] <RP> we could decide its important enough we have to just do that [09:57] <RP> but as JaMa points out, there are some cases where its a policy decision [09:57] <JPEW> Adding MLPREFIX manually (without any sort of check) seems like it would just be perpetually broken [09:57] <JPEW> e.g. because it gets missed sometimes [09:58] <zeddii> indeed [09:58] <JPEW> But filters also seem problematic as a "one size fits all" implementation [09:58] <RP> JPEW: well, its like sstate policy, you can define it [09:58] <JaMa> agreed, that's why I still don't like multilib - even when it's useful when you _really_ need it [09:59] <RP> the filter is ultimately a function which could be customised [09:59] * RP would prefer just to delete multilib [09:59] <JaMa> + [09:59] <RP> one more vote and we carry the motion :) [10:00] <RP> I wish we could :) [10:00] <zeddii> damn users. [10:00] <RP> Just to be clear for the minutes, whilst I would like to, I realise we can't [10:01] <RP> I'm allowed to fantasise about it [10:01] <JPEW> I've never had to use it FWIW. Makes it hard to reason about what the "correct" thing to do it :) [10:02] <JPEW> ... sort of hoping I don't *have* to use it now :) [10:02] <RP> I'd note that nativesdk functions as a special case multilib too, it needs the same prefix handling [10:03] <JPEW> Ah [10:03] <RP> and nativesdk is very functional/useful [10:03] <RP> MLPREFIX is nativesdk- in that case [10:03] <JPEW> I have used that one a lot. I didn't realize it was that closely related to multilib [10:03] <RP> JPEW: same underlying code [10:04] <RP> ish anyway [10:04] <JPEW> Are there other uses for the variable filter functions? [10:04] <RP> JPEW: not sure [10:05] <JaMa> I will think about that e-mail a bit more, I think another case where current multilib doesn't work well is file-rdeps handling (need to re-verify with dunfell) [10:05] <RP> There is a general theme that we have some special case hacks we should really integrate better into the architecture though [10:05] <RP> uninative is another [10:05] <RP> JaMa: please do as I'd welcome input [10:06] <JPEW> It seems like the arbitrary variable filters could be really useful, but also really dangerous [10:06] <RP> uninative needs some dedicated events, the sanity events need cleanup too [10:06] <RP> JPEW: yes, the danger worries me [10:07] <JPEW> Is there a way to mitigate that (e.g. make it not necessarily a general purpose filter)? [10:07] <RP> JPEW: hard to [10:08] <RP> bitbake implementations tend to have to be generic [10:08] <RP> I also worry about performance [10:08] <JPEW> Ya, I figured [10:08] <JPEW> Presumably, you'd have to run the filter every time the variable was expanded? [10:08] <JPEW> Since you'd never really know when it was "done" ? [10:09] <RP> JPEW: yes, although the expand cache could help [10:09] <RP> expand cache is cleared upon datastore writes [10:10] <JaMa> as long as there would be only multilib using it, it would be nice to have fast-path without filters for people who don't use multilib (I hope it's still majority of users) [10:10] <RP> JaMa: only multilib.bbclass would add the filters [10:12] <RP> the real problem is too much anon python [10:13] <JPEW> RP: The problem is when you need specific interactions between anon python chunks? [10:13] <JaMa> bitbake world with multilib enabled doubles the number of available targets, so for "bitbake world" jobs, the parsing performance hit won't show that much, but agreed [10:14] <RP> JPEW: right [10:14] <RP> JPEW: most of the system can dynamically adjust itself but the anon python can't defer itself to when its needed [10:16] <JPEW> RP: and the filter functions allow you do do that by moving what was anon code to a specific point (when the variable is exanded) [10:17] <RP> JPEW: yes [10:17] <RP> but it can also run many times [10:17] <RP> (potentially) [10:18] <JPEW> OK, I'm curious why, but I think we can move the technical disucssion to the e-mail thread [10:19] <JPEW> Any other TSC topics? [10:19] <JPEW> since we are over time :) [10:19] * RP was just looking at that [10:19] <RP> nothing form me [10:19] <bluelightning> nothing here atm [10:19] <JaMa> nothing from me as well [10:19] <zeddii> clear here as well [10:20] <JaMa> 23:09 < JPEW> Oops, I guess the version tags one needs removed? [10:20] <JaMa> ^ I agree it needs removal, will do now [10:20] <JPEW> JaMa: Already did it :) [10:20] <JaMa> ah, thanks :) [10:21] <JPEW> I'm going to leave the first two for next month since we didn't get around to them today, so keep thinking about it [10:21] <JPEW> Who's posting the minutes? [10:21] <bluelightning> I'll do it :) [10:22] <JPEW> bluelightning: Thanks [10:22] <JPEW> See you all next month! [10:25] <JaMa> See you on May 18th (reminder moved from tomorrow) :) [10:29] <RP> Thanks everyone :)
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#84003): https://lists.openembedded.org/g/openembedded-devel/message/84003 Mute This Topic: https://lists.openembedded.org/mt/73162578/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-