parent
bfd0d034a7
commit
7f4bbb698c
6 changed files with 481 additions and 2 deletions
22
docs/source/migrations/migrating_to_1.34.rst
Normal file
22
docs/source/migrations/migrating_to_1.34.rst
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
Migrating to Koji 1.34
|
||||
======================
|
||||
|
||||
You should consider the following changes when migrating to 1.34:
|
||||
|
||||
DB Updates
|
||||
----------
|
||||
|
||||
There is a simple schema change adding new index.
|
||||
|
||||
As in previous releases, we provide a migration script that updates the database.
|
||||
|
||||
::
|
||||
|
||||
# psql koji koji < /usr/share/doc/koji/docs/schema-upgrade-1.33-1.34.sql
|
||||
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
|
||||
There are numerous other changes in 1.34 that should not have a direct impact on migration. For
|
||||
details see: :doc:`../release_notes/release_notes_1.34`
|
||||
|
|
@ -5,6 +5,7 @@ Migrations
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
migrating_to_1.34
|
||||
migrating_to_1.33
|
||||
migrating_to_1.32
|
||||
migrating_to_1.31
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ Release Notes
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
release_notes_1.34
|
||||
release_notes_1.33.1
|
||||
release_notes_1.33
|
||||
release_notes_1.32.1
|
||||
|
|
|
|||
395
docs/source/release_notes/release_notes_1.34.rst
Normal file
395
docs/source/release_notes/release_notes_1.34.rst
Normal file
|
|
@ -0,0 +1,395 @@
|
|||
|
||||
Koji 1.34.0 Release notes
|
||||
=========================
|
||||
|
||||
All changes can be found in `the roadmap <https://pagure.io/koji/roadmap/1.34/>`_.
|
||||
Most important changes are listed here.
|
||||
|
||||
Check at least :ref:`scheduler <scheduler>` and :ref:`draft builds <draft-builds>` as the crucial changes
|
||||
in this release.
|
||||
|
||||
|
||||
Migrating from Koji 1.33/1.33.1
|
||||
-------------------------------
|
||||
|
||||
For details on migrating see :doc:`../migrations/migrating_to_1.34`
|
||||
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Client Changes
|
||||
--------------
|
||||
**Fix [still active] display for edit entries**
|
||||
|
||||
Not all active settings were correctly marked in ``list-history`` output.
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3813
|
||||
|
||||
**Streamline python/json options in call command**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3846
|
||||
|
||||
Coherent usage of ``--json/--json-input/--json-output`` options.
|
||||
|
||||
**Handle hub w/o getKojiVersion in cancel tasks**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3889
|
||||
|
||||
Don't fail ``cancel`` command when used against old koji server.
|
||||
|
||||
**Fix wait-repo message when missing builds**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3915
|
||||
|
||||
Clarify message.
|
||||
|
||||
**list-permissions: backward compatibility for getUserPermsInheritance call**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3960
|
||||
|
||||
**Read config file on image build indirection**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3929
|
||||
|
||||
Option ``--config`` was already there, but it was doing nothing. Now, user
|
||||
can pass all the options via config file similarly to the "classical" image build.
|
||||
|
||||
API Changes
|
||||
-----------
|
||||
**Unify getSessionInfo output**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3794
|
||||
| PR: https://pagure.io/koji/pull-request/3927
|
||||
|
||||
Different fields were returned when ``getSessionInfo`` was called with
|
||||
``details=True``. Now, same base fields are returned in both cases.
|
||||
|
||||
**Remove koji.AUTHTYPE_* in 1.34**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3818
|
||||
|
||||
These constants were deprecated while ago, use ``koji.AUTHTYPES`` enum instead.
|
||||
|
||||
**Extend getUser to get user groups**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3855
|
||||
|
||||
Additional ``groups`` option to get info about user's group membership.
|
||||
|
||||
|
||||
**Short option for watch-logs --follow**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3884
|
||||
|
||||
Added `-f` as an alias for `--follow`.
|
||||
|
||||
|
||||
System Changes
|
||||
--------------
|
||||
.. _scheduler:
|
||||
|
||||
**Scheduler part 1**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3772
|
||||
|
||||
Biggest change in this release. We're rewriting scheduler to allow better
|
||||
utilization of builders and to have better control about what is built where
|
||||
and when. This is the first part of the changes and it moves scheduling
|
||||
responsibilities from builder to hub and unified queue.
|
||||
|
||||
This phase is transparent to administrators and users (even older builders are
|
||||
provided "fake" API, so they can benefit from new hub code without noticing).
|
||||
Two new CLI commands ``scheduler-info`` and ``scheduler-logs`` can be used to
|
||||
gain insights to scheduler state.
|
||||
|
||||
Also there are some new options for hub to modify scheduler behaviour and
|
||||
``koji-sweep-db`` is updated, so it can clean old scheduler logs.
|
||||
|
||||
In the next phase there should be added multi-target policies, concept of
|
||||
builder resources, etc. which would allow fine-tuning of build requests. Crude
|
||||
channels' logic then could be replaced by scheduler hints and hard limits for
|
||||
selecting right builder.
|
||||
|
||||
**Remove get_sequence_value in 1.34**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3817
|
||||
|
||||
Deprecated ``get_sequence_value`` was finally removed. This could be of some
|
||||
interest to plugin developers.
|
||||
|
||||
**Add support for sw_64 and loongarch64**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3836
|
||||
|
||||
Simple extension to support these architectures.
|
||||
|
||||
**Don't spawn createrepo if not needed**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3842
|
||||
|
||||
Performance improvement in some cases where it is not needed to rerun
|
||||
createrepo when creating new tag (typically sidetag or some build tag which
|
||||
doesn't modify its inherited content). Simple copy of the original repodata is
|
||||
correct here.
|
||||
|
||||
**Package migration scripts to koji-hub**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3843
|
||||
| PR: https://pagure.io/koji/pull-request/3920
|
||||
|
||||
Previously, these scripts were packaged with basic lib. It doesn't make much
|
||||
sense, so they were moved to hub subpackage. You can find them now in
|
||||
``/usr/share/koji`` there.
|
||||
|
||||
**Inherit group permissions**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3850
|
||||
|
||||
Intuitive understanding of group membership is to inherit everything what is
|
||||
accessible via group inheritance.
|
||||
|
||||
**Fix user_in_group policy test**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3859
|
||||
|
||||
Bugfix of regression.
|
||||
|
||||
**Disable use_bootstrap_image if not requested**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3873
|
||||
|
||||
Mock's default behaviour changed to have this setting on by default. So, we've
|
||||
extended our flag to allow also disabling this.
|
||||
|
||||
**new_build: build in error should be the old one**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3895
|
||||
|
||||
Error message was fixed to show correct data.
|
||||
|
||||
.. _draft-builds:
|
||||
|
||||
**Draft builds**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3913
|
||||
|
||||
Another big change in this release. Builds (rpm for now) can be run with
|
||||
``--draft`` option. It is different from scratch build in the way that it is
|
||||
1st class build with modified release (containing "-draft-<id>" suffix).
|
||||
Nevertheless, this release change is done only on build level. RPMs are using
|
||||
original release, so they are indistunguishible from other draft builds for
|
||||
same NVR. Such behaviour violates rules that there are no two rpms with the
|
||||
same filename. That is the reason, why they are called "draft builds".
|
||||
|
||||
To bring them back to uniqueness, such build can be "promoted". In such case it
|
||||
is renamed to original release and all other draft builds from given NVR are
|
||||
forever forbidden to be promoted.
|
||||
|
||||
Typical use would be PR/MR workflow. There could be many "candidate" draft
|
||||
builds and only one which will pass testing and/or other workflows will be
|
||||
promoted in the end as "real" build which can be used for distribution.
|
||||
|
||||
Handling of when/where draft builds can be used (e.g. in some buildroots but
|
||||
not in the others) is done by ``is_draft`` policy test.
|
||||
|
||||
Draft builds could be viewed as "light namespacing" in koji or "more persistent
|
||||
scratch builds".
|
||||
|
||||
**Retrieve task_id for older OSBS builds**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3897
|
||||
|
||||
It is hidden for regular usecases, but improves policy behaviour, e.g. that
|
||||
`volume` policy can handle builds based on CG, etc.
|
||||
|
||||
**Raise an error on missing build directory (setBuildVolume)**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3886
|
||||
|
||||
Better error reporting in case of missing build directories.
|
||||
|
||||
**More general CG import logging**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3905
|
||||
|
||||
Fixes race condition when creating CG log.
|
||||
|
||||
**queryOpts for queryHistory**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3902
|
||||
|
||||
Adding support for standard ``queryOpts`` to this call.
|
||||
|
||||
**fix task_id extraction for missing extra**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3935
|
||||
|
||||
OSBS task now pass correct task data to volume policy
|
||||
|
||||
Builder Changes
|
||||
---------------
|
||||
**Switch to WatchedFileHandler for logger**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3537
|
||||
|
||||
Logrotate sometimes caused that kojid/kojira output was appended to already
|
||||
rotated (even deleted) file. Change to ``WatchedFileHandler`` will ensure that
|
||||
correct file is used.
|
||||
|
||||
**Wait with writing timestamps after results dir is created**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3834
|
||||
|
||||
``log_timestamps`` feature in some cases tried to write logs into directory
|
||||
which hasn't existed yet causing build to fail from unrelated reasons.
|
||||
|
||||
**distrepo will not skip rpm stat by default**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3838
|
||||
|
||||
Reusing repodata with distrepo is dangerous as rpms could be signed with
|
||||
different keys. So, now is the default behaviour to always stat rpms to be sure
|
||||
that they don't differ from cached metadata. This behaviour can be overriden by
|
||||
``--skip-stat`` CLI option. Note, that you've to be sure what you're doing in
|
||||
such case (typically you don't care about signatures in this repo).
|
||||
|
||||
**Clean rpm db directory of broken symlinks**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3893
|
||||
|
||||
(At least) Fedora is moving rpm database directory. We've previously checked
|
||||
existence of ``.migrated`` file but it is not enough in some transient
|
||||
environments. Host rpm and buildroot rpm could handle these directories
|
||||
differently resulting in bogus files preventing one of these to work. So, this
|
||||
"hack" is cleaning up potentially broken files.
|
||||
|
||||
|
||||
Kojira
|
||||
------
|
||||
**kojira no_repo_effective_age setting**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3830
|
||||
|
||||
New build tags (without repos) were not prioritized by kojira in best way.
|
||||
Kojira assumed that this tag was never used, so it had very low priority. New
|
||||
setting allows to set default "last use" value to improve the situation.
|
||||
|
||||
|
||||
Web UI
|
||||
------
|
||||
**Better handling of deleted tags in kojiweb**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3828
|
||||
|
||||
Display deleted tags properly on all web pages.
|
||||
|
||||
**Fix duplicate build link on CG taskinfo page**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3857
|
||||
|
||||
Multiple ways how to store CG's ``task_id`` led to situation when task was
|
||||
displayed twice.
|
||||
|
||||
**Display two decimal points for the task load in hosts page**
|
||||
|
||||
| PRL https://pagure.io/koji/pull-request/3911
|
||||
|
||||
Some floats were too long, stripped to two digits.
|
||||
|
||||
**Sort channels on hosts page**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3894
|
||||
|
||||
More readability in selectors.
|
||||
|
||||
Plugins
|
||||
-------
|
||||
**create initial repo for sidetag**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3841
|
||||
|
||||
``trigger_new_repo`` is new setting for sidetag plugin. When it is set to true,
|
||||
it will trigger ``newRepo`` task as part of new sidetag creation. If it is not
|
||||
set, old way (leave it on kojira) is used.
|
||||
|
||||
**sidetag: extend is_sidetag_owner for untag ops**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3851
|
||||
|
||||
``is_sidetag_owner`` policy has now ``tag/fromtag/both`` optional keywords for
|
||||
tag specification.
|
||||
|
||||
**kiwi: Sort image rpm components before inserting**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3882
|
||||
|
||||
There is a potential db deadlock which is avoided by this reordering.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
**Fix docstring getTaskInfo**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3726
|
||||
|
||||
**More XMLRPC-related docs**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3761
|
||||
|
||||
**Fix release notes version**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3832
|
||||
|
||||
**Explain _ord() method**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3835
|
||||
|
||||
**readTaggedRPMS/Builds API documentation**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3840
|
||||
|
||||
**Fix param in createImageBuild docstring**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3876
|
||||
|
||||
**Example of how to enable a module via mock.module_setup_commands**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3879
|
||||
|
||||
**Update docstring for listPackages**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3904
|
||||
|
||||
**Fix return type (chainBuild)**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3924
|
||||
|
||||
Devtools and tests
|
||||
------------------
|
||||
**Basic vim syntax highlighting for hub policy**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3839
|
||||
|
||||
It can be used for editing hub policies. As it has no rigorous syntax it
|
||||
doesn't work in 100%.
|
||||
|
||||
**Tox: Don't install coverage every run**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3861
|
||||
|
||||
A bit of performance improvement for running tests.
|
||||
|
||||
**Fix tests/flake8**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3865
|
||||
| PR: https://pagure.io/koji/pull-request/3917
|
||||
|
||||
**Update Containerfiles**
|
||||
|
||||
| PR: https://pagure.io/koji/pull-request/3898
|
||||
|
||||
Updated to current Fedoras
|
||||
62
koji.spec
62
koji.spec
|
|
@ -83,7 +83,7 @@
|
|||
%define release %{baserelease}
|
||||
%endif
|
||||
Name: koji
|
||||
Version: 1.33.1
|
||||
Version: 1.34.0
|
||||
Release: %{release}%{?dist}
|
||||
License: LGPL-2.1-only and GPL-2.0-or-later
|
||||
# the included arch lib from yum's rpmUtils is GPLv2+
|
||||
|
|
@ -649,6 +649,66 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Jan 10 2024 Tomas Kopecek <tkopecek at redhat.com> - 1.34.0-1
|
||||
- PR#3537: Switch to WatchedFileHandler for logger
|
||||
- PR#3726: fix docstring getTaskInfo
|
||||
- PR#3761: doc: More XMLRPC-related docs
|
||||
- PR#3772: Scheduler part 1
|
||||
- PR#3794: Unify getSessionInfo output
|
||||
- PR#3813: list-history: fix [still active] display for edit entries
|
||||
- PR#3817: Remove get_sequence_value in 1.34
|
||||
- PR#3818: Remove koji.AUTHTYPE_* in 1.34
|
||||
- PR#3828: better handling of deleted tags in kojiweb
|
||||
- PR#3830: kojira no_repo_effective_age setting
|
||||
- PR#3832: fix release notes version
|
||||
- PR#3835: explain _ord() method
|
||||
- PR#3838: distrepo will not skip rpm stat by default
|
||||
- PR#3841: create initial repo for sidetag
|
||||
- PR#3842: Don't spawn createrepo if not needed
|
||||
- PR#3843: Package migration scripts to koji-hub
|
||||
- PR#3850: Inherit group permissions
|
||||
- PR#3851: sidetag: extend is_sidetag_owner for untag ops
|
||||
- PR#3855: Extend getUser to get user groups
|
||||
- PR#3859: Fix user_in_group policy test
|
||||
- PR#3861: tox: Don't install coverage every run
|
||||
- PR#3865: fix tests/flake8
|
||||
- PR#3873: disable use_bootstrap_image if bot requested
|
||||
- PR#3876: fix param in createImageBuild docstring
|
||||
- PR#3879: Example of how to enable a module via mock.module_setup_commands
|
||||
- PR#3882: Sort image rpm components before inserting
|
||||
- PR#3884: short option for watch-logs --follow
|
||||
- PR#3886: Raise an error on missing build directory
|
||||
- PR#3888: kojid: Fix mock_bootstrap_image parameter name in the default config
|
||||
- PR#3889: cli: handle hub w/o getKojiVersion in cancel tasks
|
||||
- PR#3893: Clean rpm db directory of broken symlinks
|
||||
- PR#3894: Sort channels on hosts page
|
||||
- PR#3895: hub: new_build: build in error should be the old one
|
||||
- PR#3897: Retrieve task_id for older OSBS builds
|
||||
- PR#3898: Update Containerfiles
|
||||
- PR#3902: queryOpts for queryHistory
|
||||
- PR#3904: Update docstring for listPackages
|
||||
- PR#3905: More general CG import logging
|
||||
- PR#3911: Display two decimal points for the task load in hosts page
|
||||
- PR#3913: draft builds
|
||||
- PR#3915: cli: fix wait-repo message when missing builds
|
||||
- PR#3917: fix tests
|
||||
- PR#3920: Move migration script to new location
|
||||
- PR#3924: fix return type
|
||||
- PR#3927: more getSessionInfo updates
|
||||
- PR#3929: Read config file on image build indirection
|
||||
- PR#3935: fix task_id extraction for missing extra
|
||||
- PR#3938: Update the CERN koji description
|
||||
- PR#3940: Remove six.configparser.SafeConfingParser from tests
|
||||
- PR#3946: fix flake8 errors
|
||||
- PR#3948: fix arg passing in exclusiveSession
|
||||
- PR#3949: docstring typo
|
||||
- PR#3957: Fix test
|
||||
- PR#3960: cli: [list-permissions] backward compatibility for getUserPermsInheritance call
|
||||
- PR#3965: Fix unittests for python-mock-5.x
|
||||
- PR#3977: handle new task refs in clean_scratch_tasks
|
||||
- PR#3980: task assign overrides
|
||||
- PR#3983: test_cg_importer.py: avoid creating temp files in checkout
|
||||
|
||||
* Tue Jul 11 2023 Tomas Kopecek <tkopecek at redhat.com> - 1.33.1-1
|
||||
- PR#3834: wait with writing timestamps after results dir is created
|
||||
- PR#3836: add support for sw_64 and loongarch64
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
__version_info__ = (1, 33, 1)
|
||||
__version_info__ = (1, 34, 0)
|
||||
__version__ = '.'.join([str(x) for x in __version_info__])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue