Video summary
The presentation highlights the evolving relationship between Packit and Fedora CI, detailing how they collaborate to automate and streamline the release process for Fedora packages. Initially, these tools operated on an opt-in basis where maintainers would manually configure a Packit setup to receive notifications about release monitoring events. Upon receiving such alerts, a pull request would be generated for the maintainer to review and merge, followed by automated Koji builds and Bodhi updates. This manual workflow was designed to give maintainers full control while offloading tedious tasks like build automation. However, the project has since transitioned toward a more integrated model where Fedora CI acts as the default infrastructure, automatically reacting to pull requests in specific Git repositories to handle scratch builds and run extensive test suites by default.
A significant portion of the talk focuses on recent migrations and enhancements aimed at improving reliability and user experience. The team has successfully migrated workflows from legacy systems like Jenkins and Zuul to a unified environment powered by Packit, TMT plans, and Fedora CI. New features have been introduced to address common pain points, such as the integration of Log Detective, which analyzes failed build logs to provide summarized explanations rather than overwhelming users with raw data. Additionally, the suite now includes automated checks for RPM dependencies, SPDX license validation, and Fedora review standards. The presenters also discussed future plans, including a proposal for PR-based gating for Fedora, though they emphasized a cautious, step-by-step approach to ensure stability and gather community feedback before implementation.
Despite these advancements, the speakers acknowledged several areas where the system still requires improvement, particularly regarding user interface and visibility. Attendees expressed frustration with the difficulty of navigating complex failure logs and the lack of immediate visual indicators when specific tests or architectures fail. The team confirmed that efforts are underway to enhance the dashboard, potentially by implementing custom HTML views for test results similar to those used in RPM inspect, and to improve log readability. There was also a discussion about notification issues where Bodhi updates created under the Packit name might not properly alert maintainers, a problem the team is aware of and is investigating through configuration options or documentation updates.
In conclusion, the project remains actively maintained with a clear focus on expanding its capabilities while managing limited bandwidth for new feature requests. The primary current goal is to refine the handling of CVEs and ensure the core automation tools function reliably across different architectures. The presenters invited the community to engage via public metrics channels, issue trackers, and forums to share ideas and guide development priorities. They stressed that while resources are currently stretched, the team values community contributions and is open to guidance on how to best address usability issues, ensuring that the CI infrastructure continues to evolve in a direction that benefits maintainers and the broader Fedora ecosystem.
Read the full video transcript
Yes, so we can start. I I'm Christian I
am from the Fedora CI in this
presentation and I'm joined by not
Nicola but Matthew from Packet team.
And we're here to talk about
Packet Fedora and Fedora and like what
we've done all around.
So
we're just going to
go straight to the what we're doing with
what's Packet and like how it where how
it's related to Fedora.
And
>> All right and I will take over from this
point. So
um we will start describing the
what Packet does, what it already did
and how we are basically improving on
that and what other responsibilities we
are taking over.
So
um
we will start by the opt-in features
that were the first one that were
available. So what can we basically do
is automating the releases to Fedora.
How does it work? You basically opt in,
therefore you need to configure it. So
we set up a Packet config and what we
can do is that when we get a
notification from release monitoring, we
create a
pull request
that you should check and merge. And uh
apart from that
there are also other features built on
top. So after the merging
we can also do the koji builds for you
because you know that's the annoying
part. It's
basically a lot of manual steps that can
be easily automated and we also know
that a lot of maintainers do have some
scripts that automate already. So that's
one thing and also after the koji builds
are done, we can also do the body
updates.
And from probably
one of the most interesting features
maintainers are interested in are the
support for side tags, which is a
relatively new. It's still a bit painful
to deal with them. So, even with the
automation, it's really hard to work
around it.
And I guess that's for the
opt-in part. So, this is not uh
what's automatic. This is uh your
decision to do. And you should also be
in control of what's going on. So, even
if you create the pull request, you
should check it. You should be aware of
anything that you release into Fedora,
because that's your responsibility,
right?
And uh
there were there is also this initiative
that we're mostly
talking about today for this talk. And
this is a package as a Fedora CI, which
is the default. And what it does is that
we basically react on the open pull
requests in this Git.
It was implemented as part of the Fedora
change some time ago. And there has been
a lot of steps going through. There have
been some issues also implementing it.
So,
it's been a long process, but we are
slowly there.
And
uh
we are right now
basically most of the functionality is
implemented. So, when you open a pull
request in this Git, you can see that uh
you get the scratch builds done. And
there's also a lot of uh TMT plans
enabled by default, which is uh
contribution mostly by Christian.
So, you should check these They They
should basically help you with uh
with the
mundane tasks that you are tasked as the
maintainer. So, you should be checking
those.
And
following that, how the pieces fall
together will be described by Christian.
>> Okay.
Uh one thing that might be confusing is
like putting out like the word Packit
and the Fedora CI. Like how is it all
related? Because Packit is not Fedora
CI, Fedora CI is not Packit.
But basically you can see like a graph.
Do with what you want with it.
Uh the lower parts is what the Packit as
an opt-in does, like doing all the
upstream koji builds and stuff.
And then we upgraded so that it also
does something by default and that is
this Packit by Fedora CI. Does the koji
build and then it runs all of the test.
However, the tests are usually defined
by Fedora CI. We have like some uh tests
that are defined in TMT and then we run
RPM inspect, RPM diff, check, and
whatever other tools you would like.
We also have some of the more legacy
kind of workflows that go through a
Jenkins and like that when you would do
a body update, then it goes through
Jenkins and then the tests and then back
with all of the same workflows.
That is what we have and that's like
kind of the
uh
the line that we got between Packit what
the Packit does and what Fedora CI does.
So, Packit does all of the
communications, is the tool behind
everything.
And Fedora CI is like more on the
um the glue of like the tests and
everything.
Yeah.
>> And
what we have done more recently.
So, we have done like a lot of
migrations. So,
we had the all of those Jenkins runs
that now the
everything is run on Packit, the scratch
builds and TMT tests. We also we had
like some Zuul, those are also gone.
and everything is migrated.
It was not very
uh
straightforward because we forgot the
ELN scratch builds, but we got them in
the end.
Uh the more recent one is uh the changes
from pagure.io.
Those also came a bit quite fast, and we
just like scrambled and like
now all of the testing farm jobs are
also
given by Fedora CI as fast as we could.
Then, there's also like some custom jobs
that are done in Forge actions, and we
don't plan to touch them.
For now, or who knows.
Yeah.
And we've added more tests.
>> [sighs]
>> So,
the most recent one and most reliable, I
would say, is RM dep check. Thanks very
much, Adam, for this. Where is Adam?
>> Remember.
>> Okay, thank you.
And also license validate for SPDX
validations because we have noticed
sometimes the spec file like change, and
the license is no longer in SPDX.
Usually, that is available in RPM
inspect,
but it's better to like have it more
visible. Something is wrong.
And we're going to add like some more
things like a Fedora review and stuff.
If you have something interesting,
uh let us know.
>> Also, from the package side, I think
that has been enabled maybe 3 weeks ago.
We have a log detective integration,
which is also
kind of a collaboration with the log
detective project, which basically, what
it can do, it takes the logs from the
failed builds, as you can see on the
screenshot. So, we have a failed scratch
build for Rawhide. So, it takes the logs
and tries to summarize the issue, so you
can uh
instead of digging through loads of
logs, you can just see
uh summarized description of what the
issue might be.
Sometimes, of course, you will have to
dig in, but uh well,
you don't have much choice, right?
So, you can also see the example from
the dashboard on how the final result
looks. So,
it gives some analysis reference for the
log detective, also the ID of our job,
and then the explanation, which uh
well, looking at it looks quite readable
to me, instead of the long lines in the
logs.
And uh we intend to
expand this support and integration
further.
And uh let's go
into the future. So, what do are we
planning?
And uh this is one of the discussions
that happened yesterday. So, there was
also the proposal to discuss if we can
do something like a PR-based gating for
Fedora.
Um I'm not sure what was the outcome of
this discussion because I joined today,
so maybe Christian can provide some
context.
>> I can like probably summarize. We had
quite heated discussions, let's put it
like that.
But, we've come to an agreement that
we'll try to like do it everything step
by step. And the first step would be to
bring more of like what we have with
Bodhi and
try to like make the PR jobs more
reliable.
We'll probably do uh first some change
proposals to describe what we've heard
like in that workshop, and then
get some more feedbacks. So, keep your
eyes out, and we'll see
how things evolve.
>> Uh
yeah, and again,
more tests.
Please come to us.
So, we're trying to like make everything
as easy as possible. So, we have like
one repository. You can describe like
what test you have. Just to be a D&D
test.
And
we will like
try to like bring it in like step by
step.
And hopefully you won't have to like
deal with anything that is related to
Packet. Just like on the video side.
And everything would be smooth. Let's
see.
And another idea that came when we were
looking at Fedora review is like
to make to have a way to like
have less configuration files. Because
we have a lot. Like RPM inspect, RPM
lint, Packet, everything.
I don't know if you like to have all of
these in the package. Uh
Personally, I like the how my project
tunnel does it and set only one file.
But this is opt-in. So, like
I think would be nice, but like
would also be interesting to for others
to like pitch in and gather some
feedback. So far, we have the feedback
that they want to have the opposite.
Yeah.
And Jenkins.
For those who know Jenkins, then
we know why we don't like it. Anyway.
For the user, at the very least,
sometimes you see this kind of like
page.
But you don't know like, okay, how it
failed? How do I navigate?
Hopefully, we can get rid of it. So,
that's on our agenda.
And monitoring. Greg is not here, but
maybe like through the camera. Hi, Greg.
Thanks for everything.
We're We hope to like get all of this
kind of monitoring and like get
notifications on
uh the metrics and then if things are
getting like too out of hand, then we
can get know a bit
sooner. Right now it's everything
the monitoring side is like what is
monitoring. So, it's just
this
Hopefully we can get it soon. Yeah.
Um
>> All right. So, if you want to get
involved, uh the best uh thing to do is
to open up a discussion. We have a
public metrics channel. We also have a
lot of issue trackers, especially for
Packet. We have a lot of repos, so there
are many places to open issues.
Um right now we don't really have much
bandwidth for feature requests and
uh that many improvements, but we are
open for community contributions. On the
other hand, we would pretty much uh like
to discuss those beforehand cuz there
are also some PRs that sometimes get
open and have question of quality, so
yeah, it's better to discuss it before
just jumping in and uh wasting your time
in case it doesn't align with our vision
of what we are trying to achieve or it's
not really going in the right direction.
I'm not sure if you have something to
add to that.
>> Well, no, just like we have the in the
metrics channels, like contact us there.
We have like uh a discourse. Wherever it
is more comfortable for you, like just
get to us and like let us know uh what
to do better.
And
lots of questions, so.
>> Okay, Carolina. Uh do we have mics or do
I give a
That's easy.
>> Uh thank you. I'm a huge fan of CIs, uh
as you may know because I open uh also
issues to uh CI repos.
Uh my question is the So, great work.
Thank you. Improve on that. That's
That's great. That's all of it is great.
Do you have a single repository where we
can uh send our issues to?
Uh because there is a quite a lot of
jobs. There are scratch builds, tests,
uh license validate, and so on. I find
it hard to find the proper place to uh
open an issue to. So, if there was was
one place to to like
user to have user issues, that would be
great or some other easily discoverable
place.
>> So, yes, there is, but I forgot to put
it on slides. Sorry. So,
hopefully everybody knows about the
forge page. Then just go to CI and
tickets.
Just any questions you have, put it
there, and then we'll find out where to
put it afterwards.
>> Also, we will try to update the slides
and include the link there.
>> Hey. Uh so, you had mentioned that there
wasn't really room or resources to work
on some features, but I'm curious, is
there like
a list of like, you know, if you guys
did have the resources now, what were
the things that you would immediately
want to work on? And what would some of
them be now to help peak interest in the
room for people who would want to take a
crack at them?
>> Yeah, as for the package, right now we
are kind of uh shifting our focus
towards uh agentic handling of the CVEs.
So, that's the primary focus right now,
and therefore there's uh less people
focused on package itself because uh
um
as you could probably see from the
start, there are multiple moving parts,
like the package is also the upstream
automation, it's also the downstream,
and then there's also the Fedora CI
part, so
it kind of splits the people in between
those separate parts of the project. So,
yeah, like
the focus is right now definitely on
maintaining the packet working and
implementing what we promised for the
Fedora CI.
I hope that answered the question.
>> And just a short comment, like
in the same CI tickets or probably in
the project, you would also find the
project view and like what are our
uh
near-term goals and like long-term ones
that we're trying to
uh work on. So,
you could uh probably comment on those
if you want to get involved and then
we kind of guide you if there's any
need.
>> Hey. Um
let me start by saying that
this is getting better every day
and I thank you for that.
Like I remember when the only CI we got
what what like push it and see if it
builds. That was the CI.
And it's getting better. Like
it's still sometimes frustrating when
the jobs are failing and you don't know
why, but thank you very much for
improving this.
>> Thanks a lot.
>> My my two questions about the
improvements. First,
when when the job runs
or fails,
I want to be able to click it and go to
the failure.
I am overwhelmed by
Ansible
gibberish I don't understand
and finding the the problem
uh
or seeing where the tests are now. Like
oh my god, why the test is running for 2
hours? What's happening? I want to click
the log and see that it's stuck
somewhere. This is really hard
and being able to see it like it
happens, I don't know, in GitHub
Actions, for example. You click it and
you see where it is and you see what it
is doing from your perspective, not from
the infra perspective. That would be
awesome.
And another thing is
is it possible, once we migrate to 4G,
to generate
feedback from the CI jobs for particular
lines? So, for example, you would run
RPM inspect or RPM land or Fedora
review, and it would say, "On line 27 of
the spec file, you have a mistake." And
the UI would actually like display it
there.
Is that I think it should be possible. I
don't know if it's important, but it
would definitely be really cool. So,
just
I I see your face, so
the first thing was more important than
the second.
>> I mean, how much do you like log
detective? Maybe that would be the
place. Let's see.
>> Yeah, log detective
like deciphering what it is telling me
is slower for me than reading the
failure in the log, so I don't much.
It's a cool idea, anyway.
>> We do have the custom views that we're
trying to
implement.
>> So, there there is an attempt to sort of
fix this.
Um if you look at the RPM inspect is a
good example, cuz when you look at an
RPM inspect result, it gives you a kind
of HTML view with the table at the top.
And that's a generic feature in testing
farm, like any test can potentially
generate an HTML like that. And we've
added them for some more, right? Like
mini TPS has them. Right now, there
seems to be a bug where it's not getting
shown immediately when it should be, and
I know Christian's looking at fixing
that.
So, yeah, we are trying to fix it.
>> But like
>> getting the exact line would be a bit
difficult.
>> Yeah, I would just get back to the
question from you. Yeah, like if we had
the bandwidth, definitely a a of like UX
usability stuff. Like we are aware that
things can be improved. Like
functionally, I think we are on a good
level. But yeah, there are some tickets
also from Miro
about like per architecture displaying
of those or like uh
uh displaying right away if one of the
architecture fails and this kind of
stuff. So like those are small issues.
Uh like Christian is doing a lot of
great work into like putting stuff into
the shared repo like the plans.
Uh but I'm sure he would
enjoy if he had like someone to help him
with that.
>> Yeah, maybe just to reduce the worries
that like there was like term called
like maintenance. It feels like yeah,
you are going to deprecate it. So no,
it's basically like I would call it like
active maintenance
and slow moving forward because yeah, we
need this to work. We would like to like
push this forward. So
uh we might have like a reduced
capacity, but still we would we value VC
value and that's so no no worries on
that front.
Yeah, maybe there was this mention about
like the gating
discussion from yesterday. So if anyone
is interested, we would like to probably
continue this discussion as part of
Fedora CI SIG which is kind of being
resurrected. Actually, the discussion
between me, Christian, and Adam being
published. So
we will probably provide some info if
anyone wants to join us and we would
like to slowly move move things on.
>> We would love to have more people. It's
great.
>> Yeah.
>> conference to see a room full of people
at this talk because it's me and
Christian and Adam check on a video call
every week and we're like does anyone
care? Does anyone notice? Apparently, we
do. So it's great.
>> Yeah.
And if if you can like we can definitely
provide any support if anyone does not
know how to maybe contribute, we can
definitely guide guide you.
>> Do we still have time?
>> Okay, one more note.
So I noticed when Packet creates an
update, it's created under the Packit
name.
So, I assume it means that the package
maintainer is not subscribed to that
body update. I don't know if you can
confirm or not.
And so, it means that whenever a user
submits a feedback to body,
it's dev null.
The maintainer doesn't know.
And then that makes me sad because we QA
try to convince people to actually, you
know, put more feedback
to body update. So, is there some plan
to improve this somehow?
>> Yes, we are aware of this problem. And
if I recall correctly, we should have
somewhere in documentation a page where
you can configure the notifications from
Fedora messaging bus, I think.
So,
there is definitely a way to get to
those.
>> Okay, if it could be done automatically
by default somehow, maybe patching body,
you know, adding some default CC or
something, that would be awesome.
>> Yeah, that's a very good point. And
actually, we know about it. Sadly, not
all the services along the line are able
to let Packit act as on behalf of the
user. So, so there is not a simple way
how we can act as another user, maybe
picking like a main maintainer or
something like this if we would like to.
But there are like these missing
features on multiple levels. So, we need
Yeah, currently, it would be also nice
if we can pre-prepare the notification,
maybe set up for people to realize or
something like that, or at least make it
like click and you have like this in URL
all the filter or
something like that. Yeah, but
good point.
>> I mean, definitely, like if you have
ideas of how we can
solve this. We know it's an issue, but
we also don't really know how to do it
right now. Like, give us some feedback
or like ideas. That would help a lot.
>> We are out of time. Thank you very much.
>> Thank you so
>> [applause]