fedpkg 1.46 Release Notes

Released on March 19, 2025

This release requires rpkg >= 1.68-1. rpkg-1.68 release notes

Python compatibility

fedpkg works with Python 3.6, 3.9, 3.12 and 3.13

What’s new in fedpkg 1.46

Not everything is actually new. The next description covers changes since last 1.45 release. Since then some of features/fixes were already released as patches.

Various modernizations, including dropping use of python-fedora and support for bodhi-client < 6

Adam Williamson: This PR is motivated by the desire to drop python-fedora usage as we want to get rid of that library, but there were various logical follow-ons from that. It is only currently used to handle an error that may be raised by version of bodhi-client before 6.0.0, but bodhi-client 6.0.0 is the oldest version that can possibly authenticate against production Bodhi any more, so there is not really any point supporting older bodhi-client any more …

More details: #560

  • Update check_bodhi_version to check for >= 6.0.0

  • Modernize and clean unittest imports

  • Replace and update use of deprecated ‘linux_distribution’

  • Drop all usage of six

  • Drop support for bodhi-client <= 5

  • Add py313 environment as that’s current

Add support for new EPEL10 major/minor schema

These changes are required to support EPEL10 new schemas [0]

Things that changed

  • Support for reading major/minor version on the epel name through the code [#44304]

  • Fixed assert_valid_epel_package to work correctly with EPEL10 [rhbz#2005139]

  • Changed load_rpmdefines method to get correct information regarding EPEL10.X branches

More details: #544

Get EPEL10 minor version from koji when it’s not available from the branch name

  • Handle rhel runtimes when minor version exists in disttag - If the runtime is known, and is different from the target, we need to unset the _runtime_disttag

  • Improvements on string parsing

  • Get macros from epel-candidate build target.

  • Fix EPEL10 branch expression to cover 2 or more digits.

  • Use minor value from koji when no minor in branch name

Fixes: #559

Fork a package using anonymous auth

When the repo is cloned anonymously (fedpkg clone -a), fork should work in the ‘anonymous’ mode as well. Fork API call is the same, but the added remote has a different address = https protocol instead of ssh.

Fedpkg detects whether fork is executed upon an anonymous repo.

The User can force anonymous mode using (fedpkg fork -a) parameter.

request-repo: add --onboard-packit argument

This is part of this Fedora change: AutomatedPackitOnboarding

Don’t allow to request repositories in modules/ namespace

There are no new modules in Fedora distgit. Do not auto-request EPEL x.y modules and ELN modules either.

fedpkg request-branch epel10.0 won’t file SCM requests for:

  • New Repo for “modules/<name>”

  • New Branch “epel10.0” for “modules/<name>”

Dynamically exclude Rawhide branch from fedpkg branching

Updates the query to the Bodhi to dynamically exclude the Rawhide branch from the list of Fedora branches, ensuring that Rawhide is handled correctly without being hard coded.

Original Releng issue: #12311

Clone epel10 branches with clone -B

Running fedpkg clone -B relies on the configured branch regex to determine the branches to clone. The current regex doesn’t match EPEL branches with more that one digit. We recently started having epel10 branches, and in the future we’ll also have epel10.0, epel10.1, and so forth. This adjusts the regex to account for these branch names.

Remove mbs.fedoraproject.org scopes from git cred helper

The fedpkg git credential helper defaults to asking for the https://mbs.fedoraproject.org/oidc/submit-build scope in the default config file. It seems that the mbs infrastructure has been torn down and this scope is no longer valid:

Original issue: #11990

Other small fixes

  • Unittests - check that auth tokens aren’t written to world-readable files

  • Fix unittests when building for ELN target

  • releases-info should always show the same order

  • Update expired token exception instructions

  • Python 3.13 environment and renew testing image

  • fedpkg set-pagure-token <token>: update expired token exception instructions

  • Add setuptools to dependencies for Python 3.12+ - Because of pkg_resources; setuptools is no longer available by default in Python 3.12

  • Fix tests on EPEL 9/10.

  • Fixing unittests for py36 - use the older PyPI pycurl library for this environment.

  • gitignore the name-version-build/ directory created by fedpkg prep/local - this directory is created by RPM 4.20+

  • Fix URL of Bodhi in staging - added https://

  • Fixes missing key in distro.os_release_info()

  • Debug output: Don’t print the branch name after dash when there is no dash

  • Don’t use hatchling on python 3.6

  • Fix unittests after creating the project in hatch

Change Logs

  • request-repo: add –onboard-packit argument (nforro)

  • Fork a package using anonymous auth - #574 (onosek)

  • Check that auth tokens aren’t written to world-readable files (git)

  • Don’t allow to request repositories in modules/ namespace (miro)

  • Do not auto-request EPEL x.y modules (carlwgeorge)

  • Dynamically exclude Rawhide branch from fedpkg branching - #566 (samyak.jn11)

  • Fix unittests when building for ELN target - #589 (onosek)

  • Python 3.13 environment and renew testing image (onosek)

  • releases-info should always show the same order - #569 (onosek)

  • Update expired token exception instructions (astra)

  • Clone epel10 branches with clone -B (carlwgeorge)

  • Update expired token exception instructions (ferdnyc)

  • Add setuptools to dependencies for Python 3.12+ (ferdnyc)

  • Fix tests on EPEL 9/10. (romain.geissler)

  • Fixing unittests for py36 (onosek)

  • gitignore the name-version-build/ directory created by fedpkg prep/local (miro)

  • Handle rhel runtimes when minor version exists in disttag (dherrera)

  • Add tests cases for runtime_disttag removal when working with epel10 (dherrera)

  • Improvements on string parsing (dherrera)

  • Get macros from epel-candidate build target. (dherrera)

  • Fix EPEL10 branch expression to cover 2 or more digits. (dherrera)

  • Use minor value from koji when no minor in branch name (dherrera)

  • Fix minor requirements for EPEL10+ in test (dherrera)

  • Do not auto-request ELN modules (yselkowi)

  • Fixes missing key in distro.os_release_info() (onosek)

  • Update check_bodhi_version to check for >= 6.0.0 (awilliam)

  • Modernize and clean unittest imports (awilliam)

  • Replace and update use of deprecated ‘linux_distribution’ (awilliam)

  • Drop all usage of six (awilliam)

  • Drop support for bodhi-client <= 5 (awilliam)

  • Add py313 environment as that’s current (awilliam)

  • Fix URL of Bodhi in staging (nils)

  • Extend load_rpmdefines to work with EPEL10+ (dherrera)

  • Add EPEL10+ url pattern on assert_valid_epel_package (dherrera)

  • Test url usage in assert_valid_epel_package (dherrera)

  • Add EPEL10 branch name cases as valid (dherrera)

  • Test for valid EPEL branch names (dherrera)

  • Don’t print the branch name after dash when there is no dash - #554 (miro)

  • Don’t use hatchling on python 3.6 (dherrera)

  • Remove mbs.fedoraproject.org scopes from git cred helper (kj)

  • Fix unittests after creating the project in hatch (onosek)