CentOS Stream: RHEL development in public
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61807 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2023473 / 542
2
5
10
14
15
16
22
24
27
29
31
36
43
48
56
63
74
78
83
87
89
95
96
99
104
106
107
117
119
121
122
125
126
128
130
132
134
135
136
141
143
146
148
152
155
157
159
161
165
166
168
170
173
176
180
181
185
191
194
196
197
198
199
206
207
209
210
211
212
216
219
220
227
228
229
231
232
233
236
250
252
256
258
260
263
264
267
271
273
275
276
278
282
286
292
293
298
299
300
302
312
316
321
322
324
339
341
342
343
344
351
352
354
355
356
357
359
369
370
372
373
376
378
379
380
382
383
387
390
394
395
401
405
406
410
411
413
415
416
421
426
430
437
438
440
441
443
444
445
446
448
449
450
451
458
464
468
472
475
476
479
481
493
494
498
499
502
509
513
516
517
520
522
524
525
531
534
535
537
538
541
00:00
Gamma functionEnterprise architectureSoftware developerSubsetStreaming mediaConfiguration spaceProcess (computing)Revision controlSpacetimeSet (mathematics)BitDiagram
02:10
FlagStreaming mediaSource codeInformationDifferent (Kate Ryan album)FlagSource codeDiagramProgram flowchart
02:25
Maxima and minimaStreaming mediaMereologySoftware developerProcess (computing)Software testingMathematicsProduct (business)Physical systemComputer animation
03:44
Function (mathematics)Computer networkEuclidean vectorUtility softwareRevision controlStreaming mediaInformationValue-added networkMobile WebBridging (networking)Physical systemInterface (computing)Configuration spaceVolumeTask (computing)Source codeDefault (computer science)Process (computing)Software bugStreaming mediaLogic gateComputer animation
04:16
Streaming mediaMathematicsEnterprise architectureControl flowCartesian coordinate systemWeb portalWebsiteQuicksortStability theoryStapeldateiRevision controlSoftware bugSoftware maintenanceVideo gameSoftware developerSoftware testingBuildingCycle (graph theory)Computer animation
07:28
Extension (kinesiology)Service (economics)Medical imagingCycle (graph theory)Video gameService (economics)Revision controlArrow of timeLatent heatMathematicsTelecommunicationStreaming mediaTouch typingSoftware maintenanceDiagram
08:28
Interior (topology)Streaming mediaEnterprise architectureStreaming mediaProper mapSoftware bugBuildingGroup actionDiagramOpen setPoint cloudMathematicsData conversionPhysical systemSoftware developerEnterprise architectureSoftware maintenanceStability theoryMultiplication signProduct (business)Computing platformSoftware testingUniform resource locatorProcess (computing)MereologyComputer animation
11:47
Streaming mediaProcess (computing)Phase transitionBranch (computer science)Streaming mediaDiagram
12:20
Enterprise architectureStreaming mediaSource codeMathematicsDifferent (Kate Ryan album)Diagram
13:01
Streaming media
13:43
Service (economics)Diagram
14:52
Streaming media
16:45
Program flowchart
Transcript: English(auto-generated)
00:05
All right. Hello, everyone. Thanks for coming. My name is Adam. I work for Red Hat. And I do CentOS Stream for day job. I'm the CentOS Stream lead. And I want to talk to you about CentOS Stream and how we, Red Hat, use it to get work done on RHEL,
00:24
and how you can use it to participate, but also build your stuff. And we'll see. OK, so just to set the context, before CentOS Stream, we did something like this. When we created RHEL, Enterprise Linux, I'll keep saying RHEL, we took what's in Fedora.
00:41
That's where the innovation happens. And then we had a long process to build RHEL out of some of that. And when that got out, somewhere later, CentOS Linux happened. And yeah, that was interesting. But the problem was that when you find something in that rebuild, you can't really change much,
01:03
because the goal was to be a rebuild of RHEL. So what we did with CentOS Stream, we kind of switched it a little bit. Now the process is like, there's more steps. So we have Fedora. Still, there's nothing changing about Fedora. That's still the primary place where innovation happened.
01:22
That's the upstream. We have something called Fedora ELN, which is like a subset of the content, rebuilt with RHEL configuration. And that's the next major RHEL release. So if you go out and look at Fedora ELN, that's what RHEL 10 is sort of right now.
01:41
Then CentOS Stream happens. This is where the development of RHEL happens in public. And if you talk to Red Hatters, they will sort of somehow combine these together, CentOS Stream and RHEL, because this is really our development space. And I'll have more details later. So this is tracking the next minor version of RHEL.
02:01
And this is what you can use, but you can also contribute to it. And yeah, we'll get into details. So this is basically, if you heard Fedora ELN set of Stream, this is what it is. And I have some more details here. This is Fedora, Fedora RHEL height sources. This has its own sources, and this is the real build flag. And you can also see,
02:20
there's a different amount of packages. This is more information there. Okay, so let's talk about how we get work done, or how you can get work done in CentOS Stream, how that works. So there's this diagram, and we're not gonna go box after box, no worries. But I just wanna demonstrate that you see
02:41
that we have bugzilla, where work tracking happens. There's a merge request coming to the GitLab. And then basically everything is sync. So the upper part is the CentOS Stream infrastructure. This is RHEL internal infrastructure. And as change happens,
03:01
it gets built in both, it gets tested in both, and when that passes test, both get released further through the process, and finally it gets into both RHEL and CentOS. There's something called CentOS Development Compose and Production Compose, which is basically, when this compose is sort of like a repo,
03:23
and ISO, and container images, it's just like a snapshot that you can consume. And yeah, there's one that happens after the test that happens every day. And then the verification, this is like an internal process paperwork and stuff, and then that goes through the Production Compose.
03:41
And I can even show you how that happens in the system. So this is what a bugzilla bug looks like. Someone was adding, this is like half a year ago, a multipath TCP to RHEL. So they created this. They did the merge request in GitLab. Everything was visible publicly. And they submitted a build first in CentOS Stream.
04:03
That got through, got built in RHEL as well. If I scroll down, there's tags. That was like the multiple steps, the gate pending candidate. That's how you can know where it's in the process. And it basically got through that. And now if you're using CentOS Stream, you already have it installed
04:21
because that's half a year ago for that change. But this is basically the flow, how it works. Let's talk about contributions now. For some context, I'm starting with RHEL 8. Red Hat publicly said that we'll do minor releases of RHEL every six months,
04:40
and major releases of RHEL every three years. This is what we've been doing eight and nine. Something called ABI, I got that as a note for myself. With RHEL we make some promises to customers about ABI guarantees and support statements, et cetera.
05:03
Basically whatever you would expect from enterprise OS. So we don't wanna break things for customers in the major version. And this will influence what contributions we can take. So the easiest one is bug fixes. If you find a bug and you can fix it,
05:21
feel free to do so. We'll be very happy to take it, test it, and if it doesn't break things for the customers, merge it, get it in. And that's the easiest way to contribute. You can also contribute stable updates from upstream and by stable, that gets to the promises.
05:41
Basically as RHEL ages, it gets further from the upstream because we need to keep things sort of stable in the ABI way. So we still release updates, like every single minor release, but most of them are backwards. So again, welcome to contribute updates that are stable, we'll again fix them,
06:02
fix them, test them, build them, and get them in. But yeah. And back ported features here, this is what I mentioned basically already. I just have a slide for that. Okay, what we can take is the ABI non-compatible updates.
06:21
And if you're wondering about details, there's the document called RHEL Application Compatibility Guide. You can find it online on Red Hat's website. And it'll explain exactly how it works. But most packages have the ABI stable for the entire 10 years of RHEL life cycle. And we take it very seriously at Red Hat because customers build applications
06:41
and they want them to run forever without changing them. So we don't want to break this for them. So please don't submit things that would break ABI. We would need to politely explain why not and reject it. That's what you can contribute to Fedora ELN, for example. We'll get to that. Okay, I have maybe for docs, typos, man pages.
07:04
There's a thing for customers. If they go to the customer portal and they have a bug with documentation, they can report an issue and get it fixed that way. Otherwise, we tend to batch them together so they land all at once. So maintainers can focus more on actual feature development of bug porting and stuff.
07:23
So these are welcome, but they might take longer to get in because of this. And this is a detailed image of the life cycle. If you want to get your change into a specific minor version of RHEL,
07:41
we don't have a way in the Bugzilla to really communicate it, but you can get in touch with the maintainer. You can sort of anticipate. By the way, minor release, this is the dark blue extended update support. This is the light blue and then update services for SAP. So even like we're done with minor, we still might be supporting it for up to four years.
08:02
And the arrows is like where center stream work happens. So it tracks all of them and just changes make it to the minor releases. And yeah, you can sort of anticipate like where it gets, but there's no communication like where exactly. So if you really need to, you would need to talk to the maintainer.
08:23
Yeah, we have this for eight and there's also seven. There's like a lot of things going in the background. And if you want to contribute, let's talk about how. So you can open bugs in Bugzilla. You can test stream. If you find something, you can open bugs
08:41
and hopefully get it into the next minor release. You can open merge requests in GitLab, create a GitLab account, but first please make sure that you have a bug so you start the conversation with the maintainer so they know what's coming and they can also help you with the change.
09:00
And then you can track the change. This is again from the diagram. We have these three tags in Koji, which like we use to track the process. And you can preview things in the development compose or the production compose base where it gets. You can get the composes on this URL
09:23
and there's slash production slash development, but otherwise they go to the mirror. So if you go to CentOS Org, you will find CentOS Stream there. Let's have a look at use of CentOS Stream. Of course you can use it to preview rel test features
09:43
that are in development and see what's coming before it actually gets to rel. I think one of the interesting part is too that you can use it. If you build something on top of rel, you can use CentOS Stream in your CI to preview how it would work on the future rels
10:01
so you can get ready for the next minor release. And one advantage compared to a rebuild is that if you find a bug in CentOS Stream, you can actually get it fixed for you and get it in rel proper. So this is what we're trying to do there.
10:21
And this is actually one of the most interesting for me. So we have special interest groups. There's like the Hyperscale SIG, there's Cloud SIG, there's the K-Mode SIG, and they work in the CentOS Stream community and they build their own stuff on top of CentOS Stream so they have like a stable enterprise switch platform.
10:42
But again, compared to a rebuild, they can actually influence what's happening. They can submit changes, unbreak things for them and get it into rel proper. I know the Hyperscale SIG, they're maintaining bunch of stuff before they actually merge it. And there's really interesting stuff going on. You're welcome to come in and create your own SIG
11:00
and use the community build system to build everything and CentOS Stream is definitely there as the primer build targets. So that was mostly CentOS Stream. I have something about CentOS Stream 10 and rel 10 as well. Basically, we saw this diagram and with rel 10 we're right here.
11:21
So if you want to contribute towards rel 10, get it in Fedora rowhide, which means it gets in Fedora ELN if it's within the rel package set. And at this point, you can change ABIs, you can do whatever Fedora would normally do through Fedora changes.
11:40
So this is like the most flexible time of contribution towards CentOS Stream 10 and rel 10. And later when we get to do stream, this is from rel 9, but the process is the same. We have rowhide and Fedora ELN.
12:00
Imagine this like get branches and Fedora rowhide is the rebuild ELN, follows it and we branch CentOS Stream from that and then later start doing rel. And yeah, we call that bootstrap, that phase that will be happening somewhere later. And yeah, that's how it happens.
12:21
So you can get your changes to Fedora ELN right now. And that was a different.