Hello,
recently (on Feb 19) a major Copr update took place. It was announced,
but release notes weren't attached. Because a list of all changes
would be long and boring,
I rather decided to present you some highlights of the release.
- Allow per-package chroot-blacklisting by wildcard patterns
You can configure chroot blacklist in package settings. It is applied when
building a package from default source in web UI, copr-cli or via
webhook. This feature
is useful in cases when you have multiple packages per project and
some of them
are not supposed to build successfully in all enabled chroots. The
configuration
supports patterns - for example, to not build a package on EPEL, set
chroot blacklist to `epel-*`.
- Live SRPM build log for custom method
When building SRPM via custom method, builder log is now live.
- Modularity fixes
For quite some time it is possible to build modules in Copr, but
last few months it was not
possible to properly install them with DNF them on user machines due
to changed
expectations on a repository. This issue is resolved and it is possible to
install modules as expected.
- Project forks page
We have added a small number next to the "Fork this project" button.
It indicates
how many forks the project has. Click on it to see a list of the
forks and their
owners.
- Build into sub-repository within the project
When submitting a build in copr-cli, you can now specify the project in the
following format `owner/project:reponame` which allows you to build into
a specific sub-repository within the project. It works the same way as the
automatized builds from pagure pull requests.
https://pagure.io/copr/copr/blob/copr-cli-1.78-1/f/cli/man/copr-cli.1.asc...
- API function to wait until builds finish [BZ#1258970]
https://bugzilla.redhat.com/show_bug.cgi?id=1258970
There is a common use case among users, to submit a build via API
and then wait
until its finished, to do some business logic. Yet, we didn't provide any way
to wait on a build and users had to implement it themselves. Now it
is possible
to use `wait(...)` function for this. For example:
from copr.v3 import Client
client = Client.create_from_config_file()
build1 = client.build_proxy.create_from_file(...)
build2 = client.build_proxy.create_from_scm(...)
finished = wait([build1, build2])
print("Builds have finished {}sucessfully".format(
"" if succeeded(finished) else "un"))
- API errors with correct status codes
The Legacy API used just two status codes, 200 for success and 500 for error.
Because the APIv3 is based on it, this flaw remained to its first
release. Now,
the APIv3 finally returns the correct status codes.
- Speed up several slow frontend pages
Including the homepage which loaded slowly mainly because of the recent
builds box on the right side. The select query for this box was improved
and the time required for its execution halved.
Jakub