Koji 1.30.0 Release notes¶
All changes can be found in the roadmap. Most important changes are listed here.
Migrating from Koji 1.29/1.29.1¶
For details on migrating see Migrating to Koji 1.30
Security Fixes¶
None
Client Changes¶
Remove –paths option from list-buildroot
This option was not used and was deprecated. Now it was removed.
list-channels with specific arch
New filtering --arch
option.
download-task retry download file
Additional place where we retry download in case of temporary network issues.
Add a utility function to watch builds
For CLI plugin development we’ve separated wait_repo
function to library.
Rewritten download-task
download-task
command was rewritten to solve some long-standing issues. E.g.
downloading image scratch builds or some conflicting files. Command should be
backward-compatible but allows additional options like --dir-per-arch
and
additional filtering.
API Changes¶
Remove force option from groupPackageListRemove hub call
Deprecated unused option was finally removed.
Remove deprecated remove-channel/removeChannel
Same here - same functionality is available via disable-channel/editChannel
.
Use compression_type in addArchiveType
Archive files had available listing for some specific extensions (zip, tar).
Other archives couldn’t been displayed even if they had the same compression
format (e.g. jar which is hidden zip). Explicitly specifying compression type
via addArchiveType
allows also these other types to be inspected.
Library Changes¶
Fix rpm_hdr_size file closing
Simple fix for potential file descriptor leak in user scripts.
Authtype as enum and getSessionInfo prints authtype name
koji.AUTHTYPE_*
were converted to enum like other koji.*
constants. It
unifies the usage + prints human-readable strings instead of numeric IDs.
parse_arches allows string and list of arches
Utility conversion function now accepts more types than before.
System Changes¶
Server-side clonetag
Major rehaul of clone-tag
command. It was completely removed from CLI-side
and everything happens at hub now. It is immensely faster in real workload (for
big tags from hours to seconds). Nevertheless, we’ve lost some functionality -
typically verbose mode is no more possible as everything happens in one
transaction now, so there is almost no text output. We believe it is worth the
speed improvements. There are also very minor semantical changes (e.g. event ids
for separate steps) which shouldn’t be noticed by vast majority of users.
If target tag doesn’t exist, things are even more faster as we don’t need to check what is there, etc.
New API calls related to this behaviour are now available: massTag
, snapshotTag
,
snapshotTagModify
. Especially massTag
could be used by many admins as it
is basically batch call of tagBuildBypass
(‘tag’ permission needed) dropping
need of tagBuildBypass
multicall overhead.
Note, that this is breaking change. If you use new client with older hub, you’ll not be able to run clone-tag command at all. In such a case we would recommend temporarily using older client (1.29.1 - e.g. installed via pip if it is not available as rpm)
Drop old indices
Few unused old indices could still exists in some deployments. Migration script will drop them.
Correct getAverageDuration values for most GC builds
getAverageDuration
was not making much sense for packages which had also
imported content. Now we ignore zero times for imported content getting better
estimation of real koji builds.
Consistence pre/postPackageListChange sequence
If packageListAdd
ended with no action because package is already in the
list, only prePackageListChange
callback was run. In such case no callback
should be run.
Check release/version format in cg_import
Failed builds could have had non-sense in release/version. It was never true for completed builds as koji wouldn’t allow such build to finish. Anyway, it was confusing to see such items in failed builds list, so we’ve denied it from the beginning.
Expect dict for chainmaven builds
Regression fix for chainMaven
API call which was refusing correct input from
1.29.
Builder Changes¶
Catch koji.AuthError and bail out
kojid and kojira now fail on authentication errors and don’t try forever. Anyway, daemons will be restarted via systemd (possibly loading updated certificates, keytabs, …) so it could help in some situations.
Don’t propagate SIGHUP ignore to child processes
Some packages are testing SIGHUP behaviour (e.g. cpython) in their test suite. Previously we’ve been blocking SIGHUP in child processes (mock), so it needed some care from packagers. There is no need to do that, so we’ve dropped this behaviour.
Beautify logged commands issued by koji
In few cases (e.g. createrepo) koji logs very long command lines. They are now wrapped to 80 characters for easier log reading.
Don’t crash in _checkImageState if there’s no image.os_plugin
In some cases ImageFactory tried to tear down the VM even in case there wasn’t right code/plugin for that.
Web Changes¶
archivelist and rpmlist raise error when imageID is unknown
Don’t crash on non-existing IDs.
Set SameSite and Set-Cookie2
We’ve added these http headers to increase the security.
Convert data to string in escapeHTML first
Better rendering of some non-textual (int, datetime) values.
Plugin Changes¶
proton: save messages when connection fails
Further improvement of handling message bus issues. Some types of errors were not treated as a connection problem (DNS resolution) thus losing messages.
kiwi: fix arches check
Regression fix.
Documentation¶
Increase unit tests