EVOLUTION-MANAGER
Edit File: release_notes_1.18.rst
Koji 1.18.0 Release notes ========================= Migrating from Koji 1.17 ------------------------ For details on migrating see :doc:`../migrations/migrating_to_1.18` Security Fixes -------------- Client Changes -------------- **Add option for custom cert location** | PR: https://pagure.io/koji/pull-request/1253 The CLI now has an option for setting a custom SSL certificate, similar to the options for Kerberos authentication. **Load client plugins from ~/.koji/plugins** | PR: https://pagure.io/koji/pull-request/892 This change allows users to load their own cli plugins from ``~/.koji/plugins`` or from another location by using the ``plugin_paths`` setting. **Show load/capacity in list-channels** | PR: https://pagure.io/koji/pull-request/1449 The ``list-channels`` display has been expanded to show overall totals for load and capacity. **Allow taginfo cli to use tag IDs** | PR: https://pagure.io/koji/pull-request/1476 The ``taginfo`` command can now accept a numeric tag id on the command line. **Add option to show channels in list-hosts** | PR: https://pagure.io/koji/pull-request/1425 The ``list-hosts`` command will now display channel subscriptions if the ``--show-channels`` option is given. **Remove merge option from edit-external-repo** | PR: https://pagure.io/koji/pull-request/1499 This option was mistakenly added to the command and never did anything. It is gone now. **Honor mock.package_manager tag setting in mock-config cli** | PR: https://pagure.io/koji/pull-request/1374 The ``mock-config`` command will now honor this setting just as ``kojid`` does. Library Changes --------------- **New multicall interface** | PR: https://pagure.io/koji/pull-request/957 This feature implements a new and much better way to use multicall in the Koji library. These changes create a new implementation outside of ClientSession. The old way will still work. With this new implementation: * a multicall is tracked as an instance of `MultiCallSession` * the original session is unaffected * multiple multicalls can be managed in parallel, if desired * `MultiCallSession` behaves more or less like a session in multicall mode * method calls return a `VirtualCall` instance that can later be used to access the result * `MultiCallSession` can be used as a context manager, ensuring that the calls are executed Usage examples can be found in the :doc:`Writing Koji Code <../writing_koji_code>` document. Web UI Changes -------------- **Retain old search pattern in web ui** | PR: https://pagure.io/koji/pull-request/1258 The search results page of the web ui now retains a search form with the current search pre-filled. This makes it easier for users to refine their searches. **Display task durations in webui** | PR: https://pagure.io/koji/pull-request/1383 The ``taskinfo`` page in the web ui now shows task durations in addition to timestamps. Builder Changes --------------- **Rebuild SRPMS before building** | PR: https://pagure.io/koji/pull-request/1462 For rpm builds from an uploaded srpm, Koji will now rebuild the srpm in the build environment first. This ensures that the NVR is correct for the resulting build. The old behavior can be requested by setting ``rebuild_srpm=False`` in the tag extra data for the build tag in question. **User createrepo_c by default** | PR: https://pagure.io/koji/pull-request/1278 The ``use_createrepo_c`` configuration option for ``kojid`` now defaults to True. **Use createrepo update option even for first repo run** | PR: https://pagure.io/koji/pull-request/1363 If there is no older repo for a tag, Koji will now attempt to find a related repo to use ``createrepo --update`` with. This will speed up first-time repo generations for tags that predominantly inherit their content from another build tag. **Scale task_avail_delay based on bin rank** | PR: https://pagure.io/koji/pull-request/1386 This is an adjustment to Koji's decentralized scheduling algorithm. It should result in better utilization of host capacity, particularly when a channel has hosts that are very heterogeneous in capacity. The meaning of the ``task_avail_delay`` setting is different now. Within a channel-arch bin, the hosts with highest capacity will take the task immediately, while hosts lower down will have a delay proportional to their rank. The "rank" here is a float between 0.0 and 1.0 used as a multiplier. So ``task_avail_delay`` is the maximum time that any host will wait to take a task. Hosts with higher available capacity will be more likely to claim a task, resulting in better utilization of the highest capacity hosts. **Use RawConfigParser for kojid** | PR: https://pagure.io/koji/pull-request/1544 The use of percent signs is common in ``kojid.conf`` because of the ``host_principal_format`` setting. This causes an error in python3 if ``SafeConfigParser`` is used, so we use ``RawConfigParser`` instead. **Handle bare merge mode** | PR: https://pagure.io/koji/pull-request/1411 | PR: https://pagure.io/koji/pull-request/1516 | PR: https://pagure.io/koji/pull-request/1502 This feature adds a new merge mode for external repos named ``bare``. This mode is intended for use with modularity. Use of this mode requires createrepo_c version 0.14.0 or later on the builders that handle the createrepo tasks. System Changes -------------- **API for reserving NVRs for content generators** | PR: https://pagure.io/koji/pull-request/1464 | PR: https://pagure.io/koji/pull-request/1597 | PR: https://pagure.io/koji/pull-request/1601 | PR: https://pagure.io/koji/pull-request/1602 | PR: https://pagure.io/koji/pull-request/1606 This feature allows content generators to reserve NVRs earlier in the build process similar to builds performed by ``kojid``. The NVR is reserved by calling ``CGInitBuild()`` and finalized by the ``CGImport()`` call. **Per-tag configuration of rpm macros** | PR: https://pagure.io/koji/pull-request/898 This feature allows setting rpm macros via the tag extra field. These macros will be added to the mock configuration for the buildroot. The system looks for extra values of the form ``rpm.macro.NAME``. For example, to set the dist tag for a given tag, you could use a command like: :: $ koji edit-tag f30-build -x rpm.macro.dist=MYDISTTAG **Per-tag configuration for module_hotfixes setting** | PR: https://pagure.io/koji/pull-request/1524 | PR: https://pagure.io/koji/pull-request/1578 Koji now handles the field ``mock.yum.module_hotfixes`` in the tag extra. When set, kojid will set ``module_hotfixes=0/1`` in the yum portion of the mock configuration for a buildroot. **Allow users to opt out of notifications** | PR: https://pagure.io/koji/pull-request/1417 | PR: https://pagure.io/koji/pull-request/1580 This feature lets users opt out of notifications that they would otherwise automatically recieve, such as build and tag notifications for: - the build owner (the user who submitted the build) - the package owner within the given tag These opt-outs are user controlled and can be managed with the new ``block-notification`` and ``unblock-notificiation`` commands. **Allow hub policy to match version and release** | PR: https://pagure.io/koji/pull-request/1513 This feature adds new policy tests to match ``version`` and ``release``. This tests are glob pattern matches. **Allow hub policy to match build type** | PR: https://pagure.io/koji/pull-request/1415 Koji added btypes in version 1.11 along with content generators. Now, all builds have one or more btypes. This change allows policies to check the btype value using the ``buildtype`` test. **More granular admin permissions** | PR: https://pagure.io/koji/pull-request/1454 A number of actions that were previously admin-only are now governed by separate permissions: ``host`` This permission governs most host management operations, such as adding, editing, enabling/disabling, and restarting. ``tag`` This permission governs adding, editing, and deleting tags. ``target`` This permission governs adding, editing, and deleting targets. Koji administrators may want to consider reducing the number of users with full ``admin`` permission. **Option to generate separate source repo** | PR: https://pagure.io/koji/pull-request/1273 The (non-dist) yum repos that Koji generates for building normally don't include srpms. An old option allowed them to be included in some cases, but they were simply added to each repo. Newer options have been added that instruct Koji to include them as a separate src repo. In the cli, the ``regen-repo`` command now accepts a ``--separate-source`` option that triggers this behavior. In ``kojira``, the ``separate_source_tags`` option is a list of tag patterns. Build tags that match any of these patterns will have their repos generated with a separate src repo. **Add volume option for dist-repo** | PR: https://pagure.io/koji/pull-request/1327 Dist repos can now be generated on volumes other than the main one. Use the ``--volume`` option to the ``dist-repo`` command to do so. Generally you want the repo to be on the same volume as the rpms it will contain. Dist repos hard link (same volume) or copy (different volume) their rpms into place. Using the appropriate volume can drastically improve the efficiency, both in generation time and space consumption. **Minor gc optimizations** | PR: https://pagure.io/koji/pull-request/1337 | PR: https://pagure.io/koji/pull-request/1442 | PR: https://pagure.io/koji/pull-request/1437 This change speeds up portions of garbage collection by making the ``build_references`` check lazy by default. **Rollback errors in multiCall** | PR: https://pagure.io/koji/pull-request/1358 If one of the calls in a multicall raises an error, then the transaction will be rolled back to the start of that call before Koji proceeds to the next call. This matches the behavior of normal calls more closely. Multicalls are still handled within single database transaction. **Support tilde in search** | PR: https://pagure.io/koji/pull-request/1297 The tilde character is no longer prohibited in search terms. **Remove 'keepalive' option** | PR: https://pagure.io/koji/pull-request/1277 The ``keepalive`` setting is no longer used anywhere in koji. It has been removed.