Smarter package maintenance with Packit (Flock 2025)
🎯 Goal
The main goal of this workshop is to set up a complete Fedora release pipeline for your package using the following Packit jobs:
pull_from_upstream(alternativelypropose_downstream, if you already use Packit in upstream)koji_buildbodhi_update
By the end of this session, you should have a working configuration that automates these steps in the Fedora package release lifecycle.
🛠️ Instructions
Prerequisites
Ensure you have a Fedora package you maintain/co-maintain. Ideally, pick one that has a pending upstream release, as this allows trying things out easily.
Setup
For detailed setup instructions, you can follow the documentation. You can find a brief summary below.
Create a working branch
Before creating the configuration file, review this section on how you'll be trying out the setup.
Based on that, create a new branch in your dist-git repository (it's also recommended to do this in fork) for your Packit configuration
(e.g., packit-setup).
Create the Packit configuration file
Packit uses a YAML configuration file, named (.)packit.yaml, to define its behavior. This file needs to be placed in your dist-git repository,
in general in the rawhide branch, but for experimentation during the workshop in a new branch, to be able to try running the jobs from an open pull request.
Then, the simplest ways of creating the config:
Use
packit dist-git init(requirespackitinstalled locally, e.g.,dnf install packit)- In your cloned dist-git repository, switch to the target branch.
- Run the command:
packit dist-git init
Use our template
- Manually create a
.packit.yamlfile in your target branch. - Copy the content from the Downstream configuration template and adjust it to your needs.
- Manually create a
Push your config
Push your config to the dist-git repository target branch and open a pull request.
Monitoring of the package
For the pull_from_upstream job to work, the monitoring needs to be enabled for the package, see details.
Test your setup
Now, verify that the Packit jobs are working correctly. Everything on how to test it out is described here.
Check the Packit service dashboard for detailed feedback and logs from your Packit jobs, more information also here.
📚 Video materials
For a visual walkthrough and more in-depth explanations of the Packit jobs and concepts, please refer to our previous workshop materials: