Koji 1.23.0 Release notes¶
All changes can be found at pagure. Most important changes are listed here.
cli: clone-tag fails on failed multicalls
Previously some errors could have been hidden which could have led to missing content in target tag. Now we are failing on any error.
In the previous version we introduced unified
download_file method which also
checks downloaded content. There are minor updates improving this function
especially in reaction to errors.
cli: add –task and –source options to list-builds command
Builds now can be queried via
show log urls for failed tasks
When watching for task progress, failed tasks will also display links to relevant logs.
load plugins also from /usr/lib64
Fix of the bug which missed plugins in /usr/lib64 prefix.
clone-tag –config also clones extra info
Formerly cloning skipped extra values. Nevertheless, extra values are becoming an important part of config, so from now we are cloning them.
getRPMHeaders now fetch all headers by default
Simple change of library function default behaviour.
lowercase sigkeys during import/query where needed
Case of signature hashes is properly ignored.
tagChangedSince reacts on changes in extra
It is probably mostly used by kojira, but it can be of some interest to automation scripts.
Because of this, kojira will now correctly regenerate repos when tag extra values change.
getAverageBuildDuration sliding window
getAverageBuildDuration hub call returned an average for all builds for
the given package.
However, old data could be irrelevant to new versions of packages.
Now the call offers an
age option to limit the query (specified as number
The koji builder daemon now uses this option with a value of 6 months when
adjusting the weight of
getBuildConfig returns inheritance history
Additional option return inheritance chain for extra values and architectures. This behaviour is meant to be used with next change.
blocking inherited extra
Inherited tag extra fields could have been overridden but not removed. Now it can
be done via CLIs
editTag2 respectively which has a new
This call was never used in Koji.
Clients should instead use the
getGlobalInheritance call will be completely removed in Koji 1.25.
remove deprecated list-tag-history / tagHistory
Remove deprecated host.getTask call
builder: configurable TTL for buildroots
Previously these times were hard coded.
buildroot_basic_cleanup_delay setting controls how long the builder will
wait before basic cleanup of the buildroot (removing most content but leaving
the directory). The default value is two minutes.
buildroot_final_cleanup_delay setting controls how long the build will
wait before final cleanup of the buildroot (removing the rest).
The default value is one day.
Both values are specified in seconds.
For historical context on why there are two separate delays, see this bug <https://bugzilla.redhat.com/show_bug.cgi?id=192153>.
livemedia-creator: pass –nomacboot on non-x86_64
Additional option was needed for booting on non-x86_64 archs.
builder: handle btrfs subvolumes in ApplianceTask
BTRFS needed special handling in
ApplianceTask to work.
kojid: fix extra-boot-args option
Bug which prevented proper usage of
bootloader --append in kickstarts.
kojid: waitrepo on deleted tag
Previously, if a tag was deleted while a
waitrepo task was watching it, the
task would not notice and wait until the timeout expired.
Now it will fail when it detects that the tag has been deleted.
dropping python 2.6 / RHEL6 / yum support
One of the most significant changes in this release is dropping support for older python versions. Koji no longer supports python 2.6, and only supports python 2.7 for the builder and cli.
This effectively means ending support for RHEL/CentOS 6 builders. We are dropping yum support (it was used only with dist-repos) as RHEL7 and newer have full dnf stack.
report versions of components
There is a new hub API call named
getVersion (don’t confuse with
getAPIVersion) which returns the version of Koji that the hub is running.
koji library provides its version in
proton: persistent message queue
As qpid (or other amqps broker) can be unreachable for long periods of time we’ve implemented a fallback queue in the database to avoid lost messages. This behaviour needs to be enabled - see the documentation.
PostgreSQL requirements for partitioning
more info about permission system
setting rpm macros for build tags