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