Highlights from 2024-03-07 release
Updated client packages are shipped in Fedora 38, Fedora 39, Fedora 40, EPEL 7, EPEL 8, and EPEL 9 Bodhi updates.
Enhancements
The Copr build system now allows users to SSH into the Copr workers. If your build fails and you require a hands-on builder experience, you can retrigger the build (with an uploaded public SSH key). Once the worker is assigned to your task, the automation grants you root permissions over SSH. This feature is currently available only in the web UI. To experiment, debug - open the page with the failed build and use the “Resubmit and allow SSH” button. Please read more in the SSH access to Copr builders blog post.
The Copr API documentation provided at
/api_3/docsURI has been updated, and almost all the API endpoints are now documented.The Copr team is working on the AI project Log Detective, which aims to help with build failure analysis. Although the project is still under development, you can contribute to the community by helping gather a build failure training dataset. This Copr release adds a convenience button that redirects you to the Log Detective site, pre-filling the site with the build failure logs to simplify the data gathering process.
The
python-coprAPI has been enhanced to support theexist_ok=Trueargument when creating Copr projects, with this default:def ProjectAdd.post(..., exist_ok=False):
If used with
True, the call will report “success” even if the project already exists. This helps with CI job concurrency, where multiple jobs try to ensure that the project exists.
Bugfixes
Temporary projects are again correctly removed (the corresponding cron job has been fixed).
The
copr build <copr dir> <srpm>command has been fixed to support creating custom directories likeproject:custom:foo. The logic first checks that such a directory exists or at least can be created, and only then proceeds with the (potentially large) SRC.RPM upload. A corresponding race condition was fixed that sometimes caused broken repository preparation and subsequent build failures, requiring a “manual createrepo task”.The
*.repodownload counter has been fixed to properly increment without race conditions.The per-package “chroot denylist” feature has been fixed to allow you to specify the literal
.symbol in the pattern (some chroot names contain the.symbol, likeopensuse-leap-15.5-*).
Features/Changes for administrators
The new release allows the administrator to specify which claim from OpenIDC UserInfo should be used as a Copr username using the
OIDC_USERNAME_CLAIMconfiguration option. For example, they may choosepreferred_usernameif they know that the values from their OIDC provider will be unique.The default configuration of Copr services is now configured to only keep 6 weeks of logs, instead of 13.
The
copr-backendlogic now periodically checks if the resalloc ticket isn’t in aFAILEDstate. This previously caused builder hangups in confusing situations.Copr Frontend compatibility with Werkzeug/Flask 3, this includes the fix for
fedora-messagingconsumer (pagure events).The
copr-rpmbuildgot several fixes for the newmockandmock-core-configsin the DNF5 era.