public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/rpkg] 1.70-1: Backporting some fixes and features
Date: Mon, 10 Aug 2026 21:44:09 GMT [thread overview]
Message-ID: <178639824949.1.10041289342553466743.rpms-rpkg-667c617b5307@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/rpkg
Branch : 1.70-1
Commit : 667c617b5307376cd5ae162059243abeca2040bc
Author : Ondřej Nosek <onosek@redhat.com>
Date : 2019-10-25T13:16:05+00:00
Stats : +362/-1 in 6 file(s)
URL : https://src.fedoraproject.org/rpms/rpkg/c/667c617b5307376cd5ae162059243abeca2040bc?branch=1.70-1
Log:
Backporting some fixes and features
- container-build: add --isolated and --koji-parent-build arguments
- Pass skip_build option to buildContainer
- Reuse koji_cli.lib.unique_path
Signed-off-by: Ondřej Nosek <onosek@redhat.com>
---
diff --git a/0001-Reuse-koji_cli.lib.unique_path.patch b/0001-Reuse-koji_cli.lib.unique_path.patch
new file mode 100644
index 0000000..45d3bb4
--- /dev/null
+++ b/0001-Reuse-koji_cli.lib.unique_path.patch
@@ -0,0 +1,48 @@
+From 0ee52cf747e218008984d604c468f9e1515f1ef9 Mon Sep 17 00:00:00 2001
+From: Chenxiong Qi <cqi@redhat.com>
+Date: Mon, 15 Apr 2019 11:17:21 +0800
+Subject: [PATCH 1/5] Reuse koji_cli.lib.unique_path
+
+Call this method instead of constructing the path by rpkg itself.
+
+Merges: https://pagure.io/rpkg/pull-request/336
+
+Signed-off-by: Chenxiong Qi <cqi@redhat.com>
+---
+ pyrpkg/cli.py | 11 +++--------
+ 1 file changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py
+index 6b584ae..7ab146d 100644
+--- a/pyrpkg/cli.py
++++ b/pyrpkg/cli.py
+@@ -18,11 +18,8 @@ import argparse
+ import getpass
+ import logging
+ import os
+-import random
+ import re
+-import string
+ import sys
+-import time
+ from gettext import gettext as _ # For `_ArgumentParser'
+
+ import requests
+@@ -1646,11 +1643,9 @@ see API KEY section of copr-cli(1) man page.
+ callback = None
+ if not self.args.q:
+ callback = koji_cli.lib._progress_callback
+- # define a unique path for this upload. Stolen from /usr/bin/koji
+- uniquepath = 'cli-build/%r.%s' % (
+- time.time(),
+- ''.join([random.choice(string.ascii_letters) for i in range(8)])
+- )
++ # Define a unique path for this upload. Learned from koji to use prefix
++ # cli-build.
++ uniquepath = koji_cli.lib.unique_path('cli-build')
+ if not name:
+ name = os.path.basename(file)
+ # Should have a try here, not sure what errors we'll get yet though
+--
+2.21.0
+
diff --git a/0002-Pass-skip_build-option-to-buildContainer.patch b/0002-Pass-skip_build-option-to-buildContainer.patch
new file mode 100644
index 0000000..55580a1
--- /dev/null
+++ b/0002-Pass-skip_build-option-to-buildContainer.patch
@@ -0,0 +1,29 @@
+From 48e3ce2f754ba9b30b195a3c48ffdfb2b147d1ab Mon Sep 17 00:00:00 2001
+From: Robert Cerven <rcerven@redhat.com>
+Date: Mon, 7 Oct 2019 21:32:46 +0200
+Subject: [PATCH 2/5] Pass skip_build option to buildContainer
+
+* OSBS-7711
+
+Signed-off-by: Robert Cerven <rcerven@redhat.com>
+---
+ pyrpkg/__init__.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 68aceb2..8e0960b 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -3126,7 +3126,8 @@ class Commands(object):
+
+ task_opts = {}
+ for key in ('scratch', 'name', 'version', 'release',
+- 'yum_repourls', 'git_branch', 'signing_intent', 'compose_ids'):
++ 'yum_repourls', 'git_branch', 'signing_intent', 'compose_ids',
++ 'skip_build'):
+ if key in opts:
+ task_opts[key] = opts[key]
+
+--
+2.21.0
+
diff --git a/0003-container-build-add-isolated-argument.patch b/0003-container-build-add-isolated-argument.patch
new file mode 100644
index 0000000..ddc9f71
--- /dev/null
+++ b/0003-container-build-add-isolated-argument.patch
@@ -0,0 +1,112 @@
+From 174f61ce13d47c84a1a9f697c7c6b7c817db73f7 Mon Sep 17 00:00:00 2001
+From: Ken Dreyer <kdreyer@redhat.com>
+Date: Wed, 25 Sep 2019 11:56:21 -0600
+Subject: [PATCH 3/5] 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.
+
+Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
+---
+ pyrpkg/__init__.py | 2 +-
+ pyrpkg/cli.py | 13 +++++++++++++
+ tests/test_cli.py | 4 ++++
+ 3 files changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 8e0960b..1aa1c2b 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -3125,7 +3125,7 @@ class Commands(object):
+ source = self.construct_build_url()
+
+ task_opts = {}
+- for key in ('scratch', 'name', 'version', 'release',
++ for key in ('scratch', 'name', 'version', 'release', 'isolated',
+ 'yum_repourls', 'git_branch', 'signing_intent', 'compose_ids',
+ 'skip_build'):
+ if key in opts:
+diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py
+index 7ab146d..0845d99 100644
+--- a/pyrpkg/cli.py
++++ b/pyrpkg/cli.py
+@@ -1544,6 +1544,13 @@ see API KEY section of copr-cli(1) man page.
+ default=None,
+ help="Specify a release value for this build's NVR")
+
++ parser.add_argument(
++ '--isolated',
++ help='Do not auto-increment the release value or update'
++ ' additional tags in the registry. You must use the'
++ ' --build-release argument',
++ action="store_true")
++
+ parser.add_argument(
+ '--scratch',
+ help='Scratch build',
+@@ -1981,6 +1988,7 @@ see API KEY section of copr-cli(1) man page.
+ opts = {"scratch": self.args.scratch,
+ "quiet": self.args.q,
+ "release": self.args.build_release,
++ "isolated": self.args.isolated,
+ "git_branch": self.cmd.branch_merge,
+ "arches": self.args.arches,
+ "skip_build": self.args.skip_build}
+@@ -1995,6 +2003,11 @@ see API KEY section of copr-cli(1) man page.
+ "signing_intent": self.args.signing_intent,
+ })
+
++ if self.args.isolated and not self.args.build_release:
++ self.container_build_parser.error(
++ 'missing --build-release: using --isolated requires'
++ ' --build-release option')
++
+ section_name = "%s.container-build" % self.name
+ err_msg = "Missing %(option)s option in [%(plugin.section)s] section. " \
+ "Using %(option)s from [%(root.section)s]"
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index ae87030..35b37d6 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -224,6 +224,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'scratch': False,
+ 'quiet': False,
+ 'release': None,
++ 'isolated': False,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -254,6 +255,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'scratch': False,
+ 'quiet': False,
+ 'release': None,
++ 'isolated': False,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -293,6 +295,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'scratch': False,
+ 'quiet': False,
+ 'release': None,
++ 'isolated': False,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -350,6 +353,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'scratch': False,
+ 'quiet': False,
+ 'release': None,
++ 'isolated': False,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+ 'skip_build': False
+--
+2.21.0
+
diff --git a/0004-tests-add-container-build-isolated-test.patch b/0004-tests-add-container-build-isolated-test.patch
new file mode 100644
index 0000000..d3994b3
--- /dev/null
+++ b/0004-tests-add-container-build-isolated-test.patch
@@ -0,0 +1,56 @@
+From 10de8c40d2f2964ce0c4f643a143c59e5fa11f94 Mon Sep 17 00:00:00 2001
+From: Ken Dreyer <kdreyer@redhat.com>
+Date: Fri, 11 Oct 2019 09:42:22 -0600
+Subject: [PATCH 4/5] tests: add container-build --isolated test
+
+Verify the behavior of the container-build "--isolated" option.
+
+Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
+---
+ tests/test_cli.py | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index 35b37d6..fa18647 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -271,6 +271,36 @@ class TestContainerBuildWithKoji(CliTestCase):
+ flatpak=False
+ )
+
++ def test_isolated(self):
++ cli_cmd = ['rpkg', '--path', self.cloned_repo_path, 'container-build',
++ '--isolated', '--build-release', '99']
++
++ with patch('sys.argv', new=cli_cmd):
++ cli = self.new_cli()
++ cli.container_build_koji()
++
++ self.mock_container_build_koji.assert_called_once_with(
++ False,
++ opts={
++ 'scratch': False,
++ 'quiet': False,
++ 'release': '99',
++ 'isolated': True,
++ 'yum_repourls': None,
++ 'git_branch': 'eng-rhel-7',
++ 'arches': None,
++ 'signing_intent': None,
++ 'compose_ids': None,
++ 'skip_build': False
++ },
++ kojiconfig=None,
++ kojiprofile='koji',
++ build_client=utils.build_client,
++ koji_task_watcher=koji_cli.lib.watch_tasks,
++ nowait=False,
++ flatpak=False
++ )
++
+ def test_using_deprecated_kojiconfig(self):
+ """test_build_using_deprecated_kojiconfig
+
+--
+2.21.0
+
diff --git a/0005-container-build-add-koji-parent-build-argument.patch b/0005-container-build-add-koji-parent-build-argument.patch
new file mode 100644
index 0000000..4efcb65
--- /dev/null
+++ b/0005-container-build-add-koji-parent-build-argument.patch
@@ -0,0 +1,106 @@
+From 4b48dbcba45bf3ad44a3179380972b3ad6997616 Mon Sep 17 00:00:00 2001
+From: Ken Dreyer <kdreyer@redhat.com>
+Date: Fri, 11 Oct 2019 09:42:08 -0600
+Subject: [PATCH 5/5] 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.
+
+Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
+---
+ pyrpkg/__init__.py | 4 ++--
+ pyrpkg/cli.py | 7 +++++++
+ tests/test_cli.py | 5 +++++
+ 3 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 1aa1c2b..b139fe0 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -3126,8 +3126,8 @@ class Commands(object):
+
+ task_opts = {}
+ for key in ('scratch', 'name', 'version', 'release', 'isolated',
+- 'yum_repourls', 'git_branch', 'signing_intent', 'compose_ids',
+- 'skip_build'):
++ 'koji_parent_build', 'yum_repourls', 'git_branch',
++ 'signing_intent', 'compose_ids', 'skip_build'):
+ if key in opts:
+ task_opts[key] = opts[key]
+
+diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py
+index 0845d99..0036136 100644
+--- a/pyrpkg/cli.py
++++ b/pyrpkg/cli.py
+@@ -1551,6 +1551,12 @@ see API KEY section of copr-cli(1) man page.
+ ' --build-release argument',
+ action="store_true")
+
++ parser.add_argument(
++ '--koji-parent-build',
++ default=None,
++ help='Specify a Koji NVR for the parent container image. This'
++ ' will override the "FROM" value in your Dockerfile.')
++
+ parser.add_argument(
+ '--scratch',
+ help='Scratch build',
+@@ -1989,6 +1995,7 @@ see API KEY section of copr-cli(1) man page.
+ "quiet": self.args.q,
+ "release": self.args.build_release,
+ "isolated": self.args.isolated,
++ "koji_parent_build": self.args.koji_parent_build,
+ "git_branch": self.cmd.branch_merge,
+ "arches": self.args.arches,
+ "skip_build": self.args.skip_build}
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index fa18647..0868a30 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -225,6 +225,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'quiet': False,
+ 'release': None,
+ 'isolated': False,
++ 'koji_parent_build': None,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -256,6 +257,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'quiet': False,
+ 'release': None,
+ 'isolated': False,
++ 'koji_parent_build': None,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -286,6 +288,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'quiet': False,
+ 'release': '99',
+ 'isolated': True,
++ 'koji_parent_build': None,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -326,6 +329,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'quiet': False,
+ 'release': None,
+ 'isolated': False,
++ 'koji_parent_build': None,
+ 'yum_repourls': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+@@ -384,6 +388,7 @@ class TestContainerBuildWithKoji(CliTestCase):
+ 'quiet': False,
+ 'release': None,
+ 'isolated': False,
++ 'koji_parent_build': None,
+ 'git_branch': 'eng-rhel-7',
+ 'arches': None,
+ 'skip_build': False
+--
+2.21.0
+
diff --git a/rpkg.spec b/rpkg.spec
index a05c6f7..67ab561 100644
--- a/rpkg.spec
+++ b/rpkg.spec
@@ -4,7 +4,7 @@
Name: rpkg
Version: 1.59
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Python library for interacting with rpm+git
License: GPLv2+ and LGPLv2
@@ -21,6 +21,11 @@ Source0: https://pagure.io/releases/rpkg/%{name}-%{version}.tar.gz
# and there is only old rpm-python package in EL6 and 7, so just simply to
# remove rpm-py-installer for now.
Patch0: remove-koji-and-rpm-py-installer-from-requires.patch
+Patch1: 0001-Reuse-koji_cli.lib.unique_path.patch
+Patch2: 0002-Pass-skip_build-option-to-buildContainer.patch
+Patch3: 0003-container-build-add-isolated-argument.patch
+Patch4: 0004-tests-add-container-build-isolated-test.patch
+Patch5: 0005-container-build-add-koji-parent-build-argument.patch
%if 0%{?fedora} || 0%{?rhel} > 7
# Enable python3 build by default
@@ -271,6 +276,11 @@ nosetests tests
%changelog
+* Fri Oct 25 2019 Ondrej Nosek <onosek@redhat.com> - 1.59-2
+- Backport: container-build: add --isolated and --koji-parent-build arguments
+- Backport: Pass skip_build option to buildContainer
+- Backport: Reuse koji_cli.lib.unique_path
+
* Mon Sep 16 2019 Ondřej Nosek <onosek@redhat.com> - 1.59-1
- Add argument to skip build option for container-build (rcerven)
- Sorting imports (onosek)
next reply other threads:[~2026-08-10 21:44 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 21:44 [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-08-10 21:44 [rpms/rpkg] 1.70-1: Backporting some fixes and features
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178639824949.1.10041289342553466743.rpms-rpkg-667c617b5307@fedoraproject.org \
--to=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox