diff --git a/docs/schema-upgrade-1.28-1.29.sql b/docs/schema-upgrade-1.28-1.29.sql new file mode 100644 index 00000000..10fe8a19 --- /dev/null +++ b/docs/schema-upgrade-1.28-1.29.sql @@ -0,0 +1,5 @@ +-- upgrade script to migrate the Koji database schema +-- from version 1.28 to 1.29 + + +-- This version introduced no changes in db schema diff --git a/docs/source/migrations/migrating_to_1.29.rst b/docs/source/migrations/migrating_to_1.29.rst new file mode 100644 index 00000000..a3858b26 --- /dev/null +++ b/docs/source/migrations/migrating_to_1.29.rst @@ -0,0 +1,17 @@ +Migrating to Koji 1.29 +====================== + +You should consider the following changes when migrating to 1.28: + +DB Updates +---------- + +There is no schema change this time. + +As in previous releases, we provide a migration script which is no-op in this case. + +Other changes +------------- + +There are numerous other changes in 1.29 that should not have a direct impact on migration. For +details see: :doc:`../release_notes/release_notes_1.29` diff --git a/docs/source/migrations/migrations.rst b/docs/source/migrations/migrations.rst index 88f8d49e..4c36ce3f 100644 --- a/docs/source/migrations/migrations.rst +++ b/docs/source/migrations/migrations.rst @@ -5,6 +5,7 @@ Migrations .. toctree:: :maxdepth: 1 + migrating_to_1.29 migrating_to_1.28 migrating_to_1.27 migrating_to_1.26 diff --git a/docs/source/release_notes/release_notes.rst b/docs/source/release_notes/release_notes.rst index ae0969f4..68b3e1ba 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.29 release_notes_1.28.1 release_notes_1.28 release_notes_1.27.1 diff --git a/docs/source/release_notes/release_notes_1.29.rst b/docs/source/release_notes/release_notes_1.29.rst new file mode 100644 index 00000000..6d99f5c2 --- /dev/null +++ b/docs/source/release_notes/release_notes_1.29.rst @@ -0,0 +1,237 @@ + +Koji 1.29.0 Release notes +========================= + +All changes can be found in `the roadmap `_. +Most important changes are listed here. + + +Migrating from Koji 1.28/1.28.1 +------------------------------- + +For details on migrating see :doc:`../migrations/migrating_to_1.29` + + +Security Fixes +-------------- + +None + + +Client Changes +-------------- +**Retry gssapi_login if it makes sense** + +| PR: https://pagure.io/koji/pull-request/3248 + +Only place in CLI where we did not retried when server was inaccessible was +rewriteen to retry in some cases when there is an expecetation that it could +work. + +**Fix more users in userinfo** + +| PR: https://pagure.io/koji/pull-request/3325 + +Userinfo regressions - it now correctly list information for all users specified +on command line. + +**Download output for all task types in download-task** + +| PR: https://pagure.io/koji/pull-request/3343 + +Some types of output were not reachable via CLI (but via web yes). E.g. scratch +image builds. All content now should be downloadble via CLI (see ``-all`` and +older ``--logs`` options). Also new ``--dirperarch`` option is there now to +handle same-named artifacts/logs for different archs. + +**Allow untag-build for blocked packages** + +| PR: https://pagure.io/koji/pull-request/3255 + +When package is blocked in the tag but there was already some build for that +package, CLI refused to untag it. It is now fixed. + +API Changes +----------- +**Remove taskReport API call** + +| PR: https://pagure.io/koji/pull-request/3237 + +**Add strict option to getRPMHeaders** + +| PR: https://pagure.io/koji/pull-request/3256 + +Similarly to other stricts it will raise an error if rpm doesn't exist. Empty +dictionary was returned instead which was indistunguishable with missing +requested key in existing RPM. This behaviour is still available with +``strict=False``. + +**Add extra of builds to listTagged call result** + +| PR: https://pagure.io/koji/pull-request/3282 + +Pattern of ``listTagged`` followed by multicall of ``getBuild`` is used often, +so we decided to put missing info (``extra`` field) directly into ``listTagged`` +so only one call is required now. + +**Add as_string option to showOpts for raw string or dict output** + +| PR: https://pagure.io/koji/pull-request/3313 +| PR: https://pagure.io/koji/pull-request/3349 + +Usable for koji administration - additional format for getting current +configuration in machine-readable format. ``as_string=True`` reflects old +behaviour. + +Builder Changes +--------------- +**Check ccache size before trying to use it** + +| PR: https://pagure.io/koji/pull-request/3234 + +Machine restart could cause failing authentication for the builder as ccache +file is not properly deleted. + +**call git rev-parse before chowning source directory** + +| PR: https://pagure.io/koji/pull-request/3355 + +Newer git (2.35.2) fixed long-standing git security issue but we needed to adapt +our code as a result. + +System Changes +-------------- +**Remove koji.listFaults** + +| PR: https://pagure.io/koji/pull-request/3238 + +This method was not used anywhere in koji code and could complicate future +exception redesign, so we've removed it. + +**Add log file for match_rpm warnings in cg_import** + +| PR: https://pagure.io/koji/pull-request/3257 + +CG import was writing errors to hub logs when rpm were not found in koji. As it +could be a problem in some workflows, we've added more visibility by uploading +separate log to the imported build which lists these errors. + +**Return 400 codes when client fails to send a full request** + +| PR: https://pagure.io/koji/pull-request/3269 + +Changing to errcode instead of exception will allow client to retry it. So, +another type of network problems can be handled more transparently. + +**Weak dep on httpd.service for kojid/ra - koji** + +| PR: https://pagure.io/koji/pull-request/3277 + +In case more services are running on same node (e.g. hub + kojira) this change +will trigger ``kojid``/``kojira`` after hub is running resulting in no initial +errors due to inaccessible hub. + +**Log content-length when we get an error reading request** + +| PR: https://pagure.io/koji/pull-request/3289 + +Additional logging information for unstable networks. + +**Hub, plugins and tools inputs validation** + +| PR: https://pagure.io/koji/pull-request/3318 + +Internal changes improving security via better input handling. + +**Add admin check when priority has negative value in wrapperRPM** + +| PR: https://pagure.io/koji/pull-request/3321 +| PR: https://pagure.io/koji/pull-request/3347 + +It was a bug present in the code, where ``wrapperRPM`` s could have been set to +negative priority even by their owners. Negative priorities are reserved just +for admins. + +**Permit forcing releasever/arch within mock per tag** + +| PR: https://pagure.io/koji/pull-request/3358 + +Mock's ``forcearch`` and ``relver`` options are now accesible via tag extras. + +Web +--- +**Add free task for admin** + +| PR: https://pagure.io/koji/pull-request/3272 + +In addition to cancelling task, admin now has also "free" button available. + +**Add blocked option to packages page** + +| PR: https://pagure.io/koji/pull-request/3334 +| PR: https://pagure.io/koji/pull-request/3329 + +New filter to see blocked packages in webui. + +**Display load/capacity at hosts page** + +| PR: https://pagure.io/koji/pull-request/3346 + +It is sometimes useful to see these values there. + +Kojira +------ +**Use PrivateTmp for kojid/kojira** + +| PR: https://pagure.io/koji/pull-request/3276 + +More safe/secure handling of tempdirs. + +Plugins +------- +**Adding Driver Update Disk building support** + +| PR: https://pagure.io/koji/pull-request/3217 + +Previously Driver Update Disks were done by custom scripts or by `ddiskit +`_. Now it can be done +in koji, so it benefits from auditability, etc. + +**koji-sidetag-cleanup: delete inactive tags** + +| PR: https://pagure.io/koji/pull-request/3294 + +New cleanup option allow to delete sidetags which are no longer active (no new +builds are tagged there). + +**Add tag2distrepo plugin to hub** + +| PR: https://pagure.io/koji/pull-request/3326 + +Plugin will trigger ``distrepo`` tasks for configured tags when a new build +arrives. + +**Fix age to max_age in protonmsg** + +| PR: https://pagure.io/koji/pull-request/3344 + +Incoherent naming in documentation and code is now unified. + + +Documentation +------------- +**Clarify rpm imports** + +| PR: https://pagure.io/koji/pull-request/3301 + +**Better description for kiwi channel requirements** + +| PR: https://pagure.io/koji/pull-request/3331 + +**Winbuild documentation updates** + +| PR: https://pagure.io/koji/pull-request/3333 + +**Document "list-signed" requires filesystem access** + +| PR: https://pagure.io/koji/pull-request/3342 diff --git a/koji.spec b/koji.spec index 10d63c73..051aa206 100644 --- a/koji.spec +++ b/koji.spec @@ -83,7 +83,7 @@ %define release %{baserelease} %endif Name: koji -Version: 1.28.1 +Version: 1.29.0 Release: %{release}%{?dist} License: LGPLv2 and GPLv2+ # the included arch lib from yum's rpmUtils is GPLv2+ @@ -644,6 +644,57 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Thu May 12 2022 Tomas Kopecek - 1.29.0-1 +- PR#3349: Py3 re pattern fix +- PR#3338: Add header separaton to list-hosts and list-channels +- PR#3336: Fix list-permissions ordering and header +- PR#3325: cli: fix more users in userinfo +- PR#3355: call git rev-parse before chowning source directory +- PR#3353: Fix wrapper-rpm unit test +- PR#3326: Add tag2distrepo plugin to hub +- PR#3321: Add admin check when priority has negative value in wrapperRPM +- PR#3347: Fix input validation +- PR#3282: Add extra of builds to listTagged call result +- PR#3344: Fix age to max_age in protonmsg +- PR#3289: log content-length when we get an error reading request +- PR#3334: Add blocked option to packages page +- PR#3346: www: display load/capacity at hosts page +- PR#3278: Download-logs with nvr without task ID downloads a logs +- PR#3313: Add as_string option to showOpts for raw string or dict output +- PR#3217: Adding Driver Update Disk building support +- PR#3318: Hub, plugins and tools inputs validation +- PR#3256: add strict option to getRPMHeaders +- PR#3342: cli: document "list-signed" requires filesystem access +- PR#3257: Add log file for match_rpm warnings in cg_import +- PR#3276: Use PrivateTmp for kojid/kojira +- PR#3333: doc: winbuild documentation updates +- PR#3329: Fix number of packages without blocked +- PR#3331: doc: better description for kiwi channel requirements +- PR#3279: Skip activate_session when logged +- PR#3272: Webui: add free task for admin +- PR#3301: doc: clarify rpm imports +- PR#3306: Koji 1.28.1 release notes +- PR#3309: cli: rename "args" var for list-tags command +- PR#3248: Retry gssapi_login if it makes sense +- PR#3303: www: fix attribute test +- PR#3292: docs: Task flow diagram +- PR#3290: web: encode filename as UTF-8 +- PR#3259: kojira: don't call listTags more than once +- PR#3262: Fix parsing of URLs with port numbers +- PR#3298: Use buildins.type when option is called type in readTaggedRPMS +- PR#3300: Same format output for list-builroot with verbose for py3/py2 +- PR#3297: doc: fix readTaggedRPMs rpmsigs option description +- PR#3234: Check ccache size before trying to use it +- PR#3270: Increase CLI test cases +- PR#3208: hub: improve inheritance priority collision error message +- PR#3269: return 400 codes when client fails to send a full request +- PR#3265: Set dst permissions same as src permissions +- PR#3255: allow untag-build for blocked packages +- PR#3252: Fix tag and target shows as string, not as dict to string +- PR#3238: Remove koji.listFaults +- PR#3237: Remove taskReport API call + + * Mon Mar 28 2022 Tomas Kopecek - 1.28.0-1 - PR#3263: Fix syntax error - PR#3303: www: fix attribute test @@ -659,7 +710,7 @@ rm -rf $RPM_BUILD_ROOT - PR#3265: Set dst permissions same as src permissions - PR#3252: Fix tag and target shows as string, not as dict to string -* Wed Feb 2 2022 Tomas Kopecek - 1.28.0-1 +* Wed Feb 2 2022 Tomas Kopecek - 1.27.0-1 - PR#3028: Add limits on name values - PR#3105: Deprecated --paths option in list-buildroot - PR#3108: Remove rename-channel CLI and use editChannel in renameChannel diff --git a/koji/_version.py b/koji/_version.py index fb6a97f7..8d7483b2 100644 --- a/koji/_version.py +++ b/koji/_version.py @@ -1,2 +1,2 @@ -__version_info__ = (1, 28, 1) +__version_info__ = (1, 29, 0) __version__ = '.'.join([str(x) for x in __version_info__])