Fedora Package Update? Assess its impact in Copr

Karolina Surma

About this talk

  • Practical approach
  • Applicable immediately for Python packages
    • ...with tweaks on others
  • No deep dive

Package update

Prepare, push to Rawhide, profit! (?)

Cooking the distribution

buildable and installable RPM package

mock/ Fedora CI / Zuul CI

...well integrated into the rest of the system

impact check

COPR is a build system

My update

  • Removed the `emoji` module from python-rich
  • 32 packages require python3-rich on buildtime
  • 22 packages require python3-rich on runtime

How many of those packages will stop to build?

Prerequisites


                        $ dnf install \
                            fedora-packager \
                            fedora-repos-rawhide \
                            copr-cli \
                            moreutils-parallel
                    

repoquery

Search through the repositories


						$ repoquery -q --repo=rawhide{,-source}

						# for a released Fedora it's slightly different
						$ repoquery -q --repo=fedora{,-source} --releasever 38
					

repoquery

Discover what comes out of your package

repoquery

Build and run time dependencies

repoquery

Discover what requires your package to build

Copr

FAS account + API token for CLI interaction -> https://copr.fedorainfracloud.org/api/

Create a new Copr repository

Add the updated package

Build the package

Add the dependent packages

Build the dependent packages

What failed?

Which failures are related to my update?

Results evaluation

Browse the build logs - manual step 😿

Find packages that pin the dependecy to a certain version

Further resources

Guide containing more details about impact checks

https://github.com/fedora-python/pull-request-review-guide

Copr user documentation

https://docs.pagure.org/copr.copr/index.html

This presentation

https://befeleme.github.io/devconf-2023

Thank you

Questions?