Koji 1.35.0 Release notes ========================= All changes can be found in `the roadmap `_. Most important changes are listed here. Major change is this release is kojira rewrite and repos on-demand. Migrating from Koji 1.34/1.34.1 ------------------------------- For details on migrating see :doc:`../migrations/migrating_to_1.35` Security Fixes -------------- None Client Changes -------------- **Don't try to resolve server version for old hubs** | PR: https://pagure.io/koji/pull-request/3891 Some CLI commands have extended capabilities with newer hub versions. But if they were run against really old version (one that doesn't report its version), they've failed completely. Now the correctly use older API signatures. **New CLI command list-users** | PR: https://pagure.io/koji/pull-request/3970 | PR: https://pagure.io/koji/pull-request/4008 | PR: https://pagure.io/koji/pull-request/4051 As we're more using user groups in policies, ``list-users`` with ``--perm=`` and ``--inherited-perm`` options now could help with finding and debugging such users. ``--type`` option would limit NORMAL/HOST/GROUP user types. **Fix remove-tag-inheritance with priority** | PR: https://pagure.io/koji/pull-request/4000 Better handling of ``remove-tag-inheritance `` command variant. **Taskinfo CLI and webUI info message why output is not in the list** | PR: https://pagure.io/koji/pull-request/4075 Informational messages for missing logs and task outputs. API Changes ----------- **Anonymous getGroupMembers and getUserGroups** | PR: https://pagure.io/koji/pull-request/3912 First call was previously requiring ``admin`` permission. As the same information is available through other paths this requirement was dropped. Alse new ``getUserGroups`` API call was added. **Better default handling for getMultiArchInfo** | PR: https://pagure.io/koji/pull-request/4164 Simple API default update. **Allow None in repoInfo for backwards compat** | PR: https://pagure.io/koji/pull-request/4192 Web UI had in some cases problems to corectly display taskinfo page because of the older regression. System Changes -------------- **Keep schema upgrade transactional** | PR: https://pagure.io/koji/pull-request/4141 Simple fix to migration scripts. Indices are now created as part of the transaction as it doesn't take much time even in big deployments. **Backup signature headers in delete_rpm_sig** | PR: https://pagure.io/koji/pull-request/3944 Signatures can be deleted by admin-only call. It is anyway a good practice to store even deleted signatures, so we can audit such situations. They are now stored in build directory. **Stop lowercasing the policy failure reason** | PR: https://pagure.io/koji/pull-request/3953 Simple update to not convert messages in policies. **Let ``tag.extra`` override tag arches for noarch** | PR: https://pagure.io/koji/pull-request/4013 In some cases noarch packages can't be built on some architectures. As there is no first-class support for such routing, tag can be modified via ``extra.noarch_arches`` key. **Better index for rpm lookup** | PR: https://pagure.io/koji/pull-request/4026 Improved index after addition of draft builds. **Auto arch refusal for noarch tasks** | PR: https://pagure.io/koji/pull-request/4060 Scheduler improvement for noarch tasks which could have been assigned to builders without access to relevant buildroot architecture repos. It would speedup correct assigning of noarch tasks in some cases. **Fix errors in channel policy** | PR: https://pagure.io/koji/pull-request/4066 Channel policy can refer to non-existent tags, etc. Policy would have failed even in case where there would be other valid rule. **Sort checksums before inserting** | PR: https://pagure.io/koji/pull-request/4073 ``create_rpm_checksums`` could have triggered deadlock. This change would prevent it. **Handle volumes when clearing stray build dirs** | PR: https://pagure.io/koji/pull-request/4092 ``recycle_build`` ignored some files and left them on non-default volumes instead of deleting. Newly created build then already contained some files and failed while trying to recreate them. **Drop unused DBHandler class** | PR: https://pagure.io/koji/pull-request/4095 Logging class which is not used anywhere. **Stop suggesting that users need repo permission** | PR: https://pagure.io/koji/pull-request/4097 ``regen-repo`` is the correct permission which should be granted to users. ``repo`` is a privileged one and is mostly intended for kojira. **CG import updates** | PR: https://pagure.io/koji/pull-request/4113 Content generator API now allows uploading subdirectories instead of just flat structure. ``CG_import`` policy gets also ``version``, ``release`` and ``btypes`` fields for additional checks. **Fix tz mismatch issues with various queries** | PR: https://pagure.io/koji/pull-request/4115 Further unification of timestamp/timezone usage. **RetryError is subclass of AuthError** | PR: https://pagure.io/koji/pull-request/4117 Small fix for unreachable code. **Provide tag data in policy_data_from_task_args** | PR: https://pagure.io/koji/pull-request/4121 More data available for policy tests. Builder Changes --------------- **Use dnf5-compatible "group install" command** | PR: https://pagure.io/koji/pull-request/3974 Dnf5 dropped support for ``group install`` command so, we've made a dnf4/5 compatible changes. **Split out buildroot log watching logic** | PR: https://pagure.io/koji/pull-request/4023 Rewritten code for handling mock's logs. It now allows to fetch more logs than before. **Update getNextTask for scheduler** | PR: https://pagure.io/koji/pull-request/4044 Followup work after introducing new scheduler. Mostly builder code simplification. **Log if a restart is pending** | PR: https://pagure.io/koji/pull-request/4076 Builder is more verbose about this situation. **Refuse image tasks when required deps are missing** | PR: https://pagure.io/koji/pull-request/4083 If image-supporting libraries are not present on builder it will decline the image tasks without trying them, so they'll not fail. **Don't ignore files in uploadFile** | PR: https://pagure.io/koji/pull-request/4093 Empty files were ignored before. Now we upload also these. Kojira ------ **Kojira on demand** | PR: https://pagure.io/koji/pull-request/4033 | PR: https://pagure.io/koji/pull-request/4127 Massive overwrite of repo regeneration. Previously, kojira was in charge of regenerating everything what is out of date. It could have been thousands of repos which will be never used. We've moved to on-demand behaviour drastically limiting number of ``newRepo`` tasks. Full description of behaviour change is at :doc:`../repo_generation`. Web UI ------ **Show only active channels at clusterhealth** | PR: https://pagure.io/koji/pull-request/4011 Simplification of web ui. **Drop part of code related to host without update_ts** | PR: https://pagure.io/koji/pull-request/4086 Plugins ------- SCMPolicy ......... | PR: https://pagure.io/koji/pull-request/3969 New policy plugin which can decide if build can proceed with data based on SCM checkout results. Typical usecase would be checking that commit beeing built is present on some explicit branch. Kiwi .... **Generate full logs with debug information** | PR: https://pagure.io/koji/pull-request/4046 Uploading additional logs for easier kiwi debugging. **Only add buildroot repo if user repositories are not defined** | PR: https://pagure.io/koji/pull-request/4063 We've changed default behaviour that kiwi has access to buildroot repo. Now it must be explicitly specified via ``--buildroot-repo`` option. **Add support for overriding image type attributes** | PR: https://pagure.io/koji/pull-request/4156 | PR: https://pagure.io/koji/pull-request/4181 CLI option ``--set-type-attr`` for kiwi. For possible values look at `kiwi docs `_. **Add support for overriding kiwi image file name format** | PR: https://pagure.io/koji/pull-request/4157 CLI option ``--bundle-format`` for kiwi. For possible values look at `kiwi docs`_. **Add support for overriding version and releasever** | PR: https://pagure.io/koji/pull-request/4184 ``--version`` and ``--repo-releasever`` CLI options for overriding these in the resulting image. Devtools and tests ------------------ **Updates for various tests** | PR: https://pagure.io/koji/pull-request/4068 | PR: https://pagure.io/koji/pull-request/4082 | PR: https://pagure.io/koji/pull-request/4087 | PR: https://pagure.io/koji/pull-request/4110 | PR: https://pagure.io/koji/pull-request/4111 | PR: https://pagure.io/koji/pull-request/4118 | PR: https://pagure.io/koji/pull-request/4132 | PR: https://pagure.io/koji/pull-request/4133 | PR: https://pagure.io/koji/pull-request/4158 | PR: https://pagure.io/koji/pull-request/4186 **setup.py: Fix version retrieval on Python 3.13+** | PR: https://pagure.io/koji/pull-request/4100 **make clean - more files** | PR: https://pagure.io/koji/pull-request/4103 Documentation ------------- **Mock's configuration** | PR: https://pagure.io/koji/pull-request/4025 **Add external koji dev environments' links** | PR: https://pagure.io/koji/pull-request/4104 **Drop unused auth options** | PR: https://pagure.io/koji/pull-request/4107 Dropping some older options from example configuration files and documentation.