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/docs URI 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-copr API has been enhanced to support the exist_ok=True argument 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 like project: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 *.repo download 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, like opensuse-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_CLAIM configuration option. For example, they may choose preferred_username if 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-backend logic now periodically checks if the resalloc ticket isn’t in a FAILED state. This previously caused builder hangups in confusing situations.

  • Copr Frontend compatibility with Werkzeug/Flask 3, this includes the fix for fedora-messaging consumer (pagure events).

  • The copr-rpmbuild got several fixes for the new mock and mock-core-configs in the DNF5 era.