14:00:29 #startmeeting modularity_wg 14:00:29 Meeting started Tue May 30 14:00:29 2017 UTC. The chair is nils. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:29 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:00:29 The meeting name has been set to 'modularity_wg' 14:00:29 #meetingtopic Meeting of the Modularity Working Group (once every two weeks) 14:00:29 #chair dgilmore langdon 14:00:29 Current chairs: dgilmore langdon nils 14:00:36 #topic Roll Call 14:00:40 .hello langdon 14:00:41 .hello psabata 14:00:41 langdon: langdon 'Langdon White' 14:00:42 .hello nphilipp 14:00:44 contyk: psabata 'Petr Ĺ abata' 14:00:48 nils: nphilipp 'Nils Philippsen' 14:01:13 .hello tflink 14:01:14 tflink: tflink 'Tim Flink' 14:01:15 .hello sgallagh 14:01:17 sgallagh: sgallagh 'Stephen Gallagher' 14:01:17 .hello jkurik 14:01:20 jkurik: jkurik 'Jan Kurik' 14:01:21 #chair tflink 14:01:21 Current chairs: dgilmore langdon nils tflink 14:01:43 #chair sct 14:01:43 Current chairs: dgilmore langdon nils sct tflink 14:01:50 .hello sct 14:01:51 sct: sct 'Stephen Tweedie' 14:02:17 #topic Agenda 14:02:38 Anybody got something for the agenda? The one on the board is empty... 14:02:56 sct and i were discussing one if threebean is around? 14:03:08 * langdon not sure why he added the "?" 14:03:43 * contyk is a little distracted 14:04:29 * jkaluza is here 14:05:19 * threebean joins 14:05:50 sct, do you want to add the agenda item? 14:06:23 langdon: I had two or three. :) Which part did you want to bring up here? Maintaining the core shared dependency lists? 14:06:50 Or gating addition of new deps? 14:08:25 the maintenance part.. so like "what tools in infra can be used to track the deps of 'items' " as we seem to keep collecting over and over 14:08:34 Right 14:08:40 * nils peddles the agenda board: https://board.net/p/modularity-wg-agendas 14:09:04 .hello karsten_ 14:09:05 karsten_: Sorry, but you don't exist 14:09:08 .hello karsten 14:09:11 karsten_: karsten 'Karsten Hopp' 14:09:48 #topic Dependency management and tracking 14:10:26 OK, so this is something Langdon and I were talking about --- an area we'd like to improve but it's a pretty generic problem, we don't have it broken down yet. 14:10:39 Modularity depends on a core set of shared dependencies 14:11:03 and those dependencies need managed; we need to figure which ones to add to the core of the distro, which ones to bundle with modules 14:11:46 and we need to grow the core dependencies as needed, but in a managed fashion --- if a new app commit pulls in an additional dependency, that should require manual approval and should be flagged to the developer. 14:12:10 So there's a whole set of tools we could look at --- for reporting dependencies for individual packages and/or entire subsets like Gnome or KDE; 14:12:23 and for managing the core deps as we commit updates 14:12:41 and for making sure that the build roots reflect the full set of shared dependencies that we offer. 14:14:09 So paraphrasing Langdon's natural question above, this is a big and vague problem area, are there are any obvious tools we can build upon in infra to help get started? 14:14:09 So what sorts of tools are we looking for, exactly? 14:14:35 Ones to monitor the various modules and notice if a reasonable subset of them have all started pulling in a particular dependency and propose that for inclusion in the common set? 14:15:00 A reporting tool like that is the obvious first one 14:15:02 Or are we talking about monitoring the dependencies of individual modules themselves to keep an eye on when they start to grow? 14:15:17 *grow "upstream" in traditional Fedora, I mean 14:15:23 the other natural one would be an rpmdiff-type tool to flag up additional dependencies in one version of a build to a new candidate 14:15:39 * contyk returns 14:15:42 sorry.. less distracted now.. 14:16:38 * contyk nods 14:16:45 I think all this is sort of planned 14:16:53 sgallagh, i think both of those things.. it just seems like every time i turn around, someone has written a new way to find/manage deps.. would be nice if we had that data captured in one place and then we could track chnage over time, breakage, visualization, etc 14:17:00 sct, who would be the person to approve the added component? 14:17:15 it's expected application modules would follow rpms/* dist-git branches and whenever the branch content is updated, we try rebuilding the module which references that branch 14:17:19 is not PDC the tool for keeping dependencies tracked ? 14:17:23 if there's a new dependency that is missing, we'll noticed that 14:17:36 sct: you can get list of all modules including a component built from particular branch by querying PDC - could be useful when writing tool which tries to find out the subset of shared components between the modules. 14:17:40 of course if a dependency disappears, nothing will break and we'll just carry cruft 14:17:44 that needs to be manually inspected 14:18:07 nils: Well, gating and approving would be a good bit further down the road. We need a proper gating CI pipeline in place before we can add that as an additional test. 14:18:20 contyk, well.. we want not just the maintainer to notice.. we want the infra to flag it up too in case other people need to know and so fesco knows when things are growing 14:18:28 nils: For now I'd settle for sending a developer a report with a new build that flags up any grown dependencies. 14:18:30 anyway, if a new version of a package that is to be included in the module is a missing a dependency and the rebuild fails, the modules maintainer should get in touch with the packager and coordinate; is it really needed? why? 14:19:22 langdon: there's no way we would automatically add a dependency to a module, it's a conscious task 14:19:52 jkurik: This is example of query to find out what modules include RPM from particular branch: https://pdc.fedoraproject.org/rest_api/v1/unreleasedvariants/?component_name=net-tools&component_branch=f26&fields=variant_uid 14:20:04 sct, but the developer put in the new dep in the first place, I suppose deliberately. This sounds a little like "Are you sure you want to do what you just instructed me to do?" 14:20:14 contyk: It's a conscious task on the part of the packager/module-owner, but knowing that things are growing is useful from a larger perspective 14:20:27 sgallagh: yes, of course 14:20:29 If that requires the developer to sign off on their own change, that is. 14:20:32 just saying it cannot happen unnoticed 14:20:38 nils: Not really 14:20:51 contyk: Sure, but it can be handwaved through without thought 14:21:24 nils: Dependencies grow for all sorts of reasons, sometimes because something else you are using grew a new dependency of its own... the top-level app developer doesn't necessarily even know. 14:21:28 contyk, like we don't want to tell them they have to send an email announcing the change.. we want the infra to capture it and then be able to do "useful" things based on the event 14:21:31 sct, right now, we don't seem to pull in deps of deps automatically, i.e. every dep that sneaks in has to go past the (module) maintainer. 14:21:41 Info that "things are growing" can be also obtained from PDC, btw... you can compare previous versions of modules to see how many rpms it includes 14:21:55 We'd have a lot less trouble if it weren't that way ;)I 14:21:59 and I'd like to be able to balance the burden here 14:21:59 nils, yes.. by design ;) but we would like to automate it under certain conditions 14:22:07 langdon, ahh 14:22:30 we have so much data; you can generate all kinds of reports :) 14:22:43 langdon, so there are plans so that I could say "add component XYZ and all its deps that aren't satisfied by any of the module deps"` 14:22:44 ? 14:22:48 nils, basically it is done that way to solve the problem sct mentioned above .. but it doesn't need to be manual 14:22:56 good to hear 14:22:59 contyk, reports! 14:23:15 * langdon prefers printed and fed-ex'd 14:23:44 .hello ignatenkobrain 14:23:45 ignatenkobrain: ignatenkobrain 'Igor Gnatenko' 14:23:53 nils, the "plan" there is basically the module dep checker dominika has been working on.. just a sub-set use case 14:24:12 langdon: is there source code for that? 14:25:09 jkaluza, yes? but my hand waving does not always lead to easy links to code ;) 14:25:30 langdon: ah ignore, you mean for generating the dependencies... I thought about generating reports 14:25:44 * jkaluza did not switch the context fast enough 14:26:40 jkaluza, ah.. gotcha.. well, asamalik also has a visualizer.. and bpo did some of it.. so.. we have pieces.. but I guess what I am asking here, oh factory-2 team, where is that "actually" gonna live and can we start making those changes 14:26:55 so people stop writing one off scripts and we actually build it in the right place 14:27:42 hopefully it is going to be properly written ;) 14:27:54 ignatenkobrain, pshaw 14:28:18 I strongly recommend whoever will be writing *any* dependency resolution thing to talk with us (dnf team) 14:28:45 ignatenkobrain, ohh.. most of them i know of use dnf to do the "actual" resolution.. its just wrappers 14:28:57 langdon: no ;)_ 14:29:17 langdon, ignatenkobrain can give you any number of ways to do that wrong with dnf :) 14:29:22 ha 14:29:45 so hopefully this new depchase ignatenkobrain is working on will help us all 14:29:52 nils: langdon: most common is to do queries for package Requires and then query for something what provides this X 14:29:54 but it's not something langdon wants in the future, I think 14:30:02 well.. any which way, i think that is an easy problem to solve.. i think the "plan" is harder.. 14:30:04 it won't help you with monitoring dependency chain changes within modules 14:30:22 in 99% cases it is wrong ;) 14:30:27 contyk: yeah, I know 14:30:32 yeah, the question is not "what is the dep", more "where is it" 14:30:48 and why is it here now 14:30:50 I want also something better (like something what asamalik started doing) 14:31:12 nils: to know *where* you need to know *what* 14:31:22 and by queries you most probably will find wrong *what* 14:31:34 ignatenkobrain, listening to you, that problem is solved, we only need to use the right solution. 14:31:36 however, in many cases it works (but slow and not in all cases) 14:32:04 so.. threebean, jkaluza do we know where this goes? 14:32:13 ignatenkobrain, and to be honest, we can live with imperfect solutions for a while there :o) 14:32:17 nils: yep -- https://github.com/fedora-modularity/depchase/blob/libsolv/depchase.py#L308-L321 14:32:51 * jkaluza is reading backlog 14:33:09 anyway, if you want to do something quick -- I'm perfectly fine whichever things you do, but if we want to think about future -- we need to do it properly 14:33:41 I would love to see some visualisation grouped by existing modules and etc. 14:34:09 with ability to do things like "here we have alternatives, what will happen if I will choose different one?" 14:34:13 ignatenkobrain, it seems like this is a common issue, has dnf team thought about just offering a simple api that "works correctly" for people to use when trying to resolve? 14:35:38 langdon: when DNF has begun, no one thought about flexibility... There *is* some API which you could use for depsolving.. like dnf.Base.install("xxx") and then dnf.Transaction.list_installs() or such 14:36:08 for getting runtime requirements it is more than enough, for build-time it is not because thing is way more complicated 14:36:32 ignatenkobrain, ahh.. ok.. 14:36:33 I'm here also to find what kind of flexibility is needed and plan that for DNF 3.0 rewrite 14:37:00 ignatenkobrain, if that doesn't lead us too far, what is that much more complicated about build requirements? 14:37:54 ignatenkobrain: Wait, DNF is getting another *rewrite*? 14:38:04 once a year 14:38:06 sgallagh: it didn't have any rewrite yet 14:38:14 microdnf 14:38:17 ... 14:38:20 nils: if you want recursive BuildRequires, you are in trouble because many times you can't install dependencies for 2 source packages at the same time which means you have to do things iteratively which means you can't take advantage of auto-minimizing and checking decisions and etc. 14:38:45 langdon: it is very minimal wrapper around libdnf which is going to have "as minimum functionality as it can" 14:39:08 ignatenkobrain: Well, hopefully the recursive buildrequires won't be a long-term problem. 14:39:12 langdon: Well, the data about the built modules are in PDC (like for charts showing how many rpms the module includes over time, or even the dep tree of what module depends on what module or if the modules/dependencies are up to date) 14:39:14 That's more of a bootstrapping issue 14:39:20 ignatenkobrain, yeah, the recursion is the key point, right? 14:39:22 langdon: but we do not have anything displaying those in some nice way 14:39:31 Getting things into the build infrastructure for the first time. 14:40:11 it will still be useful for packaging new modules 14:40:34 langdon: I can help people with getting the data out of PDC or even changing the PDC or MBS so the data will be there, but not with writing the service showing the data 14:40:42 nils: you need to queue new src packages after resolving runtime requires for src packages (like a 10 iterations for bootstrap module) 14:41:40 sct, i think we could move on, yes? 14:42:55 langdon: Yes, I think we've spent enough time on it! 14:43:27 sct, langdon, anything you want to #info? 14:43:32 i was wondering if we should talk about shared userspace.. 14:43:36 nils, i do 14:43:38 one sec 14:45:01 ok? #info jkaluza & threebean to formally respond with where to put dependency information for rpms and modules so that we can start to build up tools around the information (tracking change, visualization, etc) 14:45:29 isn't that an action? 14:45:38 contyk, i was on the fence 14:45:57 slight wording change: 14:45:58 ok? #info jkaluza & threebean to formally respond with where dependency information for rpms and modules is and will be so that we can start to build up tools around the information (tracking change, visualization, etc) 14:45:59 isn't that all in PDC? 14:46:05 is it? 14:46:05 it is 14:46:12 but you need to answer this formally 14:46:14 ;) 14:46:15 :p 14:46:16 ha 14:46:21 you don't if that is "true" 14:46:24 I said it multiple times here :) 14:46:32 Can I suggest that maybe this would be a really good blog post? 14:46:38 [16:39] langdon: Well, the data about the built modules are in PDC (like for charts showing how many rpms the module includes over time, or even the dep tree of what module depends on what module or if the modules/dependencies are up to date) 14:46:46 i thought pdc just had the information about the composes themselves.. not the traceback on rpm deps 14:46:48 "How to monitor and retrieve module dependency data from PDC" 14:46:59 sgallagh: "How we get things done in Modularity WG" 14:47:09 * langdon entirely missed that line by jkaluza 14:47:14 contyk: No, I don't think we want to advertise that :-P 14:47:26 [16:40] langdon: I can help people with getting the data out of PDC or even changing the PDC or MBS so the data will be there, but not with writing the service showing the data 14:47:32 langdon: ^ that one followed 14:47:34 yeah.. caught that 14:48:05 ok.. so would visualization type stuff go in pdc as well? 14:48:13 or separate but fed from the data there? 14:48:18 no, PDC is just database with an API to store the data 14:48:21 separate, but fed from pdc. 14:48:24 ^ that 14:48:32 rigth.. ok.. so basically BPO.. 14:48:37 langdon: yes 14:48:49 but we have much more data in PDC than in the BPO times 14:49:10 does infra plan to include/support bpo (or similar) in the near future? 14:49:13 Sorry, BPO? 14:49:29 sgallagh: yet another service for monitoring things 14:49:34 langdon: I think it's not on our current TODO list in near time, threebean would know :) 14:49:35 sgallagh: "build pipeline overview" 14:49:40 ok 14:49:51 jkaluza, no.. that is YASMT.. ;) 14:49:53 it was presented at Flock in Krakow and then died 14:50:08 like the next day 14:50:18 ah 14:50:22 sgallagh, its meant to (originally) visualization the status of a module in infra 14:50:34 but it has similar UX problems to dnf.. like how do we represent modules 14:50:40 and .. got stuck on that 14:50:54 *visualize 14:51:20 ok.. so.. 14:51:24 ok, this is not on my roadmap for anytime in the near future. like jkaluza says, the data should be there. 14:51:52 and we're collecting more and more data over time 14:51:57 ?? #info PDC has all the dependency information needed to do things like track module changes, visualize deps, etc 14:52:11 yes 14:52:20 langdon: you can add me as a contact if someone wants to show the data and how to access them 14:52:27 threebean, but if someone else built "YA BPO" ;) .. would infra be able to support it? 14:52:40 yes 14:52:40 #info PDC has all the dependency information needed to do things like track module changes, visualize deps, etc 14:52:53 anybody can query PDC and listen for fedmsg 14:53:00 contyk, yes to what? ^^ 14:53:15 langdon: to your last question for threebean :) 14:53:32 contyk, ha.. thats not a good enough answer.. ;) 14:53:32 contyk: I have no idea if f2 is going to support bpo, that's up to threebean I think 14:53:54 langdon: it depends on the details of YA BPO implementation. 14:53:58 contyk: even when written by someone else :) 14:54:07 * langdon points out it is in the diagram .. therefore, it must be true 14:54:09 if someone goes to write a quick visualization, have them loop me and jkaluza in for advice early on. 14:54:28 on current f2.0 schedules, there will be no "proper BPO" before f27. 14:54:37 sorry I am late and too absent 14:54:39 langdon: It can also run on fed-mod.org for some time and still be helpful 14:54:39 #info modularity team will continue to consider some visualization tool for modules 14:54:57 dgilmore: we were just talking about how you will support a new, undefined service 14:55:02 jkaluza, right 14:55:11 dgilmore, in node.js! 14:55:15 contyk: sure, let me go find 100 volunteers to do it :) 14:56:23 ok.. i think we got what we needed.. will see if I can get someone to work on "new BPO" 14:56:39 langdon: to show it at flock 14:56:44 :D 14:56:46 langdon: and then kill it 14:56:47 lol.. good idea! 14:56:56 (for real, see if you can narrow that scope a bit...) 14:56:58 and maybe some build triggered scripts to do before/after checking 14:57:59 threebean, yeah.. i have it in my head i think.. need to write it down.. sct & I keep having trouble talking to people about the deps/relationships because it is too abstract.. so I am looking to solve that problem 14:58:15 plus the problem of not allowing things to "slip in" 14:59:20 ok.. i think that horse is definitely dead 14:59:25 should we wrap it up? 14:59:35 * dgilmore wonders if he can do three meetings at once 14:59:47 * langdon knows dgilmore is very talented 14:59:56 nils, ^^ 15:00:36 langdon, sure. Do we have anything else besides that? Something for open floor? 15:00:50 nils, well.. we are at time already 15:00:56 and I know i have another 15:00:58 meeting 15:01:01 langdon, right :) 15:01:15 in that case, if anything was missed, put it on next meeting's agenda ;) 15:01:20 thanks everybody! 15:01:21 langdon: :D not sure I am that talented 15:01:27 #endmeeting