378 lines
10 KiB
ReStructuredText
378 lines
10 KiB
ReStructuredText
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.
|