Release notes 1.25

Fixes: https://pagure.io/koji/issue/2845
This commit is contained in:
Tomas Kopecek 2021-05-10 09:57:07 +02:00
parent 8ecfc53119
commit 3598562883
6 changed files with 420 additions and 2 deletions

View file

@ -0,0 +1,26 @@
Migrating to Koji 1.25
======================
You should consider the following changes when migrating to 1.25:
DB Updates
----------
This release includes one schema change.
Each repo now contains link to task which was used to create it (`Issue #888
<https://pagure.io/koji/issue/888>`_)/
As in previous releases, we provide a migration script that updates the database.
::
# psql koji koji < /usr/share/doc/koji/docs/schema-upgrade-1.24-1.25.sql
Other changes
-------------
There are numerous other changes in 1.25 that should not have a direct impact on migration. For
details see: :doc:`../release_notes/release_notes_1.25`

View file

@ -5,6 +5,7 @@ Migrations
.. toctree::
:maxdepth: 1
migrating_to_1.25
migrating_to_1.24
migrating_to_1.23
migrating_to_1.22

View file

@ -5,6 +5,7 @@ Release Notes
.. toctree::
:maxdepth: 1
release_notes_1.25
release_notes_1.24.1
release_notes_1.24
release_notes_1.23.1

View file

@ -0,0 +1,308 @@
Koji 1.25.0 Release notes
=========================
All changes can be found at `pagure <https://pagure.io/koji/roadmap/1.25/>`_.
Most important changes are listed here.
Migrating from Koji 1.24/1.24.1
-------------------------------
For details on migrating see :doc:`../migrations/migrating_to_1.25`
Security Fixes
--------------
None
Client Changes
--------------
**More verbose error/warning messages**
| PR: https://pagure.io/koji/pull-request/2615
| PR: https://pagure.io/koji/pull-request/2702
| PR: https://pagure.io/koji/pull-request/2703
| PR: https://pagure.io/koji/pull-request/2761
| PR: https://pagure.io/koji/pull-request/2769
| PR: https://pagure.io/koji/pull-request/2770
| PR: https://pagure.io/koji/pull-request/2733
| PR: https://pagure.io/koji/pull-request/2803
| PR: https://pagure.io/koji/pull-request/2694
| PR: https://pagure.io/koji/pull-request/2709
| PR: https://pagure.io/koji/pull-request/2829
| PR: https://pagure.io/koji/pull-request/2738
| PR: https://pagure.io/koji/pull-request/2790
| PR: https://pagure.io/koji/pull-request/2792
| PR: https://pagure.io/koji/pull-request/2727
| PR: https://pagure.io/koji/pull-request/2773
We've revised many calls which previously returned empty results to raise more
meaningful errors. Typically ``koji list-untagged xyz`` returned same result if
package never existed and also in case when package was really never untagged.
Also all warning and error messages were unified in their wording.
**Show connection exception for anynymous calls**
| PR: https://pagure.io/koji/pull-request/2705
Calls which don't need authentication were not properly propagating
connection-related exceptions with ``--debug``.
**list-api option for one method**
| PR: https://pagure.io/koji/pull-request/2688
Now you don't need to scroll through ``list-api`` output if you want single
method signature. ``koji list-api listBuilds`` show just one.
**Add wait/nowait to all calls**
| PR: https://pagure.io/koji/pull-request/2831
Some commands had ``--wait`` and/or ``--nowait`` options. We've made it
consistent, so all eligible commands now contain both variants. If option is
specified it is the ultimate override. If none of these is specified, behaviour
differs if client is running on TTY (then it waits) or on background (then it
will not wait). This is no new behaviour, just adding explicit options in cases
where they were not present.
**Use multicall for cancel, list-hosts and write-signed-rpm commands**
| PR: https://pagure.io/koji/pull-request/2722
| PR: https://pagure.io/koji/pull-request/2808
| PR: https://pagure.io/koji/pull-request/2810
Making cancel command much faster if you're cancelling many tasks/builds,
listing many hosts or writing multiple rpm signed copies.
**--no-auth for 'call' command**
| PR: https://pagure.io/koji/pull-request/2734
``call`` command was authenticating for any method. Now you can specify this
option to skip authentication phase.
**Support modules and other btypes in download-build**
| PR: https://pagure.io/koji/pull-request/2678
``download-build`` now downloads all regular archives. Previusly it was limited
to subset of file types.
Library Changes
---------------
**Better failed authentication/connections**
PR#2735: lib: more verbose conn AuthError for ssl/gssapi
PR#2824: lib: is_conn_error catch more exceptions
PR#2794: lib: set sinfo=None for failed ssl_login
PR#2723: better ssl_login() error message when cert is None
PR#2826: Add kerberos debug message
All connection errors now should provide a bit more information for debugging.
Some errors were masked by more generic ones. We're now trying to display more
info about these. Same for debugging krbV/GSSAPI errors. Also added a `doc
(https://docs.pagure.org/koji/content_generator_metadata/)`_ page (and link to
CLI) for typical GSSAPI errors.
**More portable BadStatusLine checking**
| PR: https://pagure.io/koji/pull-request/2819
Python 3 versions had some problems with detecting `keepalive race
(https://github.com/mikem23/keepalive-race)`_ conditions on apache side. We've
made code a bit more portable so you shouldn't see these errors now.
**Missing default values in read_config**
| PR: https://pagure.io/koji/pull-request/2689
Some default values were missing in the config parsing which could have led to
mysterious behaviour (everything related to retry logic in case there is some
connection error)
**lib: use parse_task_params for taskLabel**
| PR: https://pagure.io/koji/pull-request/2771
It is internal only change, but could be used as a promotion place for
developers. Anywhere where you've parsed task options ad hoc (e.g. in your
plugin or in some scripts) you can use ``parse_task_params`` function which
should do this more consistently.
API Changes
-----------
**Fail early on wrong info in create*Build methods**
PR#2721: API: createWinBuild with wrong win/build info
PR#2732: api: createImageBuild non-existing build wrong buildinfo
PR#2736: api: createMavenBuild wrong buildinfo/maveninfo
``createWinBuild``, ``createImageBuild``, ``createMavenBuild`` now will raise an
exception when some data in buildinfo are missing. Exception should be more
senseful than before.
**getVolume with strict option**
| PR: https://pagure.io/koji/pull-request/2796
New option to be in line with other calls. You can check either ``None`` return
or use ``strict=True`` and wrap it in ``try/except``.
**getLastHostUpdate ts option**
| PR: https://pagure.io/koji/pull-request/2766
Historically we've passed aroung dates as text strings. Almost everywhere we're
now also sending GMT timestamps to better handle timezone problems. This new
option in the ``getLastHostUpdate`` call allows you to get timestamp instead of
default date.
**Be tolerant with duplicate parents in _writeInheritanceData**
| PR: https://pagure.io/koji/pull-request/2782
Regression fix - call will now not raise an exception if there are duplicated
parents in inheritance chain.
**with_owners options for readPackageList and listPackages**
| PR: https://pagure.io/koji/pull-request/2791
Performance improvement. Most of the calls to these functions don't need
information about the package owner. Dropping this data simplifies underlying
query to faster one. If you're using this call in your automation give it a
chance to lower your database load.
System Changes
--------------
**Task priority policy**
| PR: https://pagure.io/koji/pull-request/2711
There is a new ``priority`` policy which can be used to alter task priorities
based on data about task/build. See documentation for details.
**Python egginfo**
| PR: https://pagure.io/koji/pull-request/2821
After years of struggling with pip/setuptools/rpm packaging we should finally
have something compatible. So, now egginfo, etc. should be properly installed
and usable in virtualenvs.
**Task ID for repos**
| PR: https://pagure.io/koji/pull-request/2802
| PR: https://pagure.io/koji/pull-request/2823
When debugging buildroot content issues it is often important to find out which
repo was used and when it was created, investigate createrepo and mergerepo
logs, etc. It was not easiest to find corresponding task to given repodata.
We've added this information to database (so you can see it in web and CLI) and
also to ``repo.json`` file in repodata directory.
**Add squashfs-only and compress-arg options to livemedia**
| PR: https://pagure.io/koji/pull-request/2833
Livemedia tasks can now use these options for passing to ImageFactory.
Web
---
**Show VCS and DistURL tags as links when appropriate**
| PR: https://pagure.io/koji/pull-request/2756
**Don't use count(*) on first tasks page**
| PR: https://pagure.io/koji/pull-request/2827
Tasks list page was quite slow in many cases. Reason was pagination and
underlying ``count(*)`` for given filter. As PostgreSQL is very slow for this
type of query we've removed number of total results and listing of all pages on
first page which is loaded most often. If you use link to next page you'll see
everything as before this change.
**Additional info on API page**
| PR: https://pagure.io/koji/pull-request/2828
We've added simple client code to API page, so users can start with something
and don't need to dig through the rest of documentation.
Plugins
-------
**Configurable sidetags suffixes**
| PR: https://pagure.io/koji/pull-request/2730
Sidetag plugin now allows to define set of allowed suffixed which can be used
when creating the sidetag. You can distunguish between diffent types (private,
gating, ...)
**Protonmsg: fixes for persistent queue**
| PR: https://pagure.io/koji/pull-request/2844
Persistent message storage was broken. Now it should work correctly.
Utilities
---------
Kojira
......
**Faster startup**
| PR: https://pagure.io/koji/pull-request/2764
Multicall is used to prefetch tag data from hub. It significantly improves
startup time for bigger installations.
**Check repo.json before deleting**
| PR: https://pagure.io/koji/pull-request/2765
Previusly kojira refused to delete repositories which used different name than
actual tag. It could have happened when tag was renamed from some reason. Now we
consult also ``repo.json`` which limits this insecurity and allows kojira to
delete more directories.
**Tolerate floats in metadata timestamps**
| PR: https://pagure.io/koji/pull-request/2784
External repositories sometimes can use float timestamp. We now correctly parse
that.
Garbage Collector
.................
**Allow specifying all CLI options in config**
| PR: https://pagure.io/koji/pull-request/2816
Everything what can be specified on command-line can now be also put into the
configuration file.
**Implement hastag policy for koji-gc**
| PR: https://pagure.io/koji/pull-request/2817
There was no way to mark some builds which shouldn't be deleted from tag. Now
you can tag it with some additional special 'dont-delete-me' tag and make
``hastag`` policy for that.
Documentation
-------------
**Updated docs and devtools**
| PR: https://pagure.io/koji/pull-request/2724
| PR: https://pagure.io/koji/pull-request/2725
| PR: https://pagure.io/koji/pull-request/2772
| PR: https://pagure.io/koji/pull-request/2843
| PR: https://pagure.io/koji/pull-request/2799

View file

@ -78,7 +78,7 @@
%define release %{baserelease}
%endif
Name: koji
Version: 1.24.1
Version: 1.25.0
Release: %{release}%{?dist}
License: LGPLv2 and GPLv2+
# the included arch lib from yum's rpmUtils is GPLv2+
@ -616,6 +616,88 @@ rm -rf $RPM_BUILD_ROOT
%systemd_postun kojira.service
%changelog
* Mon May 10 2021 Tomas Kopecek <tkopecek at redhat.com> - 1.25.0-1
- PR#2844: protonmsg: use consistent data format for messages
- PR#2764: kojira: faster startup
- PR#2831: Add wait/nowait to tag-build, image-build-indirection
- PR#2827: web: don't use count(*) on first tasks page
- PR#2833: Add squashfs-only and compress-arg options to livemedia
- PR#2828: web: additional info on API page
- PR#2826: Add kerberos debug message
- PR#2821: Python egginfo
- PR#2843: update dockerfiles for f34
- PR#2824: lib: is_conn_error catch more exceptions
- PR#2823: Add default task ID to prep_repo_init/done
- PR#2816: koji-gc: Allow specifying all CLI options in config
- PR#2817: koji-gc: Implement hastag policy for koji-gc
- PR#2771: lib: use parse_task_params for taskLabel
- PR#2829: fix tests for changed helpstring
- PR#2688: cli: list-api method
- PR#2791: with_owners options for readPackageList and readTaggedBuilds
- PR#2802: Repo info with task id
- PR#2803: unify warn messages
- PR#2808: cli: multicalls for write-signed-rpm
- PR#2796: api: getVolume with strict
- PR#2792: cli: mock-config check arch
- PR#2790: cli: list-builds sort-key warning
- PR#2756: Show VCS and DistURL tags as links when appropriate
- PR#2819: lib: more portable BadStatusLine checking
- PR#2818: hub: Fix typo in postRepoInit callback from distRepo
- PR#2779: 1.24.1 release notes
- PR#2810: cli: fix multicall usage in list_hosts
- PR#2798: Fix list-hosts and hostinfo for older hub
- PR#2773: unify error messages for web
- PR#2799: kojid.conf: fix linewrapped comment
- PR#2794: lib: set sinfo=None for failed ssl_login
- PR#2689: lib: missing default values in read_config
- PR#2784: Tolerate floats in metadata timestamps
- PR#2787: Revert "requests exception"
- PR#2770: cli: buildinfo returns error for non exist build
- PR#2766: api getLastHostUpdate returns timestamp
- PR#2735: lib: more verbose conn AuthError for ssl/gssapi
- PR#2782: Be tolerant with duplicate parents in _writeInheritanceData
- PR#2615: cli: catch koji.ParameterError in list_task_output_all_volumes
- PR#2749: web: optional KojiHubCA usage
- PR#2753: drop PyOpenSSL usage
- PR#2765: kojira: check repo.json before deleting
- PR#2777: docs: fix Fedora's koji URL
- PR#2722: cli: use multicall for cancel command
- PR#2772: Fix small documentation typo
- PR#2699: Fix race handling in rmtree
- PR#2755: kojira: check rm queue before adding new path
- PR#2769: cli: hostinfo with non-exist host
- PR#2768: tests: fix locale setting
- PR#2721: API: createWinBuild with wrong win/build info
- PR#2761: cli: rpminfo with non-exist rpm
- PR#2736: api: createMavenBuild wrong buildinfo/maveninfo
- PR#2732: api: createImageBuild non-existing build wrong buildinfo
- PR#2733: Unify error messages
- PR#2759: tests: stop mock in DBQueryTest
- PR#2754: doc: jenkins fedora -> centos migration
- PR#2744: devtools: updated Dockerfiles
- PR#2715: acquire logging locks before forking
- PR#2747: Escape vcs and disturl
- PR#2705: cli: show connection exception
- PR#2703: cli: list-untagged returns error non-exist package
- PR#2738: cli: fix help message formatting
- PR#2737: plugins: fix typo
- PR#2734: cli: --no-auth for 'call' command
- PR#2711: Task priority policy
- PR#2730: configurable sidetags suffixes
- PR#2678: support modules and other btypes in download-build
- PR#2731: web: set WSGIProcessGroup inside Directory
- PR#2727: Fix progname
- PR#2717: doc: Additional docs for CVE-CVE-2020-15856
- PR#2723: better ssl_login() error message when cert is None
- PR#2725: doc: remove "ca" option from server howto
- PR#2724: doc: update kojid steps in server howto
- PR#2692: adding check for the license header key
- PR#2702: cli: list-history error non-exist channel, host
- PR#2706: hub: document getNextRelease method
- PR#2709: cli: mock-config error for non existing buildroot
- PR#2694: adding invalid target name error message
- PR#2713: set correct import_type for volume policy in completeImageBuild
* Thu Feb 4 2021 Tomas Kopecek <tkopecek at redhat.com> - 1.24.0-1
- PR#2637: plugin hooks for repo modification
- PR#2680: fix the mode of tarfile.open

View file

@ -1,2 +1,2 @@
__version_info__ = (1, 24, 1)
__version_info__ = (1, 25, 0)
__version__ = '.'.join([str(x) for x in __version_info__])