14:00:00 #startmeeting modularity_wg 14:00:01 Meeting started Tue Apr 17 14:00:00 2018 UTC. The chair is nils. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:01 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:00:01 The meeting name has been set to 'modularity_wg' 14:00:01 #meetingtopic Meeting of the Modularity Working Group (once every two weeks) 14:00:01 #chair dgilmore langdon tflink 14:00:01 Current chairs: dgilmore langdon nils tflink 14:00:09 #topic Roll Call 14:00:18 .hello nphilipp 14:00:19 nils: nphilipp 'Nils Philippsen' 14:00:20 .hello2 14:00:22 langdon: langdon 'Langdon White' 14:00:31 hi 14:00:51 hi! 14:00:58 hi :) 14:01:05 .hello2 14:01:06 asamalik: asamalik 'Adam Samalik' 14:01:29 hey there 14:01:55 The agenda is still empty, do you have anything to add? 14:02:10 I have nothing 14:02:44 langdon, asamalik? 14:02:49 me neither.. 14:03:12 except i used the nodejs:6 module to get an app to run that wouldn't work on f27 with nodejs:8! 14:03:42 \o/ 14:03:49 o/ 14:03:52 .hello psabata 14:03:53 contyk: psabata 'Petr Ĺ abata' 14:04:43 nothing here 14:04:55 contyk, sct, anything to add to the agenda? 14:05:12 .hello tflink 14:05:13 tflink: tflink 'Tim Flink' 14:05:22 or tflink? :D 14:05:52 well, nothing I could really talk about 14:06:09 but we've hit quite a few issues regarding compose metadata and dnf lately 14:06:18 I believe all of them are tracked in bugzilla 14:06:22 nils: Don't think so. There's a bunch of relevant work going on right now in dnf and on module defaults, but it's all still in the pipe and I don't think is blocked on anything at this point 14:07:00 Alright, if there's nothing to discuss you can have almost an hour of your life back. :) 14:07:55 we need some blog posts! 14:08:05 with cat pictures 14:08:18 yes.. cats 14:09:09 I'm tempted to link pictures of lions eating. 14:09:13 I actually have something to discuss :) 14:09:21 a ha! 14:09:22 I want to move with https://pagure.io/fm-orchestrator/pull-request/917 14:09:25 #topic Agenda 14:09:50 it's mainly thing for contyk probably, but since there is meeting he must attend and we have an hour to discuss that, we could fix this issue :) 14:10:02 :)) 14:10:03 #info [jkaluza] discuss reusing module build strategy 14:10:18 #topic discuss reusing module build strategy 14:10:23 #chair jkaluza 14:10:23 Current chairs: dgilmore jkaluza langdon nils tflink 14:10:23 so you currently reuse components from other modules and/or streams and you think it's a problem? 14:10:30 it's a feature we wanted :) 14:11:02 #link https://pagure.io/fm-orchestrator/pull-request/917 14:11:13 Right now the default module rebuild strategy is "only-changed" 14:11:33 Which is described as "All changed components will be rebuilt". 14:12:29 The issue we have once we introduced module stream expansion (MSE) is that module build which buildrequires platform:f29 could reuse components from previous module build buildrequiring platform:f28 14:12:56 well, yes, that sounds wrong 14:13:01 contyk: +1 14:13:16 I'm all in favor of reusing components from other streams or even modules 14:13:18 I have hotfixed that in MBS prod by checking the commit hashes of all buildrequired modules and only if they are the same, I nominated this previous module as candidate to reuse components from 14:13:25 but only from builds that share the same buildroot on stream level 14:13:44 but mprahl thinks this is wrong for "only-changed" and it makes it the same as "changed-and-after". 14:14:07 and contyk thinks (at least I think) that we should check the "stream" instead of "commit hash" when rebuild strategy is "only-change". 14:14:14 yes 14:14:16 contyk: well if a module had a buildrequires platform:f28 it should be expected to run on platform:29 14:14:30 because if you translate the streams to commit IDs, what mprahl says is true in practice 14:14:43 the odds that you will find a match are very low and you will always rebuild everything 14:15:10 if you match on stream names and trust that they maintain some ABI stability, you will re-use most of your components 14:15:13 but you do want to make sure that a module with a buildrequires platform:f29 is not a dependency for a module that has buildrequires platform:f28 14:15:24 The goal of this discussion should be decision if we should keep the current rebuild-strategy (only-changed) and fix it somehow (how?) or move to different strategy. 14:15:24 one way should be fine 14:15:54 dgilmore: that's up to what the module author defines; they can say they want to build once and run everywhere; they can say they wan to be built for every platform 14:16:01 using older platform modules on newer platforms should be okay, but using newer platform on older platforms should not 14:16:08 dgilmore, but that's an exception for platform, or isn't it? Normally, different streams aren't guaranteed to be compatible. 14:16:10 dgilmore: we can't guarantee 28 and 29 abi compatibility 14:16:27 it doesn't matter which way 14:16:32 contyk: no. but should we outright block it? 14:16:38 contyk: I'm also OK with changing my PR linked by nils to use stream instead of refs and continue using "only-changed", I only need +1 from you on that. 14:16:51 the module owners should make sure that if there is not compatability they rebuild 14:16:53 dgilmore: I don't see what's... blocking it? 14:16:59 contyk: or from modularity-wg basically, but your +1 is OK for me :) 14:17:03 maybe I am not expressing myself correctly 14:17:25 My suggestion is when using the `only-changed` rebuild strategy is we keep it as is but only allow reusing from module components built against the same platform. 14:17:42 mprahl: +1 14:17:47 ^ Hm, that's different thing that I was proposing 14:17:54 is dgilmore here? am I loosing messages again? can't see your messages dgilmore :( (connected with Matrix) 14:17:54 mprahl: I think the same or older is okay 14:17:55 mprahl: which you would achieve by checking streams, not refs; do you see a problem there? 14:17:56 This would make it work like it did before f29 was introduced 14:18:06 asamalik: I am here 14:18:07 asamalik: he is here 14:18:13 asamalik: you have me on ignore I guess 14:18:14 mprahl, same platform, or same "module build deps"? 14:18:20 nils: same platform 14:18:40 mprahl: can "platform" be generalized as "base module"? 14:18:42 Because the compat considerations are the same w.r.t. different streams of other modules on the same platform, or are they not? 14:18:48 mprahl: as we maintain list of base modules in MBS config 14:18:49 they are 14:19:10 contyk: `only-changed` currently doesn't check build deps, it just checks if the commit hash of the component is the same. It's very liberal. 14:19:30 contyk: We would just add an additional check of making sure platform is the same stream from both components 14:19:31 mprahl: it needs to check build deps but it should only do so on stream level 14:19:45 mprahl: contyk: *currently == in the MBS master git repo branch 14:19:54 only-changed, as deployed, checks refs 14:19:58 since I hotfixed that 14:19:59 contyk++ 14:20:00 nils: Karma for psabata changed to 3 (for the f27 release cycle): https://badges.fedoraproject.org/tags/cookie/any 14:20:20 .hello asamalik 14:20:21 asamalik_: asamalik 'Adam Samalik' 14:20:24 contyk: Okay, do you want the context to be computed based on streams as well? It's currently based on commit hashes of deps. 14:20:30 if you reuse components built against a different ABI, you create broken modules 14:20:34 hi asamalik_ 14:20:43 hey dgilmore! finally see you 14:20:43 Wait, can we decide that we want to reuse based on "branch"? 14:20:50 Did we decide that now? 14:20:54 if you base your reuse policy on git refs, you will almost always rebuilt everything because it's effectively changed-and-after 14:20:56 *based on "stream" 14:20:57 asamalik_: I assumed you were ignoring me :D 14:21:27 dgilmore: I realized you might recognize it, so had to fake a reason :P 14:21:56 jkaluza: well, keep those two facts in mind and tell me if there's anything wrong with tracking build deps by streams? 14:21:58 contyk: Yes but this is a different question. 14:22:16 asamalik_: I was saying that I think if the module you buildrequire used an older platform it should be fine 14:22:30 there will be cases you need to rebuild it against a newer platform 14:22:31 contyk: Currently, the context is based on build deps + runtime deps and their commit hashes. Instead of commit hashes, should that be streams? Then the context is more predictable 14:22:55 contyk: it shouldn't be if streams thing built against older version of a module in the same stream will always work in the later version. And I think it should, so it should be OK. 14:23:26 mprahl: That would mean the context will always be the same unless you really change the stream names. I think it would be nice. 14:23:39 jkaluza: that's one thing we need to rely on 14:23:56 dgilmore: thanks for repeating that for me! 14:24:05 jkaluza: Exactly. It seems people want to be able to do that. 14:24:15 mprahl: So all the modules which buildrequire *only* platform:f29 would have the same context forever. 14:24:26 jkaluza: Yes exactly 14:24:27 which might be useful 14:24:29 mprahl: well, as long as changing that doesn't break your other policies... 14:24:41 contyk: Nope, should be fine. 14:24:59 mprahl: anything else around this issue we want to ask/decide? 14:25:01 with changed-and-after I want changes in refs to affect the rebuild decision 14:25:21 contyk: Yes, that would stay the same. 14:25:37 jkaluza: I think I'm all set. :) 14:26:43 Anything that needs to be #info'd? 14:27:06 Factory-2.0 will change the "only-changed" MBS rebuild-strategy to reuse components from previous build of a module which buildrequires the same modules in the same streams as current module. 14:27:17 contyk: mprahl: ^ can this be summarized like that? 14:27:36 jkaluza: that sounds good to me! 14:27:49 jkaluza: Yes, but additionally, the "context" will now be computed from the buildrequires and requires and their streams. 14:27:53 Factory-2.0 will compute the context hash based on the stream of buildrequires/requires instead of commit hash of buildrequires/requires. 14:27:57 mprahl: ^ 14:27:59 +1 14:28:17 well, *will change the MBS to compute 14:28:18 +1 14:28:20 I won't compute it myself 14:28:29 lol 14:28:35 jkaluza-as-a-service 14:28:37 slacker 14:28:38 nils: that can be #info'd I think :) 14:28:41 :) 14:28:42 those two 14:28:45 and I'm happy :) thanks :) 14:29:03 #info Factory-2.0 will change the "only-changed" MBS rebuild-strategy to reuse components from previous build of a module which buildrequires the same modules in the same streams as current module. 14:29:04 Factory-2.0 will change the "only-changed" MBS rebuild-strategy to reuse components from previous build of a module which buildrequires the same modules in the same streams as current module. 14:29:05 happiness++ 14:29:09 oops 14:29:22 * jkaluza does not have to keep that hotfix in his mind and can redo that PR and finally merge it 14:29:31 #info Factory-2.0 will change MBS to compute the context hash based on the stream of buildrequires/requires instead of commit hash of buildrequires/requires. 14:30:09 Mprahl gave karma cookie in f28 to happiness (43)! 14:30:26 contyk: One more thing, it is not blocker for you for F28 anyhow I presume, right? 14:30:37 contyk: given we are in freeze again, we won't be able to deploy that right now 14:30:56 so it will continue reusing only from modules which have the same commit hashes of all buildrequires 14:31:01 until the freeze is over 14:31:10 at this point it shouldn't have any catastrophic consequences because f28 and f29 aren't all that different 14:31:19 good 14:31:23 I thought so :) 14:31:25 but the sooner you can fix this the better 14:31:43 * jkaluza checks when the freeze is over 14:32:30 May, probably 14:32:32 after GA 14:32:37 yeah 14:32:46 2018-05-01 or 2018-05-08 or some dates around 14:33:03 yep 14:33:03 contyk: let's see, we might also have some important fix and get this in as well 14:33:12 I don't believe we won't break the freeze with MSE :) 14:36:16 so, are we done? :) 14:37:16 * jkaluza has no more questions 14:39:56 good 14:40:37 Thanks everybody! Thanks jkaluza for giving us something to talk about. :D 14:40:40 jkaluza++ 14:40:40 nils: Karma for jkaluza changed to 8 (for the f27 release cycle): https://badges.fedoraproject.org/tags/cookie/any 14:40:45 #endmeeting