fedora_base_design_working_group
LOGS
14:15:56 <haraldh> #startmeeting Fedora Base Design Working Group (2015-09-14)
14:15:56 <zodbot> Meeting started Mon Sep 14 14:15:56 2015 UTC.  The chair is haraldh. Information about MeetBot at http://wiki.debian.org/MeetBot.
14:15:56 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
14:16:00 <haraldh> #meetingname  Fedora Base Design Working Group
14:16:00 <zodbot> The meeting name has been set to 'fedora_base_design_working_group'
14:16:05 <haraldh> #chair haraldh msekleta jreznik dgilmore vpavlin masta lnykryn
14:16:05 <zodbot> Current chairs: dgilmore haraldh jreznik lnykryn masta msekleta vpavlin
14:16:25 <haraldh> bconoboy, want to continue from last time?
14:16:42 <bconoboy> howdy
14:16:44 <masta> hey folks
14:16:49 <lnykryn> hello
14:16:49 <haraldh> hi
14:16:53 * masta grabs coffee - brb
14:16:57 <msekleta> hi!
14:17:17 <bconoboy> we are talking ring 0?
14:17:21 <haraldh> yep
14:17:43 <bconoboy> Sure...
14:17:55 <bconoboy> So, since the last meeting 2 weeks ago we had a little thread on devel@fp.o
14:18:05 <bconoboy> "Fedora Ring 0 definition"
14:18:41 <bconoboy> I still have a couple messages from last week to reply to, but thusfar the primary reply seems to be a combination of two questions:
14:18:48 <linuxmodder> linuxmodder
14:18:57 <bconoboy> 1: How does this interact with $EXISTINGAGREEMENT
14:19:18 <bconoboy> (Where that might be decisions made by base earlier, critical path, etc)
14:19:31 <vpavlin> Hi
14:19:48 <bconoboy> 2: Why do this?  In other words, please don't define this in isolation of what policies you'd like to see changed, take them at the same time.
14:20:08 <bconoboy> These are both great questions/observations
14:20:50 <bconoboy> So I thought it might be helpful to imagine what possibilities open up if you have 2 rings instead of 1
14:21:25 <bconoboy> Hopefully you all have some ideas on this
14:21:28 <bconoboy> I have a few..
14:22:09 <bconoboy> For me, I'd like to see a Base compose, for all architectures
14:22:31 <bconoboy> x86_64, i686, armhfp, aarch64, ppc64, ppc64le, s390x
14:22:39 <bconoboy> With a minimal install image
14:23:09 <bconoboy> The schedule for this compose would be ahead of the existing Fedora schedule
14:23:38 <bconoboy> Let's say, hypothetically speaking, the base compose gets completed 2 weeks ahead of each of the traditional milestones (alpha/beta/ga)
14:24:20 <bconoboy> In this way all the editions have a little extra time to handle their edition-specific bugs sitting atop a stable platform.
14:25:08 <bconoboy> If we do this for a couple releases and it goes well a few other interesting possibilities become more realistic
14:25:18 <bconoboy> Like having the base release live longer than the editions
14:25:34 <bconoboy> instead of 2 releases + 1 month, maybe we go 3 releases
14:25:36 <bconoboy> or 4
14:26:07 <bconoboy> Would take a lot of discussion, but it's a *much* lower cost to support ring 0 long term than the entire stack
14:26:12 <haraldh> That's a lot of maintenance burden for base
14:26:37 <bconoboy> could be- depends on policy and what people actually want
14:26:39 <haraldh> because if we don't reuse base for the other spins
14:26:54 <haraldh> a lot of parallel versions of base are to be maintained
14:27:06 <bconoboy> why wouldn't we use base for the other spins?
14:27:24 <bconoboy> the idea here is that base is a stable thing which spins can use, rely upon
14:27:26 <haraldh> reuse old base version for new spins
14:27:46 <haraldh> say base is on a 2 year cycle and spins on a half year fast paced one
14:28:04 <haraldh> spins = variant of base + stuff
14:28:08 <bconoboy> right
14:28:26 <bconoboy> the main idea here is that the base is supported for as long as longest spin/edition
14:28:45 <haraldh> and that would be a burden for fedora base
14:28:57 <masta> hrm...
14:29:03 <haraldh> if it would release as often as the other spins
14:29:15 <masta> I'm thinking of how to push updates for only base, but stop for everything else.
14:29:35 <haraldh> still you have to backport
14:29:45 <bconoboy> this is part of why you want the base to be really small
14:29:50 <haraldh> and not change API/ABI
14:30:04 <haraldh> sure
14:30:12 <haraldh> _but_
14:30:34 <haraldh> wouldn't it make sense to do base releases on a longer cycle?
14:30:45 <haraldh> then?
14:30:47 <bconoboy> Anyway, the main idea here is to move from a 2 release + 1 month support term for everything to a more flexible model by consensus of the community
14:31:25 <bconoboy> Yeah, that's certainly a possibility- I guess it really depends on whether it's useful to have the base be rebased twice a year or if we're doing that for the benefit of further up the stack
14:31:26 <masta> right now I'm not sure rel-eng has the facilities to just updates base, and ignore the remaining parts that would suspend support after say 6 months.
14:31:30 <bconoboy> certainly gcc is on a 1 year cycle
14:31:54 <masta> perhaps it could be made to work, will have to get back to you folks about that
14:32:03 <bconoboy> masta: lots of retooling needed for ideas like this
14:32:45 <bconoboy> It's probably a good question to send back to E&S: Do we need a 6 month release cycle for base?
14:33:32 <bconoboy> We've been on a 6 month cycle for a really, really long time- who is benefiting and suffering from it is not at all clear
14:33:55 <bconoboy> In any case, you create 2 rings, you open up the possibility of running them on separate schedules
14:34:35 <haraldh> I can see e.g. base being on a 9 month cycle and the rest on a 6 month
14:35:11 <bconoboy> that'd be pretty interesting, like 4x8 plywood with 16 on center stud spacing
14:35:25 <bconoboy> So, what do you all think? Other opportunities 2 rings opens up?
14:35:32 <haraldh> or 6 and 4, if you want to live faster
14:35:33 <masta> or even different schedules for the 2nd rings
14:35:48 <masta> say a longer life for a server variant
14:36:01 * vpavlin got disconnected without noticing it:/ Will have to read logs later..
14:36:02 <bconoboy> server could be slower, desktop faster
14:36:17 <bconoboy> the core requirement is that base live as long as the longest living official edition
14:36:33 <bconoboy> can't have server living longer than base for instance- what if there's a bug in glibc?
14:36:47 <masta> makes sense
14:36:50 <haraldh> so, we would have to know the duration of the longest living edition
14:37:01 <haraldh> then we have the base lifetime
14:37:11 <haraldh> then support that *3
14:37:18 <bconoboy> currently the longest living edition is 2 releases + 1 month ;-)
14:37:23 <bconoboy> So it's not really a question yuet
14:37:25 <bconoboy> er yet
14:38:29 <bconoboy> I could easily see the workstation crew wanting a < 13 month support window
14:38:46 <haraldh> sure... we don't care :)
14:39:05 <haraldh> it's only about the long variants
14:39:32 <masta> Well, there is a care in terms of hosting so much stuff. The mirrors feel the pressure hosting so much content.
14:39:49 <masta> and the churn of the content
14:39:54 <bconoboy> On the other hand, how many features are going into what would be the base compose where folks higher up the stack or relying upon some rebased functionality?  Because I'm picturing the base (ring 0) compose having more restrictions on rebasing post-release
14:40:24 <haraldh> systemd?
14:40:28 <haraldh> kdbus maybe?
14:40:49 <bconoboy> Yeah
14:41:13 <bconoboy> Probably just need policy with regard to api/abi breakage.  Hopefully tooling like libabigail can help with this
14:41:28 <haraldh> don't forget dbus interfaces
14:41:50 <bconoboy> do we have a regression checker for those?
14:42:34 <haraldh> not that I know of
14:42:48 <bconoboy> pity
14:43:03 <bconoboy> Anyway, that's my brain dump of the morning.
14:43:11 <haraldh> I mean, the interface can easily be introspected
14:43:23 <haraldh> names, arguments, type of arguments
14:43:28 <bconoboy> It would be helpful to discuss next steps though- just talking about it on the mailing list won't get us further
14:43:31 <haraldh> but of course not the functionality
14:43:40 <haraldh> yes
14:43:43 <masta> ok, well thanks Brendan. It's good to share the vision =)
14:44:16 <haraldh> next steps, set the definition of ring 0 in stone via a wiki page
14:44:32 <masta> haraldh: yuck
14:44:40 <masta> haraldh: I mean, great!
14:45:09 <bconoboy> I think we also need to get commentary on the impact of ring 0 to existing policy
14:45:20 <bconoboy> We touched on a couple already:
14:45:36 <bconoboy> 1. Critical path definition/packages (Are we saying "base should own these"?)
14:45:48 <masta> so where do tool-chain things go in relation to ring-0? the things needed to build ring-0 ?
14:45:54 <bconoboy> 2. Release cadence/coupling
14:46:25 <bconoboy> toolchain (gcc) is definitely ring 0
14:46:32 <haraldh> haven't we already agreed that https://fedoraproject.org/wiki/Critical_path_package is to broad for base?
14:47:10 <bconoboy> we've agreed on lots of things- defining ring 0 breaks existing agreements
14:47:12 <masta> haraldh: looking at a graph of what is required to build the kernel, it's distressingly too much for ring-0
14:47:18 <bconoboy> for instance, critical-path-kde, we don't want that
14:47:28 <bconoboy> critical-path-base we do
14:47:29 <haraldh> masta, yes, that was my point of creating it :)
14:47:32 <bconoboy> but is it enough?
14:48:18 <bconoboy> Remember last time we talked about this, ring 0 can use packages in ring 1 to build, but needs to be able to install with just ring 0 packages
14:48:29 <bconoboy> Oh, that reminds me, something else from the list discussion:
14:48:59 <bconoboy> Ring 0 policy needs to be at the source rpm level, which is relevant for packages that have many sub packages
14:49:38 <bconoboy> But the question came up, what about the case where some subpackages require a huge breadth of other packages that wouldn't normally be in ring 0?
14:50:10 <haraldh> like php/java
14:50:21 <bconoboy> The way this could be sorted out is by having the ring 0 compose include some but not all sub-packages
14:50:55 <masta> hum...
14:51:10 <bconoboy> Some sub-packages of a ring 0 source rpm might not be in the ring 0 compose.  We could call it ring 0 prime (langdon), ring 0 optional, or just stuff it into ring 1
14:51:18 <masta> so that means there is two ring-0's, one from source package perception, and another from compose.
14:51:33 <bconoboy> Because the core requirement is that the ring 0 compose pass repoclosure
14:51:33 <masta> the compose case is then really what defines ring-0
14:51:43 <bconoboy> That's half of it
14:51:52 <bconoboy> there's also the source rpm policy
14:51:56 <bconoboy> It really needs to be both
14:52:05 <bconoboy> But the handling is slightly different
14:52:06 <haraldh> wouldn't the new rpm weak dependencies help here?
14:52:13 <bconoboy> maybe?
14:53:06 <haraldh> I mean, in theory we could make it that way.. but does it make sense?
14:53:10 <bconoboy> I don't think so though- recommends isn't strong enough if the package really doesn't work without the recommended package
14:53:24 <haraldh> only for the sake of repoclosure on all ring0 subpackages?
14:53:26 <bconoboy> So you *could* use weak dependencies, but you'd have to lie
14:53:41 <haraldh> exactly
14:53:50 <bconoboy> Not a good starting point for ring 0 definition :-)
14:53:55 <haraldh> :)
14:54:11 <masta> hrm... repoclosure in situation where sub-packages are pruned, it can probably work if only leaf nodes are removed.
14:54:11 <bconoboy> Have to step away from the keyboard for a minute, brb
14:56:01 <masta> we run repoclosure as part of the compose
14:56:42 <masta> at least in pungi4 case, the new compose tool.
14:57:07 <bconoboy> back
14:58:26 <bconoboy> Right, so, that's something we'll have to sort out
14:59:01 <bconoboy> Going back to the beginning, there's a real question of "why define ring 0 separate from ring 1?" that needs answers
14:59:27 <bconoboy> Some answers include having a base compose with a different schedule that provides a more reliable foundation for spins/editions
15:00:12 <bconoboy> Likewise having a new threshold for a minimal secondary arch acceptability state- reinforcing the secondary/primary as an aspect of each spin/editions
15:02:01 <bconoboy> I have another conference starting now so I need to drop- thanks all
15:02:08 <haraldh> thanks bconoboy
15:02:08 <haraldh> !!
15:02:48 <masta> bconoboy: ok, I'll talk to releng about some of these ideas, and the implications on our tooling (what would need changing), and try to scope it out.
15:02:59 <masta> thanks dude
15:03:57 <masta> longer lasting releases will cause more work for rel-eng, but I suppose work always increases =(
15:05:05 <bconoboy> it's really just pushing updates for a bit longer
15:05:24 <bconoboy> if base releases come out with less frequency there is possibly less work for rel-eng
15:05:26 <masta> We probably will need to look over using crit-path or something else to cover ring-0, not sure it needs it's own special term
15:06:47 <masta> yep, and hopefully things in the base/ring-0 don't churn too much
15:10:01 <lnykryn> by the way is this against whole "first" motto of fedora. If we release ring 0 not that often and support it for longer, than I will be stuck for example with old systemd and missing cool new features
15:10:33 <bconoboy> really depends on the rebase policy- systemd might be in a position to update post-release
15:10:44 <masta> lnykryn: yes and no, there will still be a 6 month new-hotness for ring-0
15:11:50 <masta> if there is no abi break, I'm sure things can update.
15:12:38 <masta> we have a few more minutes to go, and seem to be fizzling out.
15:12:53 <masta> haraldh: thanks for hosting the meeting! :)
15:12:57 * masta wonders off
15:13:10 <haraldh> still, we need a mechanism to ensure backwards compat
15:13:16 <haraldh> for e.g. new systemd
15:13:23 <haraldh> dbus interfaces, etc.
15:13:50 <haraldh> critical
15:19:19 <msekleta> haraldh, any idea what that would be?
15:19:40 <haraldh> hm?
15:19:44 * msekleta would love to have easy way how to write integration tests for fedora components
15:20:07 <msekleta> haraldh, I mean "mechanism to ensure backwards compat"
15:20:19 <haraldh> libabigail
15:20:32 <haraldh> and a tool, which records all dbus interfaces
15:20:36 <haraldh> and compares it
15:20:45 <haraldh> like rpmdifftool for dbus
15:22:22 <msekleta> it makes sense to have something along the lines of rpmdiff for critical components
15:22:39 <haraldh> yep
15:23:01 <tflink> fwiw, there is an abidiff task in progress for taskotron
15:23:05 <msekleta> could be integrated with bodhi
15:23:53 <msekleta> tflink, is it enabled by default, I mean as part of AutoQA?
15:23:56 <tflink> we're waiting on the libabigail folks for the actual tool to run ATM
15:24:13 <tflink> msekleta: the current plan is to run it on all builds in taskotron, yes
15:25:35 <msekleta> haraldh, btw do you know how to gather introspection data of dbus service which uses sd-bus?
15:25:49 <msekleta> without actually running the thing, of course
15:25:58 <haraldh> without? no
15:31:08 <haraldh> #endmeeting