15:02:49 #startmeeting Modularity Team Meeting 15:02:49 Meeting started Tue Dec 3 15:02:49 2019 UTC. 15:02:49 This meeting is logged and archived in a public location. 15:02:49 The chair is langdon. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:02:49 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:02:49 The meeting name has been set to 'modularity_team_meeting' 15:02:49 contyk: In #fedora-meeting-3 is Modularity Team (weekly) (starting in 13 days) 15:02:49 see 15:02:51 contyk: In #fedora-meeting-3 is Modularity Team (weekly) (starting in 20 days) 15:02:54 contyk: - https://apps.fedoraproject.org/calendar/location/fedora-meeting-3%40irc.freenode.net/ 15:03:04 it doesnt tell you if the meeting should have started already 15:03:16 #meetingname modularity 15:03:16 The meeting name has been set to 'modularity' 15:03:23 #topic Roll Call 15:03:25 .hello psabata 15:03:26 contyk: psabata 'Petr Šabata' 15:03:26 .heelo2 15:03:29 .hello ngompa 15:03:29 .hello2 15:03:29 Son_Goku: ngompa 'Neal Gompa' 15:03:32 langdon: langdon 'Langdon White' 15:03:54 been a while since I've last been to one of these... 15:04:34 you haven't missed much :) 15:04:39 ha 15:04:43 welp 15:04:48 #chair contyk sgallagh 15:04:48 Current chairs: contyk langdon sgallagh 15:04:59 #topic agenda setting 15:05:05 proposals? 15:05:24 we wanted to go through the ticket queue, finally 15:05:33 we did some cleanup a couple of weeks ago 15:05:39 but there are some new topics 15:05:43 or tickets 15:05:48 right 15:06:06 we also have the proposal floating in email. that I am not sure any of us are prepared to discuss yet 15:06:23 are there any issues in particular people want to make sure we hit? 15:06:28 I'm still processing through the thread, but I'm really concerned at the sheer number of handwaves in the initial poist 15:06:29 *post 15:06:36 I'd like to talk about this a bit: https://pagure.io/fm-orchestrator/issue/1241 15:07:01 but if we've got other things, then we can do that 15:07:18 contyk, sgallagh would you be interested in starting with that? or do you need time to think about it? 15:07:33 fm-o 1241 i mean 15:07:42 well 15:07:50 my opinion on that is still the same 15:08:38 ok.. well let's start with that and then go most recent to oldest in the ticket queue and see where we get? 15:08:43 ok 15:08:50 .hello2 15:08:52 asamalik: asamalik 'Adam Samalik' 15:09:03 #info starting with https://pagure.io/fm-orchestrator/issue/1241 15:09:14 #info then moving to tickets newest to oldest 15:09:50 #topic https://pagure.io/fm-orchestrator/issue/1241 : "Automatically determine build order and build clusters instead of making people figure them out" 15:10:00 contyk: do you want to share your opinion? 15:10:13 so, as I said before, while it could work for some people in most cases, I don't think it's a universal solution 15:10:32 some packages have different build deps on different arches (or driven by other specfile conditions) 15:10:46 the general state of build deps listed in spec files is... sad 15:10:56 you're not wrong :( 15:11:39 my QnD prototype uses rpmspec to pass in macro settings and evaluate the spec based on target arches 15:11:53 so I can _mostly_ divine the build deps based on those things 15:12:06 the main monkey-wrench now is genbr 15:12:23 and that, yes, almost forgot 15:12:29 but that, I think, is mostly forcing build-loops now 15:12:33 we also now have the bootstrap feature where you can build packages more than once 15:12:58 maybe that doesn't matter much; the problem is the same there 15:13:09 Sorry, genbr? 15:13:10 genbr was my other major concern 15:13:17 sgallagh: generated build requires 15:13:17 generated build deps 15:13:22 ok 15:13:46 my thinking has evolved a bit on this... I think regardless of this implemented, buildafter makes sense 15:13:59 I think that if this were implemented, buildorder and potentially bootstrap may not be necessary 15:14:15 though I can still see cases where you might want to declare a bootstrap condition and have different settings for bootstrap 15:14:34 buildorder and buildafter are mutually-exclusive 15:14:38 You can only use one or the other 15:14:49 ah 15:14:54 yep 15:15:01 and bootstrap is solving a different problem 15:15:04 I didn't know that wound up getting set :P 15:15:08 I don't see how this would help there 15:15:09 contyk, yeah, bootstrap I get 15:15:36 And bootstrap is basically just a naming fudge so you can have the same component name but pointing at a different ref (or having different flags) 15:15:45 yeah 15:16:06 s/flags/build options/ 15:16:12 Like macros 15:16:19 FWIW there are separate tickets requesting these features be implemented :-) 15:16:34 mbooth: Most of these are actually there today. 15:16:38 I very much prefer maintainers being in control over having some magic there but I probably wouldn't block this feature 15:16:57 this feature: automatic buildorder resolution 15:17:07 Can people stop saying "these" and "this feature" without describing it? 15:17:10 ... thanks contyk 15:17:15 if you opt in via some flag in buildopts or something 15:17:20 would generating for the pkgr to include work? 15:17:33 langdon, huh? 15:17:38 like just take the burden off the human but not nec. lose the "power" 15:17:42 yes 15:17:50 Son_Goku: I think he means "offer a fedpkg command that generates a proposed order"\ 15:17:55 like do the same thing just not at build time at "spec creation time" or something 15:18:10 ubut i suppoose that doesn't help it getting stale 15:18:18 langdon, it's possible, ignatenkobrain already did this for Rust 15:18:24 langdon: The specs are YAML; editing it in place should be easy 15:18:27 but the staleness problem is much worse 15:18:49 because we're talking about a large dependency web instead of one level of dependencies 15:19:03 Son_Goku: Sorry, now I'm lost 15:19:07 i still lean toward we should do "everything" automatically and just have packagers intervene when the system does something wrong 15:19:16 langdon, I agree here :) 15:19:32 sgallagh, at the minimum, buildorder or buildafter means you need to be specifying 2 levels of deps 15:19:36 deps of the main package, and deps of deps 15:19:45 for backwards compatibility we need an opt-in flag, I think 15:19:47 most people don't know how to reason that well 15:19:56 but if you set it and MBS supports it, okay 15:20:11 the generated modulemd can expand it into buildorder or buildafter 15:20:40 of course MBS then should really rebuild the SRPM on all arches like depchase did 15:20:44 sgallagh, for example, your ReviewBoard module has the deps of ReviewBoard, but also handling the deps of old-ass Django 15:21:08 Not exactly 15:21:14 not sure how to solve situations where the build order differs on different arches but I don't know how to solve that with a local generator either 15:21:26 sgallagh, well, you say you need old django, then you need reviewboard built 15:21:34 that's a two level chain at least in itself 15:21:58 most modules are hopefully at least two levels (otherwise there's not a ton of value in them) 15:21:59 Son_Goku: django is a separate module in this discussion... 15:22:17 * Son_Goku sighs 15:22:32 lets say you collapsed them into one, then? 15:22:38 and the internal django is "private" or something 15:22:41 ok... 15:22:49 it's still showing you two levels 15:22:55 even as separate modulemds, that's the case 15:23:08 and when python2 goes away, your django 1.6 module will incorporate _that_ too 15:23:15 so that makes three levels 15:23:55 reasoning the necessary build sequences for all the stuff you're including is not easy for most people 15:24:03 you and I are probably special weirdos in this regard 15:24:08 we can figure it out relatively easily 15:24:09 heh 15:24:44 one of the things I think is critical for making modules more successful is getting as close as we can back to the 90% case of only caring about first-level dependency specification (direct deps) 15:25:16 Son_Goku: Isn't "buildafter" already doing that? 15:25:19 so if you specify a bunch of refs to be built, Koji should be able to figure out the correct sequence and Do The Right Thing(TM) 15:25:24 sgallagh, sort of 15:25:30 I'll certainly admit that "buildorder" did not meet this requirement 15:25:45 it does allow the packager to reason ordering 15:26:12 and in a ton of cases, one or two buildafters might be enough 15:26:23 but I'm thinking more of modules that contain whole language stacks 15:26:49 it'd be much easier if those could be mostly computed and only buildafters need to be specified in ambiguous cases 15:26:59 (where circular dep cycles might exist, for example) 15:27:26 riffing off OBS for a bit, the "Order" stanza in the prjconf serves this purpose 15:27:35 and I think buildafter for modulemds would work essentially the same way 15:28:09 sgallagh, the reason I'm thinking about this now is that at $DAYJOB, I'm working on the modularity support for our OBS instance 15:28:11 i would like to get to something else today.. so can we iron this in to a proposal/resolution? 15:28:50 * Son_Goku shrugs 15:29:04 Son_Goku: Would you mind writing up a use-case document at least? 15:29:13 sgallagh, I could, where do you want it? 15:29:19 Just to show how you think the user-experience side of things might work 15:29:27 Then we can work out the tech details. 15:29:27 sure 15:29:39 Son_Goku: Add it to the ticket for now. 15:29:43 okay 15:30:21 #action Son_Goku to write up a use-case doc and attach it to https://pagure.io/fm-orchestrator/issue/1241 15:30:27 ack? ^^ 15:30:36 ack 15:31:08 ok... should we move to the email proposal? or a ticket? (i forgot the email proposal when doing the agenda :( ) 15:31:27 which proposal do you mean, to be sure? 15:31:29 langdon, email proposal as in ignatenkobrain's RFC? 15:31:33 or something else? 15:32:02 "RFC: modularity simplified" 15:32:40 I'm still trying to process through the responses, but we can discuss it. 15:32:45 I still need to read that thread 15:32:59 how about we set up a separate meeting for ~thurs to discuss it? 15:33:04 I've read the first five or six mails 15:33:14 cause i think it won't be a good discussion at the moment 15:33:22 but i would prefer to do something before next meeting 15:33:23 sure 15:33:32 ok.. 15:33:42 My primary concern is that there are a bunch of places where ignatenkobrain basically says "and we add this feature" without any sense of the effort level required. 15:34:05 #topic 15:34:11 arrgh 15:34:12 #undo 15:34:12 Removing item from minutes: 15:34:15 #topic "RFC: modularity simplified" 15:34:41 sgallagh, I suspect he's not mentioning effort because he doesn't know what would be done 15:34:46 I would like to discuss, but I'm on the train station waiting for the train 15:35:03 I'm sure ignatenkobrain would help implementing things 15:35:06 #action langdon to setup meeting to discuss "RFC: modularity simplified" (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3EP3LXGGZABBCAHF5EPZCVEL4FQ23GS3/#VIX7R6QA6EH4DHHEPGMFEQ5MQ5FF7TBE) for later this week 15:35:20 this channel is generally free; it's just us using it 15:35:23 ignatenkobrain: ill invite you to the meeting later in the week? 15:35:38 langdon: sure 15:35:49 langdon, invite me too :) 15:35:56 ok.. so let's do 1 ticket! 15:36:13 Son_Goku: ill actually send it to devel@ unless you all think it is a bad idea? 15:36:33 but put some names in the to line too (like the peeps here) 15:36:49 langdon, that might be okay... I'm worried about potential SNR 15:37:02 but we're not _hiding_ these things, so it's fine 15:37:50 point 15:37:58 ook.. sorry.. got distracted for a second 15:38:15 #topic https://pagure.io/modularity/issue/165 15:38:21 how about this one? 15:38:34 .modularity 165 15:38:35 contyk: Issue #165: What modular packages (build)require Python 2 on rawhide? - modularity - Pagure.io - https://pagure.io/modularity/issue/165 15:38:52 ohh i forgot you could do that :)" 15:39:05 this should be fixed in dnf 4.2.17 15:39:13 well 15:39:14 you can tell repoquery to query even disabled packages 15:39:23 to do this properly you also need to consider the "buildroot only" modules 15:39:28 not just what's in the repo 15:39:30 * Son_Goku grumbles 15:40:25 so, hmm 15:40:37 obviously you can download all the packages and run repoquery 15:40:46 but does anyone have a better idea? 15:41:06 well, we can't download them either 15:41:11 because we don't know _where_ to get them from 15:41:20 pulling from koji is pulling from a bloody firehose 15:41:39 i thought we had a proposal of a publicly addressable repo that had "everything" for this kind of use case (but not for installing, etc) 15:41:52 yes, a proposal :) 15:41:55 langdon, I remember discussing that in March, but I don't see it anywhere :P 15:42:11 Son_Goku: it is hiding from you! ;) 15:42:16 haha 15:42:24 well.. is that the answer? 15:42:37 or is it a two piece answer? 15:42:51 it would be the anawer if it existed now 15:43:13 can we file a "tbd ticket" and point this at that? 15:43:25 py2 goes eol in a month 15:43:29 Question: do we need to have the actual packages in that repo or could we just have the repodata? 15:43:31 true 15:43:48 I think we should have actual packages in there 15:44:02 so that people can work with them, use them for local builds etc 15:44:12 contyk: the repo? or the near term solution for churchyard? 15:44:46 Son_Goku: Weird, I found it trivial to write a script to cache locally buildroot only modules: https://github.com/mbooth101/modularity-misc/blob/master/cache_module.sh 15:45:07 not including the packages would make the compose a little bit faster; seconds instead of minutes, I think? 15:45:43 the majority of the work like setting it up and identifying (automatically) what goes in there still needs to happen 15:45:51 hmm 15:46:12 contyk: "it" in your prior is "the lookup everythign repo"? 15:46:12 mbooth, if you know what module you're working from, then it's easy 15:46:16 I suppose it wouldn't need deltarpms (or signing?). 15:46:20 mbooth, if you don't, you're SOL 15:46:23 perhaps a near term solution is really just identifying all the modules for f32, then which of those are not available in the repo and providing a simple way to download those packages from koji 15:46:30 sgallagh, we should never not sign packages 15:46:39 but we can probably cut deltarpms 15:46:47 Son_Goku: Don't you know the list of all modules? That also seems like something you can compute :-) 15:46:49 sgallagh: probably not deltas but I suspect it would need signing 15:47:07 Son_Goku++ 15:47:08 OK, just trying to figure out which corners we could cut. 15:47:24 sgallagh, we can also use cheap metadata generation 15:47:41 no xz, no sqlite3, etc. 15:48:10 * sgallagh nods 15:48:35 just doing only gzip + zstd chunk cuts down repodata generation time by 60% 15:48:40 so mbooth's script could be the short term solution 15:48:54 ok.. so i see two things to do.. a) answer churchyard with something hacky b) propose a new repo 15:49:09 mbooth: could you answer churchyard with your script? 15:49:26 langdon: Where am I looking? 15:49:31 maybe with review by someone here before you post it (if you aren't 100% sure you know it) 15:49:39 mbooth: https://pagure.io/modularity/issue/165 15:49:54 (Sorry for interrupting, I just happened to be dropping some eaves today) 15:50:06 the more the merrier! 15:50:14 esp if we can assign you something! ;) 15:51:24 does someone want to volunteer for the "b"? 15:51:57 we should have a ticket to track it 15:52:11 contyk: the writing of it? i can do that 15:52:42 #action langdon to file a ticket about writing up/proposing "everything for reference repo" thingy 15:52:44 the existence of additional repo with buildroot-only modules and, just remembered, filtered packages 15:53:09 that was another thing; filtered packages not being available 15:53:19 yeah, that's a biggie 15:53:38 Actually, I have a related point about that for EPEL 8 15:53:49 in RHEL we have these in the CBR repo; generated *-devel modules that depend on the main module and provide the filtered content 15:54:05 contyk: Except not all of it 15:54:11 It's apparently opt-in. 15:54:16 wut 15:54:18 yes, not all, but in Fedora it'd be everything, I hope 15:54:18 no... 15:54:18 contyk: CRB, right? 15:54:25 code-ready builder 15:54:27 langdon: yes, sorry 15:54:46 Confusing Repo Branding :P 15:54:47 So that's actually what I was going to bring up wrt EPEL 8 15:55:07 Son_Goku: dont get me started 15:55:11 Children R Burning! 15:55:16 lol 15:55:41 langdon, you mean you *didn't* choose that name? :P 15:55:41 I had a crazy idea for what we could do in EPEL 8 for dealing with missing filtered packages. 15:55:46 sgallagh, oh? 15:55:54 (For example, the lack of libuv-devel is becoming a pain point for many) 15:56:11 there are a few missing devel packages blocking pagure deps in EPEL8 too 15:56:16 * sgallagh nods 15:56:17 Son_Goku: hahahahaha.. thanks.. 15:56:17 libmilter-devel from sendmail, for example 15:57:04 So what I'm thinking about doing is creating a "missingpkgs" module (with no default stream) that builds from the centos git commit and does the reverse filtering. 15:57:05 though I think that one was fixed recently 15:57:12 sgallagh, oh, neat 15:57:21 there's a slight problem, though 15:57:32 Then we'd use Ursa Prime's override feature to put those into the EPEL 8 non-modular buildroot 15:57:34 we do EVR mangling, and our packaging structures make it so those packages conflict 15:57:55 Son_Goku: Sorry, can you go into greater detail? I can't follow from that. 15:58:22 sgallagh, foo (filtered foo-devel) in main module, and foo-devel in aux module have different "release" values 15:58:34 so foo-devel requiring foo = %EVR doesn't work 15:58:54 the package is not installable, because foo from aux module is filtered out 15:59:11 and we have no way of building modules with the same EVR twice 15:59:18 Sure we do. 15:59:23 what? 15:59:28 Because it wasn't built the *first* time in the Fedora MBS 15:59:34 ohhhh 15:59:35 So the records aren't there with which to conflict 15:59:37 :-D 15:59:47 oh my god, that's so cheeze right there 16:00:08 Cheezy like a fox? 16:00:10 :D 16:00:17 it's very clever 16:00:22 mbooth: so .. was that a "yes" on replying to the ticket? 16:00:27 if the EVRs match, then yeah, it'd work 16:00:39 langdon: He just submitted a comment, so I'd assume so 16:00:39 langdon: https://pagure.io/modularity/issue/165#comment-614509 16:00:54 ohh thanks.. i had the thought to go look but lazy ;) 16:01:19 mbooth: thanks! 16:01:23 np 16:01:34 ill add a comment about "and look over here for future" .. once i make the other ticket 16:01:42 ok.. we are officially over time... 16:01:49 should i close the meeting? 16:02:23 #action mbooth to add a comment to https://pagure.io/modularity/issue/165 with help 16:02:39 #action langdon to add comment to https://pagure.io/modularity/issue/165 pointing at the long term fix ticket 16:02:50 #topic open floor 16:02:55 anything else? 16:02:58 going once? 16:03:07 Thanks for chairing, langdon 16:03:32 going twice! 16:03:35 I'm gravy 16:03:41 * langdon attempts to get all the punctuation 16:03:52 langdon: What‽ 16:04:02 mmmm gravy... all my leftoovers are already gone :( 16:04:04 mbooth: nice! 16:04:10 and ... 16:04:14 #endmeeting