From 47b621fd477016a8180488fee36c924fa5740365 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Aug 18 2022 12:45:05 +0000 Subject: [PATCH 1/2] Release notes koji 1.30 Related: https://pagure.io/koji/issue/3465 --- diff --git a/docs/source/migrations/migrating_to_1.29.rst b/docs/source/migrations/migrating_to_1.29.rst index a3858b2..1ac6c37 100644 --- a/docs/source/migrations/migrating_to_1.29.rst +++ b/docs/source/migrations/migrating_to_1.29.rst @@ -1,7 +1,7 @@ Migrating to Koji 1.29 ====================== -You should consider the following changes when migrating to 1.28: +You should consider the following changes when migrating to 1.29: DB Updates ---------- diff --git a/docs/source/migrations/migrating_to_1.30.rst b/docs/source/migrations/migrating_to_1.30.rst new file mode 100644 index 0000000..16c497b --- /dev/null +++ b/docs/source/migrations/migrating_to_1.30.rst @@ -0,0 +1,22 @@ +Migrating to Koji 1.30 +====================== + +You should consider the following changes when migrating to 1.30: + +DB Updates +---------- + +There is a simple schema change adding descriptions to individual permissions. + +As in previous releases, we provide a migration script that updates the database. + +:: + + # psql koji koji < /usr/share/doc/koji/docs/schema-upgrade-1.29-1.30.sql + + +Other changes +------------- + +There are numerous other changes in 1.30 that should not have a direct impact on migration. For +details see: :doc:`../release_notes/release_notes_1.30` diff --git a/docs/source/migrations/migrations.rst b/docs/source/migrations/migrations.rst index 4c36ce3..1fd010f 100644 --- a/docs/source/migrations/migrations.rst +++ b/docs/source/migrations/migrations.rst @@ -5,6 +5,7 @@ Migrations .. toctree:: :maxdepth: 1 + migrating_to_1.30 migrating_to_1.29 migrating_to_1.28 migrating_to_1.27 diff --git a/docs/source/release_notes/release_notes.rst b/docs/source/release_notes/release_notes.rst index ea8dd41..9476c6d 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.30 release_notes_1.29.1 release_notes_1.29 release_notes_1.28.1 diff --git a/docs/source/release_notes/release_notes_1.30.rst b/docs/source/release_notes/release_notes_1.30.rst new file mode 100644 index 0000000..69d462d --- /dev/null +++ b/docs/source/release_notes/release_notes_1.30.rst @@ -0,0 +1,239 @@ + +Koji 1.30.0 Release notes +========================= + +All changes can be found in `the roadmap `_. +Most important changes are listed here. + + +Migrating from Koji 1.29/1.29.1 +------------------------------- + +For details on migrating see :doc:`../migrations/migrating_to_1.30` + + +Security Fixes +-------------- + +None + +Client Changes +-------------- +**Remove --paths option from list-buildroot** + +| PR: https://pagure.io/pull-request/3352 + +This option was not used and was deprecated. Now it was removed. + +**list-channels with specific arch** + +| PR: https://pagure.io/pull-request/3363 + +New filtering ``--arch`` option. + +**download-task retry download file** + +| PR: https://pagure.io/pull-request/3385 + +Additional place where we retry download in case of temporary network issues. + +**Add a utility function to watch builds** + +| PR: https://pagure.io/pull-request/3406 + +For CLI plugin development we've separated ``wait_repo`` function to library. + +**Rewritten download-task** + +| PR: https://pagure.io/pull-request/3425 +| PR: https://pagure.io/pull-request/3430 +| PR: https://pagure.io/pull-request/3438 +| PR: https://pagure.io/pull-request/3459 +| PR: https://pagure.io/pull-request/3462 + +``download-task`` command was rewritten to solve some long-standing issues. E.g. +downloading image scratch builds or some conflicting files. Command should be +backward-compatible but allows additional options like ``--dir-per-arch`` and +additional filtering. + +API Changes +----------- +**Remove force option from groupPackageListRemove hub call** + +| PR: https://pagure.io/pull-request/3354 + +Deprecated unused option was finally removed. + +**Remove deprecated remove-channel/removeChannel** + +| PR: https://pagure.io/pull-request/3357 + +Same here - same functionality is available via ``disable-channel/editChannel``. + +**Use compression_type in addArchiveType** + +| PR: https://pagure.io/pull-request/3391 + +Archive files had available listing for some specific extensions (zip, tar). +Other archives couldn't been displayed even if they had the same compression +format (e.g. jar which is hidden zip). Explicitly specifying compression type +via ``addArchiveType`` allows also these other types to be inspected. + +Library Changes +--------------- +**Fix rpm_hdr_size file closing** + +| PR: https://pagure.io/pull-request/3423 + +Simple fix for potential file descriptor leak in user scripts. + +**Authtype as enum and getSessionInfo prints authtype name** + +| PR: https://pagure.io/pull-request/3437 + +``koji.AUTHTYPE_*`` were converted to enum like other ``koji.*`` constants. It +unifies the usage + prints human-readable strings instead of numeric IDs. + +**parse_arches allows string and list of arches** + +| PR: https://pagure.io/pull-request/3440 + +Utility conversion function now accepts more types than before. + +System Changes +-------------- +**Server-side clonetag** + +| PR: https://pagure.io/pull-request/3308 + +Major rehaul of ``clone-tag`` command. It was completely removed from CLI-side +and everything happens at hub now. It is immensely faster in real workload (for +big tags from hours to seconds). Nevertheless, we've lost some functionality - +typically verbose mode is no more possible as everything happens in one +transaction now, so there is almost no text output. We believe it is worth the +speed improvements. There are also very minor semantical changes (e.g. event ids +for separate steps) which shouldn't be noticed by vast majority of users. + +If target tag doesn't exist, things are even more faster as we don't need to +check what is there, etc. + +New API calls related to this behaviour are now available: ``massTag``, ``snapshotTag``, +``snapshotTagModify``. Especially ``massTag`` could be used by many admins as it +is basically batch call of ``tagBuildBypass`` ('tag' permission needed) dropping +need of ``tagBuildBypass`` multicall overhead. + +**Drop old indices** + +| PR: https://pagure.io/pull-request/3359 + +Few unused old indices could still exists in some deployments. Migration script +will drop them. + +**Correct getAverageDuration values for most GC builds** + +| PR: https://pagure.io/pull-request/3402 +| PR: https://pagure.io/pull-request/3457 + +``getAverageDuration`` was not making much sense for packages which had also +imported content. Now we ignore zero times for imported content getting better +estimation of real koji builds. + +**Consistence pre/postPackageListChange sequence** + +| PR: https://pagure.io/pull-request/3403 + +If ``packageListAdd`` ended with no action because package is already in the +list, only ``prePackageListChange`` callback was run. In such case no callback +should be run. + +**Check release/version format in cg_import** + +| PR: https://pagure.io/pull-request/3422 + +Failed builds could have had non-sense in release/version. It was never true for +completed builds as koji wouldn't allow such build to finish. Anyway, it was +confusing to see such items in failed builds list, so we've denied it from the +beginning. + +**Expect dict for chainmaven builds** + +| PR: https://pagure.io/pull-request/3444 + +Regression fix for ``chainMaven`` API call which was refusing correct input from +1.29. + +Builder Changes +--------------- +**Catch koji.AuthError and bail out** + +| PR: https://pagure.io/pull-request/3364 + +kojid and kojira now fail on authentication errors and don't try forever. +Anyway, daemons will be restarted via systemd (possibly loading updated +certificates, keytabs, ...) so it could help in some situations. + +**Don't propagate SIGHUP ignore to child processes** + +| PR: https://pagure.io/pull-request/3404 + +Some packages are testing SIGHUP behaviour (e.g. cpython) in their test suite. +Previously we've been blocking SIGHUP in child processes (mock), so it needed +some care from packagers. There is no need to do that, so we've dropped this +behaviour. + +**Beautify logged commands issued by koji** + +| PR: https://pagure.io/pull-request/3405 + +In few cases (e.g. createrepo) koji logs very long command lines. They are now +wrapped to 80 characters for easier log reading. + +**Don't crash in _checkImageState if there's no image.os_plugin** + +| PR: https://pagure.io/pull-request/3445 + +In some cases ImageFactory tried to tear down the VM even in case there wasn't +right code/plugin for that. + +Web Changes +----------- +**archivelist and rpmlist raise error when imageID is unknown** + +| PR: https://pagure.io/pull-request/3382 + +Don't crash on non-existing IDs. + +**Set SameSite and Set-Cookie2** + +| PR: https://pagure.io/pull-request/3390 + +We've added these http headers to increase the security. + +**Convert data to string in escapeHTML first** + +| PR: https://pagure.io/pull-request/3450 + +Better rendering of some non-textual (int, datetime) values. + +Plugin Changes +-------------- +**proton: save messages when connection fails** + +| PR: https://pagure.io/pull-request/3360 + +Further improvement of handling message bus issues. Some types of errors were +not treated as a connection problem (DNS resolution) thus losing messages. + +**kiwi: fix arches check** + +| PR: https://pagure.io/pull-request/3428 + +Regression fix. + +Documentation +------------- +**Increase unit tests** + +| PR: https://pagure.io/pull-request/3380 +| PR: https://pagure.io/pull-request/3383 + diff --git a/koji.spec b/koji.spec index b5ff5cd..595f363 100644 --- a/koji.spec +++ b/koji.spec @@ -83,7 +83,7 @@ %define release %{baserelease} %endif Name: koji -Version: 1.29.1 +Version: 1.30.0 Release: %{release}%{?dist} License: LGPLv2 and GPLv2+ # the included arch lib from yum's rpmUtils is GPLv2+ @@ -645,6 +645,40 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Thu Aug 18 2022 Tomas Kopecek - 1.30.0-1 +- PR#3308: server-side clonetag +- PR#3352: CLI: Remove --paths option from list-buildroot +- PR#3354: remove force option from groupPackageListRemove hub call +- PR#3357: Remove deprecated remove-channel/removeChannel +- PR#3359: Drop old indices +- PR#3360: proton: save messages when connection fails +- PR#3363: CLI: list-channels with specific arch +- PR#3364: Catch koji.AuthError and bail out +- PR#3380: Increase hub unit tests +- PR#3382: www: archivelist and rpmlist raise error when imageID is unknown +- PR#3383: Increase www unit tests +- PR#3385: koji download-task retry download file +- PR#3390: www: Set SameSite and Set-Cookie2 +- PR#3391: Use compression_type in listArchiveFiles +- PR#3401: CLI: download-task prints "No files for download found." to stdout +- PR#3402: Correct getAverageDuration values for most GC builds +- PR#3403: Consistence pre/postPackageListChange sequence +- PR#3404: don't propagate SIGHUP ignore to child processes +- PR#3405: beautify logged commands issued by koji +- PR#3406: Add a utility function to watch builds +- PR#3422: hub: check release/version format in cg_import +- PR#3423: Fix rpm_hdr_size file closing +- PR#3425: Fix download-task all files in build/buildArch method tasks +- PR#3428: Fix arches check in kiwi plugin +- PR#3430: Fix download-task with wait option +- PR#3437: Authtype as enum and getSessionInfo prints authtype name +- PR#3438: CLI: More details when files conflict in download-task +- PR#3440: Parse_arches allows string and list of arches +- PR#3444: expect dict for chainmaven builds +- PR#3445: Don't crash in _checkImageState if there's no image.os_plugin +- PR#3450: convert data to string in escapeHTML first +- PR#3457: Fix query with LIKE string in getAverageBuildDirection + * Mon Jun 27 2022 Tomas Kopecek - 1.29.1-1 - PR#3343 Download output for all type of task in download-task - PR#3388 postgresql hub: date_part instead of EXTRACT diff --git a/koji/_version.py b/koji/_version.py index 86a94c1..4f5be58 100644 --- a/koji/_version.py +++ b/koji/_version.py @@ -1,2 +1,2 @@ -__version_info__ = (1, 29, 1) +__version_info__ = (1, 30, 0) __version__ = '.'.join([str(x) for x in __version_info__]) From 8df46f3c00d028c2790fdb1712fd64d055fe33d5 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Aug 24 2022 07:16:58 +0000 Subject: [PATCH 2/2] emphasize clone-tag incompatibility --- diff --git a/docs/source/release_notes/release_notes_1.30.rst b/docs/source/release_notes/release_notes_1.30.rst index 69d462d..cce74af 100644 --- a/docs/source/release_notes/release_notes_1.30.rst +++ b/docs/source/release_notes/release_notes_1.30.rst @@ -122,6 +122,11 @@ New API calls related to this behaviour are now available: ``massTag``, ``snapsh is basically batch call of ``tagBuildBypass`` ('tag' permission needed) dropping need of ``tagBuildBypass`` multicall overhead. +Note, that this is breaking change. If you use new client with older hub, you'll +not be able to run clone-tag command at all. In such a case we would recommend +temporarily using older client (1.29.1 - e.g. installed via pip if it is not +available as rpm) + **Drop old indices** | PR: https://pagure.io/pull-request/3359