Koji 1.20.0 Release notes¶
Announcement: We’re going to drop python 2 support for hub and web in koji 1.22. Please, prepare yourself for deploying python 3 versions of these. Both are already supported and this is the next step in retiring python 2 codebase.
All changes can be found at pagure. Most important changes are listed here.
Migrating from Koji 1.19¶
For details on migrating see Migrating to Koji 1.20
Security Fixes¶
None
Client Changes¶
Add basic zchunk support for dist-repo
Fixes: https://pagure.io/koji/issue/1198
The dist-repo
supports new options --zck
, which enables createrepo’s
zchunk generation, and --zck-dict-dir
, which indicates the directory
the builder that contains zchunk dictionaries to use.
Add repo waiting options to the build command
New options --wait-build
and --wait-repo
for the build
command
cause the build to wait for a repo regeneration.
This is similar to using wait-repo
+ build
in succession, except
that the repo monitoring is handled in the build task itself.
Remove title option for livemedia-creator
livemedia-creator dropped --title
option, so we are.
Add –disabled option to list-hosts command
This option is simply an alias for the existing --not-enabled
option.
Unify return values for permission denied
Some places were using print
+ return 1
, some parser.error calls.
Let’s unify it to parser.error
.
Library Changes¶
Raise error when we have not configuration
Previously, Koji would proceed with only the coded defaults, which is no longer sensible.
Sanity check on remotely opened RPMs
Sometimes RPMs are not downloaded correctly into buildroot and it results in weird errors. A simple check was added to detect corruption of downloaded files.
Include profile name in parsed config options
Fix behaviour to be in line with docs examples.
Make rpm import optional in koji/__init__.py
koji/__init__.py
is being used more and more often in virtualenv. As rpm is
always the pain here and most users don’t need those specific functions, we can
make it optional (and require only on spec level). Distribution via PyPi will be
less painful.
API Changes¶
Default krb_princs value changed to True in getUser
This argument was added in PR #1648, with a default value of False
. It is
used to control whether the krb_principals
field is included in the result of
getUser
.
Drop buildMap API call
It was designed for GC, but it is not used anymore.
New addArchiveType API call
Adds a new hub method for inserting new archivetype records.
Raise GenericError on existing build reservation in in CGInitBuild
Previously a database exception was propagated. Now, it is raising a more informative exception.
Web UI Changes¶
Browsable api
The web ui now offers API introspection similar to the koji list-api
command.
Cluster health info page
New web page showing current usage of build cluster.
Show build link(s) on buildContainer task page
This is a temporary solution to the problem of connecting the builds and tasks generated by the containerbuild plugin <https://github.com/containerbuildsystem/koji-containerbuild>.
Human-friendly file sizes in taskinfo page
Builder Changes¶
Provide for passing credentials to SRPMfromSCM
Builder’s conf can now contain scm_credentials_dir
option, where can be
stored authentication certificates or other data for use inside the mock when
building SRPMs for fetching data from authenticated SCMs.
Log kernel version used for buildroot
Use –update for dist-repos if possible
Improves speed of new distrepos.
Don’t send notifications in case of deleted tag
In some cases (sidetags) tag can be deleted before untag notifications are sent, so don’t send them if tag is already deleted.
Check existence of maven symlink
In recent Fedora’s maven is alternatives symlink. Original check now failed even if maven was installed.
System Changes¶
QueryProcessor: fix countOnly for group sql
WebUI returned an error on Users tab after multiple kerberos realms per user were introduced.
Limit distRepo tasks per tag
Introduces distrepo.cancel_others
extra flag for tags. If enabled, new
distRepo task will cancel previous non-finished ones leaving only new one.
Fix CGRefundBuild to release build properly | PR: https://pagure.io/koji/pull-request/1853
Fixes for refunding failed/cancelled build.
Use BulkInsertProcessor for hub mass inserts
Speed up mass inserts.
Use comma delimiter for allowed_methods
The allowed_methods
configuration option for the save_failed_tree
plugin
now expects comma-separated values, as the example config indicates.
Fix issue with listing users and old versions of Postgres
Utilities Changes¶
Add koji-gc/kojira/koji-shadow to setup.py
Koji utilities are now installlable from PyPi.
Garbage Collector¶
Speedup untagging/moving to trashcan
Rewrite of how koji-gc handles untagging. Multicalls are used now and some speedup of related API calls is also included.
DB Sweeper¶
New options to clean database
Last release introduced new tool koji-sweep-db
which is used to clean the
database. Few new options were added now like cleaning scratch builds, CG
reservations, notification tasks or unused buildroots.
Note, that these new features are more technical preview. You need to use
--force
flag to run them for a good reason. They can a) take insane time to
finish b) remove data you never wanted to delete. Always test these commands in
safe environment, before running them in production.
Cleaning sessions and reservations are still safe and they are primary goals of the script.
Kojikamid¶
A few fixes for kojikamid
kojikamid (the daemon that runs in VMs) needs a few updates to be consistent with changes to the the Koji data model, and Python 3 compatibility.
Documentation Changes¶
Lot of documentation was added in last release in API and also in docs pages.
Documentation
API
CLI