09:08:00 <nardasev> #startmeeting <Modularity: Why, where we are, and how to get involved> 09:08:00 <zodbot> Meeting started Wed Aug 3 09:08:00 2016 UTC. The chair is nardasev. Information about MeetBot at http://wiki.debian.org/MeetBot. 09:08:00 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 09:08:00 <zodbot> The meeting name has been set to '<modularity:_why,_where_we_are,_and_how_to_get_involved>' 09:08:08 <nardasev> #meetingname flock2016 09:08:08 <zodbot> The meeting name has been set to 'flock2016' 09:08:27 <nardasev> a few years ago, Rings proposal – we thought we should reconsider how the Fedora distribution works 09:08:40 <nardasev> we realized the rings don't work 09:09:09 <nardasev> if you are doing your retirement planning, you're thinking where you want to invest your money 09:09:15 <nardasev> they make trust funds 09:09:23 <nardasev> that show what I want to talk about 09:09:50 <nardasev> movie website, read-only, just for 3 months, you wanna use the latest and greatest tools 09:10:05 <nardasev> if it breaks or gets hacked, it's easy to recover 09:10:14 <nardasev> ERP has typically a website 09:10:29 <nardasev> but it costs millions to set up and install, match your business process 09:10:43 <nardasev> you want to use the oldest, most stable software you can get 09:10:49 <nardasev> because it takes millions to recover 09:11:16 <nardasev> so the rings were getting at we want different usecases for different software 09:11:22 <nardasev> we also want different release cycles 09:11:48 <nardasev> we now have usecases with a bunch of humans who want to do something 09:11:55 <nardasev> then we have lifecycles to match them 09:12:01 <nardasev> that's why things don't work 09:12:16 <nardasev> I can't draw a diagram of this because it's too different 09:12:19 <nardasev> WHAT IS A MODULE 09:12:28 <nardasev> a thing that is managed as a loical unit 09:12:40 <nardasev> a thing that promises an external, unchanging API 09:13:22 <nardasev> a thing that may have many, unexposed, binary artifacts to support the external API 09:13:45 <nardasev> a module may "contain" other modules and is referred to as a "module stack" 09:14:14 <nardasev> the modularity project is using the Program logic model 09:14:26 <nardasev> by Matt Miller (previous talk) 09:15:00 <nardasev> it's on the modularity page an Fedora wiki (the slide about the approach) 09:15:01 <nardasev> fedoraproject.org/wiki/Objectives/Fedora_Modularization,_Prototype_Phase 09:15:07 <nardasev> Base runtime 09:15:27 <nardasev> the kernel has a lifecycle potentially independent of web server 09:15:35 <nardasev> idea of having a life time stack 09:16:00 <nardasev> base runtime has userspace and kernel in it 09:16:28 <nardasev> we are still a bit fuzzy on how we articulate this 09:17:17 <nardasev> showing metadata about a module on slide 09:19:13 <nardasev> license, xmd, dependencies, references, profiles (1 default usecase), components (rpms: api: - bash, packages: bash: rationale: A popular debug) 09:19:21 <nardasev> showing a module stack 09:20:16 <nardasev> showing what you offer (httpd, php, maria) but not saying much about what it contains 09:20:30 <nardasev> What does the license mean? 09:21:04 <nardasev> the license in the module stack is the license for the module file, and sublicense for the inside of the module 09:23:13 <nardasev> we're trying to disconnect the binaries from the packager 09:23:34 <nardasev> software collections may be a packaging format that modules can be delivered in 09:25:50 <nardasev> there is an explicit API set of binaries 09:26:55 <nardasev> package manager can directly affect an individual package, but we don't want them to have to 09:27:29 <nardasev> we may have mechanisms with dynamic loader 09:27:43 <nardasev> we are making the ability to shoot yourself in the foot way better 09:28:17 <nardasev> we expect that Fedora will have policies stopping people from shooting themselves in the foot so often 09:28:47 <nardasev> we have to play with it some more 09:30:49 <nardasev> workshop tomorrow at 3:30 09:31:08 <nardasev> what would you say it means for the srpm to be in the module 09:31:13 <nardasev> essentially, nothing 09:31:33 <nardasev> ease of documentation 09:31:38 <nardasev> a receipt for build 09:31:52 <nardasev> WHERE WE ARE AT 09:32:09 <nardasev> modularity working group, we meet weekly 09:32:34 <nardasev> we have a dnf plugin that lets you manipulate modules 09:32:59 <nardasev> we have an alpha version of the module build pipeline 09:33:14 <nardasev> implemented an alpha of the pipeline visualization 09:33:26 <nardasev> ability to "coalesce" modules for testing 09:33:35 <nardasev> kicked off Base-runtime 09:34:17 <nardasev> we have a bunch of infrastructure and content work 09:34:32 <nardasev> there is one module we want to be responsible for: the base runtime 09:34:52 <nardasev> with kernel, messy, necessary for all the other things 09:34:59 <nardasev> then we are making examples 09:35:25 <nardasev> and we are consultants and advocates for building modules, rather than owning it 09:36:44 <nardasev> showing a "simple" visualization of a module pipeline 09:36:57 <nardasev> includes Koji, punji 09:37:09 <nardasev> as much as we can we are trying to not change the infrastructure 09:37:49 <nardasev> CLIENT TOOL 09:38:58 <nardasev> #dnf search module kernel 09:39:15 <nardasev> fm = fedora modularity 09:39:59 <nardasev> every module has its own repo 09:40:33 <nardasev> a module is really just a metadata 09:40:56 <nardasev> the metadata points to rpm or other ways of installing 09:41:48 <nardasev> there are severe problems 09:42:07 <nardasev> we are not inventing new stuff, we are treating existing stuff differently 09:43:18 <nardasev> we added profiles to dnf 09:44:32 <nardasev> showing stuff in the terminal 09:44:48 <nardasev> web server demo 09:45:39 <nardasev> in one case, we want to install from production, in other case want to install from the user 09:46:08 <nardasev> dnf module search lamp 09:47:47 <nardasev> i can put lamp f25 on an f24 machine 09:49:12 <nardasev> fundamentally, there is no such thing as dnf update 09:49:27 <nardasev> each minor security update must be a new module 09:52:05 <nardasev> user experience is inder construction 09:52:08 <nardasev> *unde 09:52:11 <nardasev> *under 09:52:49 <nardasev> each module has a repository of its own. In suse, you have projects that can inherit different projects 09:53:12 <nardasev> it gets really complex really fast 09:53:15 <nardasev> we need CI 09:53:31 <nardasev> for lamp, we specify a rough idea what we need for it 09:53:49 <nardasev> and then we have variants. When somebody asks for it, we can give it 09:55:38 <nardasev> updated php 09:55:53 <nardasev> dnf module search testmodule 09:57:26 <nardasev> #endmeeting