From 004fea662b4dffc8712ce342c0bd9a34c9ca4c19 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Dec 18 2017 22:10:22 +0000 Subject: PR#746: Release 1.15.0 Merges #746 https://pagure.io/koji/pull-request/746 Fixes: #745 https://pagure.io/koji/issue/745 Need 1.15.0 release notes --- diff --git a/docs/schema-upgrade-1.14-1.15.sql b/docs/schema-upgrade-1.14-1.15.sql new file mode 100644 index 0000000..dd4e026 --- /dev/null +++ b/docs/schema-upgrade-1.14-1.15.sql @@ -0,0 +1,3 @@ +-- Nothing to do +-- +-- There were no schema changes between 1.14 and 1.15 diff --git a/docs/source/conf.py b/docs/source/conf.py index 24ec112..6414fa5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -54,9 +54,9 @@ copyright = u'2017, Mike McLean, Mike B, Dennis Gilmore, Mathieu Bridon, Ian McL # built documents. # # The short X.Y version. -version = '1.14' +version = '1.15' # The full version, including alpha/beta/rc tags. -release = '1.14.0' +release = '1.15.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/migrating_to_1.15.rst b/docs/source/migrating_to_1.15.rst new file mode 100644 index 0000000..f768e0a --- /dev/null +++ b/docs/source/migrating_to_1.15.rst @@ -0,0 +1,20 @@ +Migrating to Koji 1.15 +====================== + +.. + reStructured Text formatted + +The update from to 1.15 is comparatively light from a migration perspective. + +DB Updates +---------- + +There are no schema updates in 1.15. + + +Other changes +------------- + +There are numerous other changes in 1.15 that should not have a direct impact +on migration. For details see: +:doc:`release_notes_1.15` diff --git a/docs/source/migrations.rst b/docs/source/migrations.rst index 45f3639..10ca3a6 100644 --- a/docs/source/migrations.rst +++ b/docs/source/migrations.rst @@ -5,6 +5,7 @@ Migrations .. toctree:: :maxdepth: 1 + migrating_to_1.15 migrating_to_1.14 migrating_to_1.13 migrating_to_1.12 diff --git a/docs/source/release_notes.rst b/docs/source/release_notes.rst index 45b5efe..56030fc 100644 --- a/docs/source/release_notes.rst +++ b/docs/source/release_notes.rst @@ -5,6 +5,7 @@ Release Notes .. toctree:: :maxdepth: 1 + release_notes_1.15 release_notes_1.14 release_notes_1.13 diff --git a/docs/source/release_notes_1.15.rst b/docs/source/release_notes_1.15.rst new file mode 100644 index 0000000..ba8bf18 --- /dev/null +++ b/docs/source/release_notes_1.15.rst @@ -0,0 +1,274 @@ +Koji 1.15 Release Notes +======================= + +Migrating from the previous release +----------------------------------- + +For details on migrating see :doc:`migrating_to_1.15` + + +Client Changes +-------------- + + +Display license Info +^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/686 + + +The ``rpminfo`` command now displays the ``License`` field from the rpm. + + +Keytabs for GSSAPI authentication +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/708 + +Previously keytabs were only supported by the older kerberos auth method, which +is not available on Python 3. Now the gssapi method supports them as well. + + +Add krb_canon_host option +^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/653 + +This release adds a ``krb_canon_host`` option that tells Koji clients +to use the dns canonical hostname for kerberos auth. + +This option allows kerberos authentication to work in situations where +the hub is accessed via a cname, but the hub's credentials are under +its canonical hostname. + +If specified, this option takes precedence over the older +option named ``krb_rdns``. That option caused Koji clients to perform a +reverse name lookup for kerberos auth. + +When configuring kojiweb (in web.conf), the option is named ``KrbCanonHost``. + +Both options only affect the older kerberos authentication path, and not +gssapi. + + +Watch-task return code +^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/703 + +Previously, the ``watch-task`` command would return a non-zero exit status +if any subtask failed, even if this did not cause the parent task to fail. + +Now that we have cases where subtasks are optional, this no longer makes sense. +The exit code is now based solely on the results of +the top level tasks it is asked to watch. + + +New runroot options +^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/633 + +The ``runroot`` command now supports options similar to the various build commands. These new +options are: + + +.. code-block:: text + + --nowait Do not wait on task + --watch Watch task instead of printing runroot.log + --quiet Do not print the task information + + +New watch-logs options +^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/625 + +The ``watch-logs`` command now supports the following new options: + +.. code-block:: text + + --mine Watch logs for all your tasks + --follow Follow spawned child tasks + + +Web UI changes +-------------- + +Archive component display +^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/610 + +Previously, the web UI only displayed component lists for image builds. +However, new build types can also have component lists. + +Now the interface will display components for any archive that has them. + + +Display license Info +^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/686 + + +The ``rpminfo`` page now displays the ``License`` field from the rpm. + + +Show suid bit +^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/617 + +The web UI will now display the setuid bit when displaying rpm/archive file contents. + + + + +Builder changes +--------------- + + +Alternate tmpdir for mock chroots +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/602 + + +Recent versions of mock (1.4+) default to ``use_nspawn=True``, which results +in /tmp being a fresh tmpfs mount on every run. This means the /tmp +directory no longer persists outside of the mock invocation. + +Now, the builder will use /builddir/tmp instead of /tmp for persistent data. + + +Store git commit hash +^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/674 + +In Koji, for builds from an SCM, the source is specified as an +scm url. +For git urls, the revision in that url can be anything that git +will recognize, including: + + - a sha1 ref + - an abbreviated sha1 ref + - a branch name + - a tag + - HEAD + +With this change: + + * the revision is replaced with the full sha1 ref for git urls + * the scm url is stored in build.source + * the original scm url is saved in build.extra + +Previously, this source url was not properly stored for rpm builds. It +appeared in the task parameters, but the build.source field remained blank. +If a symbolic git ref (e.g. HEAD) was given in the url, the underlying +sha1 value was only recorded in the task logs. + + + +System changes +-------------- + + +Volume policy support +^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/622 + +Koji has for many years had the ability to split its storage across multiple +volumes. However, there is no automatic process for placing builds onto +volumes other than the primary. To do so often requires a lot of manual work +from an admin. + +This feature: + + * adds a volume policy check to the key import pathways + * adds an applyVolumePolicy call to apply the policy to existing builds + +The hub consults the volume policy at various points to +determine where a build should live. This allows admins to make rules like: + + - all kernel builds go to the volume named kstore + - all builds built from the epel-7-build tag go to the volume named epel7 + - all builds from the osbs content generator go to the volume named osbs + +The default policy places all builds on the default volume. + +See also: :doc:`volumes` + +Messagebus plugin changes +^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/537 + +There are two notable changes to the messagebus plugin this release: + + +Deferred sending +"""""""""""""""" + +Similar to the current behavior of the protonmsg plugin, messages are queued +up during hub calls and only sent out during the ``postCommit`` callback. + +This avoids sending messages about failed calls, which can be confusing to +message consumers (e.g. build state change messages about a build that does +not exist because it failed to import). + +Test mode +""""""""" + +The plugin now looks for a boolean ``test_mode`` option. If it is true, then +the messages are still queued up, but not actually sent. This makes it +possible to enable the plugin in test environments without having to set up a +separate message bus. + + +Protonmsg plugin changes +^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/657 +| PR: https://pagure.io/koji/pull-request/651 + +There are two changes to how the protonmsg plugin handles rpmsign events: + + 1. The arch of the rpm is included in messages + 2. The message are omitted when the sigkey is empty + + + +No notifications for disabled users or hosts +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/615 + + +Koji will no longer send out email notifications to disabled users or +to users corresponding to a host. + + +Replace pycurl with requests +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/601 + +All uses of the pycurl library have been replaced with calls +to python-requests, so pycurl is no longer required. + + +Drop importBuildInPlace call +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +| PR: https://pagure.io/koji/pull-request/606 + +The deprecated ``importBuildInPlace`` call has been dropped. + +This call was an artifact of a particular bootstrap event that happened a long +time ago. It was never really documented or recommended for use. + + diff --git a/koji.spec b/koji.spec index 23888d5..e35e1b8 100644 --- a/koji.spec +++ b/koji.spec @@ -31,7 +31,7 @@ %define release %{baserelease} %endif Name: koji -Version: 1.14.0 +Version: 1.15.0 Release: %{release}%{?dist} License: LGPLv2 and GPLv2+ # koji.ssl libs (from plague) are GPLv2+ @@ -478,6 +478,72 @@ fi %endif %changelog +* Mon Dec 18 2017 Mike McLean - 1.15.0-1 +- PR#602: don't use /tmp in chroot +- PR#674: store git commit hash to build.source +- PR#492: Setuptools support +- PR#740: Check for login earlier +- PR#708: Implement support for keytab in gssapi codepaths +- PR#446: run checks earlier for cg_import +- PR#610: show components for all archives +- PR#578: cli: fix changelog encode for PY3 +- PR#533: Treat canceled tasks as failed for optional_archs +- PR#686: Display license info in CLI's rpminfo and Web UI +- PR#718: convenience script to run py2 and py3 tests in parallel +- PR#722: docs: check external repos with taginfo +- PR#675: refactory cli unittests, move share code pieces to utilities library +- PR#714: Use task id as key to sort +- PR#707: add argument detection to prevent array out of index error. +- PR#717: Fix watch-tasks unit tests +- PR#615: don't send notifications to disabled users or hosts +- PR#698: set optional_arches to list +- PR#703: cli: make return code of watch_task to always ignore sub-task failure +- PR#704: cli: use strict with getTag call when appropriate +- PR#710: use `hasPerm` to check permission in save_failed_tree +- PR#699: Add documentation for storage volumes +- PR#693: Import koji.plugin explicitly +- PR#647: Don't check non-existing file +- PR#664: make grab_session_options to accept dict directly +- PR#673: functions for parsing task parameters +- PR#681: use six.StringIO everywhere +- PR#684: correct format and fix issue #682 +- PR#646: Improve test coverage in koji/util +- PR#677: handle DateTime objects in encode_datetime +- PR#670: Create repo without --deltas if no old package dir is set +- PR#666: Few cheap python3 compatibilities +- PR#662: mock koji.commands._running_in_bg function to run unittest in background +- PR#645: don't fail on CLI plugins without docstrings +- PR#655: fix unreachable code +- PR#656: remove unused calls +- PR#652: add unittests for koji commands +- PR#658: consolidate safe_rmtree, rmtree and shutil.rmtree +- PR#660: more runroot tests +- PR#633: unify runroot CLI interface +- PR#649: delete build directory if cg_import fails +- PR#653: Add krb_canon_host option +- PR#657: protonmsg: include the arch in the headers of rpm sign messages +- PR#651: protonmsg: don't send rpm.sign messages when the sigkey is empty +- PR#654: Update links in docs to point to correct pages +- PR#631: cg_import fails immediately if build directory already exists +- PR#601: replace pycurl with requests +- PR#608: tests for handling user groups +- PR#637: set timezone to US/Eastern when test_build_notification executing +- PR#636: use urlparse.parse_qs instead of deprecated cgi.parse_qs +- PR#628: add a unit test for buildNotification task +- PR#620: some tests for koji.auth +- PR#625: watch-logs --mine --follow +- PR#629: fix wrong mock.patch target +- PR#598: kojira: speed up repo dist check +- PR#622: basic volume policy support +- PR#624: fix formatTime for DateTime +- PR#537: messagebus plugin: deferred sending and test mode +- PR#605: update docstring +- PR#611: the split_cli.py script is no longer needed +- PR#617: display suid bit in web ui +- PR#619: cleanup unnecessary subdir phony +- PR#606: drop importBuildInPlace call +- PR#609: move spin-livemedia to build section + * Mon Sep 25 2017 Mike McLean - 1.14.0-1 - PR#597: use_old_ssl is deprecated - PR#591: Normalize paths for scms