From 6de3c33bbf217fecd7243430ceb7cec1eea20d2e Mon Sep 17 00:00:00 2001 From: Ondrej Nosek Date: Mar 17 2020 07:37:48 +0000 Subject: 1.60 Release Signed-off-by: Ondrej Nosek --- diff --git a/README.rst b/README.rst index a54f23b..24142b5 100644 --- a/README.rst +++ b/README.rst @@ -5,7 +5,7 @@ This is the rpkg project, which mostly is a python library for dealing with rpm packaging in a git source control. pyrpkg is the base library that sites can subclass to create useful tools. -rpkg works with Python 2.6, 2.7, 3.5, 3.6 and 3.7. +rpkg works with Python 2.6, 2.7, 3.6 and 3.7. License ======= diff --git a/doc/source/conf.py b/doc/source/conf.py index b23ce58..0f99571 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -55,9 +55,9 @@ author = u'rpkg team' # built documents. # # The short X.Y version. -version = u'1.59' +version = u'1.60' # The full version, including alpha/beta/rc tags. -release = u'1.59' +release = u'1.60' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/source/releases.rst b/doc/source/releases.rst index 8a5e643..9cfec25 100644 --- a/doc/source/releases.rst +++ b/doc/source/releases.rst @@ -6,6 +6,7 @@ Releases .. toctree:: :maxdepth: 1 + releases/1.60 releases/1.59 releases/1.58 releases/1.57 diff --git a/doc/source/releases/1.60.rst b/doc/source/releases/1.60.rst new file mode 100644 index 0000000..3736dc2 --- /dev/null +++ b/doc/source/releases/1.60.rst @@ -0,0 +1,219 @@ +.. _release-notes-1.60: + +rpkg 1.60 Release Notes +======================= + +Released on *March 17, 2020* + +Python compatibility +-------------------- + +rpkg works with Python 2.6, 2.7, 3.6 and 3.7. + +What's new in rpkg 1.60 +----------------------- + +Lookaside cache upload is not based on an extension +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Files recognized as binaries are uploaded to the lookaside cache. Its +size or file extension doesn't matter. This functionality involves +"import" command. "new-sources" command still allows any file to be +uploaded manually. + +Clone config customization for namespaces +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After the 'clone' operation, a git config is updated with 'git-bz' +config values. Now, these values can be customized based on the +namespace of the cloned repository. Each namespace has its own +key 'clone_config_' in config section. For namespaces, +that missing this config ('tests' namespace is a good example), +any of these values aren't updated. + +A repository has to be namespaced ('distgit_namespaced = True') +for the config to be applied. + +Config file of x-pkg has to be modified. + +`(new-)sources` should fail with git tracked files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Implements additional protection (except .gitignore warning) that +prevents overwrite git tracked files when x-pkg sources is run. +And also forbids uploading tracked files that may not belong +to the lookaside cache. + +Handle new cachito dependency replacement argument +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +OSBS supports integration with cachito `[1]`_. One of cachito features is +to allow a project's dependencies to be replaced by a different version +of the same project or by an entirely different project (to handle +patched forks). This patch allows users to pass these cachito dependency +replacement options to container builds. + +.. _`[1]`: https://osbs.readthedocs.io/en/latest/admins.html#cachito-integration + +RPM header read fixed +~~~~~~~~~~~~~~~~~~~~~ + +RPM 4.15 changed header returns from type 'bytes' to 'string'. +Handle either by converting to 'string' if necessary. + +Propagate module_hotfixes to getMockConfig +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Koji cli does this, and any wrapper tool should too to generate the +same output. + +`container-build`: add `--koji-parent-build` argument +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Add support for a new ``--koji-parent-build`` argument to the +container-build sub-command. + +OSBS allows users to dynamically override the Dockerfile's "FROM" image +at build time. This allows you to build your container against a +specific parent image without pushing changes to dist-git. + +`container-build`: add `--isolated` argument +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Add support for a new ``--isolated`` argument to the ``container-build`` +sub-command. + +Isolated builds will only update the {version}-{release} unique tag and +the primary tag in target container registry. Also, OSBS's bump_release +plugin will ignore isolated builds. + +Users must specify a ``--build-release`` argument when the use the +``--isolated`` argument. + +Unittests are included. + +`container-build`: additional warning when using `--release` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Add an additional warning when using ``--release`` with ``container-build`` +that the results may not be intented and that ``--target`` should be used +instead. + +Create stats for module builds in 'init' state +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When watching builds, the dictionary to track module build progress was +not populated with tracking information due to an early 'continue' +statement. + +This caused watching builds fail when builds transitioned from 'init' to +'build' state between two watch cycles, with: + + Could not execute module_build: 'tasks_stats' + +This happened when building modules without any components and starting +the watch as soon as the build was submitted. + +Treating 'init' as any other state solves this issue, as the 'build' +branch in 'module_watch_build()' will find tracking information +pre-populated. + +This is safe to do since 02affb4: we won't fail on an empty 'tasks' +dictionary. + +Use a single thread pool while watching module builds +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Calling the Pool() constructor on each iteration leaks the threads, +leading to a "can't start new thread" error during long waits. + +This can be aggravated by the constructor being called without an +argument, which by default uses the systems CPU count to create the +pool. When running in a container in a cloud environment this number can +be unexpectedly large (for example, 64). + +Reuse the pool and limit the number of threads in the pool. + +Don't expect module build tasks to have "rpms" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There are module builds, which won't build any components.There are +module builds, which won't build any components. These module builds +won't have an "rpms" key in "tasks". + +Expect this to happen and don't fail when watching module builds of +this kind. + +Reuse koji_cli.lib.unique_path +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Call this method instead of constructing the path by rpkg itself. + +`module-build` optional key help +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Enhances help for ``module-build`` command regarding option ``optional`` that +allows undocumented values. These values are passed to MBS and processed +there, therefore a proper link to a MBS description is provided. + +Modify watch-cancel message +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Just a little easter-egg referencing the Night's Watch from the +Game of Thrones series. + +Coding style changes +~~~~~~~~~~~~~~~~~~~~ + +* Line up descriptions for better code readability +* Simplify methods for getting namespace giturl +* Repair Jenkins tests to keep Python 2.6 code compatibility. + +Other small fixes +~~~~~~~~~~~~~~~~~ + +* Pass skip_build option to buildContainer +* Isolated `container-build` should allow arches override +* Allow `compose-id` with `repo-url` for container_build +* Run newer version of `sphinx-build` tool +* More transparent check of retired package. + Code for that checking was moved into separate method. +* Also capture stderr in logfile +* Add check for wrong repo name format during clone + +Change Logs +----------- +- More transparent check of retired package (onosek) +- Run newer version of sphinx-build tool (onosek) +- Lookaside cache upload is not based on an extension - `#484`_ (onosek) +- container-build: additional warning when using --release (mlangsdo) +- allow compose-id with repo-url for container_build (rcerven) +- Clone config customization for namespaces - `#231`_ (onosek) +- Repair Jenkins tests (onosek) +- (new-)sources should fail with git tracked files - `#241`_ (onosek) +- Handle new cachito dependency replacement argument (athoscr) +- module-build optional key help - `#280`_ (onosek) +- Modify watch-cancel message (sgallagh) +- Create stats for module builds in 'init' state (csomh) +- RPM 4.15 changed header returns from type 'bytes' to 'string'. Handle either + by converting to 'string' if necessary. (mmathesi) +- Don't expect module build tasks to have "rpms" (mulaieva) +- Propagate module_hotfixes to getMockConfig - `rhbz#1780228`_ (lsedlar) +- Add check for wrong repo name format during clone - `#353`_ (onosek) +- Simplify methods for getting namespace giturl (onosek) +- Use a single thread pool while watching module builds (csomh) +- Also capture stderr in logfile (orion) +- Line up descriptions for better code readability (onosek) +- Isolated container-build should allow arches override (rcerven) +- container-build: add --koji-parent-build argument (kdreyer) +- tests: add container-build --isolated test (kdreyer) +- container-build: add --isolated argument (kdreyer) +- Pass skip_build option to buildContainer (rcerven) +- Reuse koji_cli.lib.unique_path (cqi) + +.. _`#484`: https://pagure.io/rpkg/issue/484 +.. _`#231`: https://pagure.io/fedpkg/issue/231 +.. _`#241`: https://pagure.io/fedpkg/issue/241 +.. _`#280`: https://pagure.io/fedpkg/issue/280 +.. _`rhbz#1780228`: https://bugzilla.redhat.com/show_bug.cgi?id=1780228 +.. _`#353`: _https://pagure.io/fedpkg/issue/353 diff --git a/setup.py b/setup.py index d181934..9461666 100755 --- a/setup.py +++ b/setup.py @@ -50,7 +50,7 @@ with open(readme_rst, 'r') as readme: setup( name="rpkg", - version="1.59", + version="1.60", author="Dennis Gilmore", author_email="ausil@fedoraproject.org", description=("A python library and runtime script for managing RPM"