misc fixes

This commit is contained in:
Mike McLean 2021-05-12 17:31:12 -04:00 committed by Tomas Kopecek
parent abb3e890e2
commit 5b6da358e2
2 changed files with 101 additions and 78 deletions

View file

@ -1,7 +1,7 @@
Koji 1.25.0 Release notes
=========================
All changes can be found at `pagure <https://pagure.io/koji/roadmap/1.25/>`_.
All changes can be found in `the roadmap <https://pagure.io/koji/roadmap/1.25/>`_.
Most important changes are listed here.
@ -39,11 +39,12 @@ Client Changes
| 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.
meaningful errors. For example, ``koji list-untagged package_x`` previously did
not distinguish between the case where ``package_x`` had no untagged builds
and the case where ``package_x`` did not exist.
Also, all warning and error messages were unified in their wording.
**Show connection exception for anynymous calls**
**Show connection exception for anonymous calls**
| PR: https://pagure.io/koji/pull-request/2705
@ -54,18 +55,22 @@ connection-related exceptions with ``--debug``.
| 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.
Now you don't need to scroll through ``list-api`` output if you want a single
method signature. The ``koji list-api listBuilds`` command will 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
consistent, so all eligible commands now contain both variants.
These options override waiting behavior for the command.
If neither option is specified, the default depends on the runtime context.
If the client is running on a TTY, then it defaults to waiting.
If it is running in the background, then it defaults to not waiting.
This is not new behaviour, just adding explicit options in cases
where they were not present.
**Use multicall for cancel, list-hosts and write-signed-rpm commands**
@ -74,92 +79,96 @@ where they were not present.
| 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.
These commands are now much faster when acting on multiple items.
**--no-auth for 'call' command**
**Using 'call' command without authentication**
| 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.
The ``call`` command authenticates by default, which is not always desired.
This authentication can be disabled with the the global ``--noauth`` option.
The help text now clarifies this.
**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.
The ``download-build`` command now downloads all regular archives. Previously it
was limited to a 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
| PR: https://pagure.io/koji/pull-request/2735
| PR: https://pagure.io/koji/pull-request/2824
| PR: https://pagure.io/koji/pull-request/2794
| PR: https://pagure.io/koji/pull-request/2723
| PR: https://pagure.io/koji/pull-request/2826
All connection errors now should provide a bit more information for debugging.
Connection errors now 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.
information about these, and to help with debugging krbV/GSSAPI errors. We have
added a :doc:`documentation page <../kerberos_gssapi_debug>` for common GSSAPI
errors, which the CLI now refers to.
**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.
Python 3 versions had some problems detecting expired keepalive connections.
We've made the 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)
mysterious behaviour. The configuration values in question were related to
retry behavior when making calls to the hub.
**lib: use parse_task_params for taskLabel**
**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.
The ``taskLabel`` function (used in various places to generate a short label
for a given task) has been updated to use the newer ``parse_task_params``
function instead of parsing the parameters itself.
As a result, the function is simpler and more accurate.
The ``parse_task_params`` function is currently the preferred way to interpret
task parameters. We recommend that developers use it rather than ad-hoc code.
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
| PR: https://pagure.io/koji/pull-request/2721
| PR: https://pagure.io/koji/pull-request/2732
| PR: https://pagure.io/koji/pull-request/2736
``createWinBuild``, ``createImageBuild``, ``createMavenBuild`` now will raise an
exception when some data in buildinfo are missing. Exception should be more
senseful than before.
The ``createWinBuild``, ``createImageBuild``, and ``createMavenBuild`` hub
calls will now raise an exception when some data in buildinfo are missing,
and their exception text should be clearer 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``.
This new option brings ``getVolume`` in line with other similar calls.
When the requested volume does not exist, the call will either return ``None``
(when ``strict=False``, the default) or raise an exception (when
``strict=True``).
**getLastHostUpdate ts option**
| PR: https://pagure.io/koji/pull-request/2766
Historically we've passed aroung dates as text strings. Almost everywhere we're
Historically we've passed around 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.
option in the ``getLastHostUpdate`` call allows you to get a timestamp instead
of a string value.
**Be tolerant with duplicate parents in _writeInheritanceData**
@ -173,9 +182,9 @@ parents in inheritance chain.
| 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.
information about the package owner. Dropping this data simplifies the
underlying query to a faster one. If you're using this call in your automation
give it a chance to lower your database load.
System Changes
--------------
@ -184,14 +193,15 @@ System Changes
| 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.
based on data about task/build.
See :doc:`../defining_hub_policies` 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
have something compatible. So, now egginfo, etc. should be properly installed
and usable in virtualenvs.
**Task ID for repos**
@ -201,9 +211,10 @@ and usable in virtualenvs.
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.
logs, etc. It was not easy to find the task that created a given repo.
This information is now tracked in the database, and reported in the web and CLI
interfaces.
It is also recorded in the ``repo.json`` file for the repo.
**Add squashfs-only and compress-arg options to livemedia**
@ -217,22 +228,27 @@ Web
| PR: https://pagure.io/koji/pull-request/2756
Previously these values were shown as plain text in the web interface.
Now they should appears as links.
**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.
The tasks list page can be quite slow in many cases.
The primary cause of this is pagination and the underlying ``count(*)``
query.
As PostgreSQL is very slow for this type of query we've removed the page count
for the first page which is loaded most often.
Subsequent pages will continue to show the count (and therefore also the
performance penalty in some situations).
**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.
We've added some simple example client code to the API page, to help users get
started without having to dig through the rest of the documentation.
Plugins
@ -241,15 +257,16 @@ Plugins
| 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,
The sidetag plugin now allows defining a set of allowed suffixes which can be used
when creating the sidetag. You can distinguish between different 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.
The persistent message queue option (see :ref:`protonmsg-config`) was
broken. Now it should work correctly.
Utilities
@ -262,16 +279,17 @@ Kojira
| 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.
startup time for larger 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.
Previously kojira refused to delete repositories if the path did not match
the name of the tag the repo was based on.
This kept kojira from cleaning up repos after a build tag was renamed.
Now kojira also consults the ``repo.json`` which records the name of the tag
at the time the repo was created.
**Tolerate floats in metadata timestamps**
@ -296,16 +314,19 @@ Garbage Collector
| 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.
Every option that can be specified on the 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.
The gc policy now offers a ``hastag`` test for builds, similar to the test
offered by hub policies.
This can be used in numerous ways.
One example (a ``protected`` tag that protects builds from pruning) is
described in the `original request <https://pagure.io/koji/issue/2813>`_.
Documentation
-------------
@ -316,3 +337,5 @@ Documentation
| PR: https://pagure.io/koji/pull-request/2772
| PR: https://pagure.io/koji/pull-request/2843
| PR: https://pagure.io/koji/pull-request/2799
Numerous small updates.