From 3598562883e19141446cfaef2fb4e56d269a09fe Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: May 20 2021 10:59:39 +0000 Subject: Release notes 1.25 Fixes: https://pagure.io/koji/issue/2845 --- diff --git a/docs/source/migrations/migrating_to_1.25.rst b/docs/source/migrations/migrating_to_1.25.rst new file mode 100644 index 0000000..d1ab2c3 --- /dev/null +++ b/docs/source/migrations/migrating_to_1.25.rst @@ -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 +`_)/ + + +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` diff --git a/docs/source/migrations/migrations.rst b/docs/source/migrations/migrations.rst index f539c47..3d8e959 100644 --- a/docs/source/migrations/migrations.rst +++ b/docs/source/migrations/migrations.rst @@ -5,6 +5,7 @@ Migrations .. toctree:: :maxdepth: 1 + migrating_to_1.25 migrating_to_1.24 migrating_to_1.23 migrating_to_1.22 diff --git a/docs/source/release_notes/release_notes.rst b/docs/source/release_notes/release_notes.rst index 8b502fd..47f0463 100644 --- a/docs/source/release_notes/release_notes.rst +++ b/docs/source/release_notes/release_notes.rst @@ -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 diff --git a/docs/source/release_notes/release_notes_1.25.rst b/docs/source/release_notes/release_notes_1.25.rst new file mode 100644 index 0000000..61c5ec3 --- /dev/null +++ b/docs/source/release_notes/release_notes_1.25.rst @@ -0,0 +1,308 @@ +Koji 1.25.0 Release notes +========================= + +All changes can be found at `pagure `_. +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 diff --git a/koji.spec b/koji.spec index ca821ba..20cd0ad 100644 --- a/koji.spec +++ b/koji.spec @@ -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 - 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 - 1.24.0-1 - PR#2637: plugin hooks for repo modification - PR#2680: fix the mode of tarfile.open diff --git a/koji/_version.py b/koji/_version.py index 1ebfcbe..79e6222 100644 --- a/koji/_version.py +++ b/koji/_version.py @@ -1,2 +1,2 @@ -__version_info__ = (1, 24, 1) +__version_info__ = (1, 25, 0) __version__ = '.'.join([str(x) for x in __version_info__])