public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/rpkg] rawhide: New release 1.70
@ 2026-07-31 2:56
0 siblings, 0 replies; only message in thread
From: @ 2026-07-31 2:56 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/rpkg
Branch : rawhide
Commit : ccb7313fa6a1b1eec306746e7f97697c673acf66
Author : Ondřej Nosek <onosek@redhat.com>
Date : 2026-07-31T02:54:23+00:00
Stats : +27/-886 in 9 file(s)
URL : https://src.fedoraproject.org/rpms/rpkg/c/ccb7313fa6a1b1eec306746e7f97697c673acf66?branch=rawhide
Log:
New release 1.70
Signed-off-by: Ondřej Nosek <onosek@redhat.com>
---
diff --git a/.gitignore b/.gitignore
index 4e5316b..799ebe7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,3 +65,4 @@
/rpkg-1.67.tar.gz
/rpkg-1.68.tar.gz
/rpkg-1.69.tar.gz
+/rpkg-1.70.tar.gz
diff --git a/0002-Execute-shell-command-Non-interactive-stdin.patch b/0002-Execute-shell-command-Non-interactive-stdin.patch
deleted file mode 100644
index 82e9517..0000000
--- a/0002-Execute-shell-command-Non-interactive-stdin.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 0123ce42d214968defe74b8a05ba7d9c7ecfa6c1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
-Date: Mon, 6 Oct 2025 00:23:26 +0200
-Subject: [PATCH] Execute shell command: Non-interactive stdin
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-During the `push` command on non-interactive environment, rhpkg hangs.
-
-JIRA: RHELBLD-17387
-
-Signed-off-by: Ondřej Nosek <onosek@redhat.com>
----
- pyrpkg/__init__.py | 9 ++++++++-
- tests/test_commands.py | 23 +++++++++++++++--------
- 2 files changed, 23 insertions(+), 9 deletions(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index 57b273d..4d453ca 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -1302,6 +1302,7 @@ class Commands(object):
- # stderr, so....
- parent_proc = subprocess.Popen(
- command, env=environ, shell=shell, cwd=cwd, # nosec
-+ stdin=subprocess.DEVNULL,
- stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-
- proc = subprocess.Popen(
-@@ -1309,9 +1310,11 @@ class Commands(object):
- stdin=parent_proc.stdout,
- stdout=proc_stdout, stderr=proc_stderr,
- universal_newlines=return_text)
-+ parent_proc.stdout.close()
- else:
- proc = subprocess.Popen(
- command, env=environ, shell=shell, cwd=cwd, # nosec
-+ stdin=subprocess.DEVNULL,
- stdout=proc_stdout, stderr=proc_stderr,
- universal_newlines=return_text)
- except KeyboardInterrupt:
-@@ -1319,7 +1322,11 @@ class Commands(object):
- except Exception as e:
- raise rpkgError(e)
-
-- exit_code = proc.wait()
-+ try:
-+ exit_code = proc.wait(timeout=3600)
-+ except subprocess.TimeoutExpired:
-+ proc.kill()
-+ raise rpkgError('Command timed out.')
- if exit_code > 0 and not return_stderr:
- raise rpkgError('Failed to execute command.')
-
-diff --git a/tests/test_commands.py b/tests/test_commands.py
-index 732d79f..b0b18a3 100644
---- a/tests/test_commands.py
-+++ b/tests/test_commands.py
-@@ -1118,7 +1118,8 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, None), result)
- Popen.assert_called_once_with(
- 'rpmbuild', env=os.environ, shell=True, cwd=None, # nosec
-- stdout=None, stderr=None, universal_newlines=False)
-+ stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-+ universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_run_command_without_shell(self, Popen):
-@@ -1129,7 +1130,8 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, None), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdout=None, stderr=None, universal_newlines=False)
-+ stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-+ universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_return_stdout(self, Popen):
-@@ -1142,7 +1144,8 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, 'output', None), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdout=subprocess.PIPE, stderr=None, universal_newlines=False)
-+ stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=None,
-+ universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_return_stderr(self, Popen):
-@@ -1155,7 +1158,8 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, 'output'), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdout=None, stderr=subprocess.PIPE, universal_newlines=False)
-+ stdin=subprocess.DEVNULL, stdout=None, stderr=subprocess.PIPE,
-+ universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_pipe(self, Popen):
-@@ -1174,7 +1178,7 @@ class TestRunCommand(CommandTestCase):
- Popen.assert_has_calls([
- call(['rpmbuild'],
- env=os.environ, shell=False, cwd=None,
-- stdout=subprocess.PIPE, stderr=subprocess.STDOUT),
-+ stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.STDOUT),
- call(['grep', 'src.rpm'],
- env=os.environ, shell=False, cwd=None,
- stdin=first_proc.stdout, stdout=None, stderr=None,
-@@ -1215,7 +1219,8 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, None), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env={'myvar': 'test'},
-- shell=False, cwd=None, stdout=None, stderr=None,
-+ shell=False, cwd=None,
-+ stdin=subprocess.DEVNULL, stdout=None, stderr=None,
- universal_newlines=False)
-
- @patch('subprocess.Popen')
-@@ -1227,7 +1232,8 @@ class TestRunCommand(CommandTestCase):
-
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=tempdir,
-- stdout=None, stderr=None, universal_newlines=False)
-+ stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-+ universal_newlines=False)
-
- shutil.rmtree(tempdir)
-
-@@ -1240,4 +1246,5 @@ class TestRunCommand(CommandTestCase):
-
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdout=subprocess.PIPE, stderr=None, universal_newlines=True)
-+ stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=None,
-+ universal_newlines=True)
---
-2.51.1
-
diff --git a/0003-Use-ruff-code-checker-instead-of-bandit.patch b/0003-Use-ruff-code-checker-instead-of-bandit.patch
deleted file mode 100644
index 3081d04..0000000
--- a/0003-Use-ruff-code-checker-instead-of-bandit.patch
+++ /dev/null
@@ -1,256 +0,0 @@
-From 4187379b9c316aa245602f704ed9b88aac8d8c2c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
-Date: Wed, 26 Nov 2025 00:11:47 +0100
-Subject: [PATCH] Use ruff code checker instead of bandit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In the testing CI (Jenkins), stop using bandit in favour of ruff.
-Bandit is deprecated in the latest Fedora release (F43).
-Added an environment for code coverage analysis.
-
-JIRA: RHELCMP-14985
-
-Signed-off-by: Ondřej Nosek <onosek@redhat.com>
----
- CONTRIBUTING.md | 4 +++-
- Jenkinsfile | 2 +-
- jenkins_test.dockerfile | 6 +++---
- pyproject.toml | 34 ++++++++++++++++++++++++++++++++++
- pyrpkg/__init__.py | 8 ++++----
- pyrpkg/cli.py | 2 +-
- tests/test_cli.py | 2 +-
- tests/test_commands.py | 6 +++---
- tox.ini | 23 ++++++++++++++++++++---
- 9 files changed, 70 insertions(+), 17 deletions(-)
-
-diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
-index b3c1d31..a14d3d5 100644
---- a/CONTRIBUTING.md
-+++ b/CONTRIBUTING.md
-@@ -32,11 +32,13 @@ You can increase the chance of your Pull Request being merged by:
- * having good test coverage
- * writing documentation
- * following PEP 8 for code formatting
--* don't have [bandit][bandit] complains
-+* ~~don't have [bandit][bandit] complains~~ (not active in the Jenkins)
-+* don't have [ruff][ruff] complains (some categories are currently excluded in the configuration)
- * writing [a good commit message][commit-message]
-
- [commit-message]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
- [bandit]: https://bandit.readthedocs.io
-+[ruff]: https://github.com/astral-sh/ruff
-
-
- [places]:
-diff --git a/Jenkinsfile b/Jenkinsfile
-index 9b38735..61872ed 100644
---- a/Jenkinsfile
-+++ b/Jenkinsfile
-@@ -49,7 +49,7 @@ git fetch proposed
- git checkout "origin/$params.BRANCH_TO"
- git merge --no-ff "proposed/$params.BRANCH" -m "Merge PR"
-
--podman run --rm -v .:/src:Z quay.io/exd-guild-source-tools/rpkg-test:latest tox -e py36,py39,py312,py313,flake8,bandit --workdir /tmp/tox ${TOX_POSARGS}
-+podman run --rm -v .:/src:Z quay.io/exd-guild-source-tools/rpkg-test:latest tox -e py36,py39,py312,py313,py314,flake8,ruff --workdir /tmp/tox ${TOX_POSARGS}
- # disabled py27 environment for now; keep just flake8 for Python 2
- podman run --rm -v .:/src:Z quay.io/exd-guild-source-tools/rpkg-test-py2:latest tox -e flake8python2 --workdir /tmp/tox ${TOX_POSARGS}
- """
-diff --git a/jenkins_test.dockerfile b/jenkins_test.dockerfile
-index 8ef932a..e950280 100644
---- a/jenkins_test.dockerfile
-+++ b/jenkins_test.dockerfile
-@@ -1,4 +1,4 @@
--FROM fedora:41
-+FROM fedora:42
- LABEL \
- name="rpkg test" \
- description="Run tests using tox with Python 3" \
-@@ -27,11 +27,11 @@ RUN dnf -y install \
- openssl-devel \
- make \
- git \
-- bandit
-+ ruff
- RUN dnf clean all
-
- WORKDIR /src
-
- COPY . .
-
--CMD ["tox", "-e", "py36,py39,py312,py313,py314,flake8,bandit"]
-+CMD ["tox", "-e", "py36,py39,py312,py313,py314,flake8,ruff"]
-diff --git a/pyproject.toml b/pyproject.toml
-index 255a7bc..d9f30a7 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -87,3 +87,37 @@ include = [
- packages = [
- "pyrpkg",
- ]
-+
-+[tool.ruff]
-+line-length = 100
-+
-+[tool.ruff.lint]
-+select = [
-+ # pycodestyle
-+ "E",
-+ # pycodestyle warnings
-+ "W",
-+ # Pyflakes
-+ "F",
-+ # pyupgrade
-+ #"UP",
-+ # flake8-bugbear
-+ #"B",
-+ # flake8-simplify
-+ #"SIM",
-+ # isort
-+ #"I",
-+ # flake8-bandit
-+ "S",
-+ # flake8-type-checking
-+ #"TCH",
-+ # flake8-comprehensions
-+ #"C4",
-+ # pep8-naming
-+ #"N",
-+ # flake8-annotations
-+ #"ANN",
-+ # flake8-pytest-style
-+ #"PT",
-+]
-+ignore = ["S101", "S311", "S603", "S607"]
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index 4d453ca..a4b4dd7 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -832,7 +832,7 @@ class Commands(object):
- tmp_resultdir = tempfile.mkdtemp(prefix="mock_resultdir")
- cmd += ['-r', root, '--chroot', '--resultdir', tmp_resultdir]
-
-- tmp_root = '/var/tmp' # temporary directory inside the mock root # nosec
-+ tmp_root = '/var/tmp' # temporary directory inside the mock root # nosec # noqa: S108
- copyin_cmd = cmd + ['--copyin', specfile_path, tmp_root]
-
- # We make sure there is a space at the end of our query so that
-@@ -1405,7 +1405,7 @@ class Commands(object):
- # anyway.
- if int(re.search(r'\d+', self.distval).group()) < 6:
- return 'md5'
-- except Exception:
-+ except Exception: # noqa: S110
- # An error here is OK, don't bother the user.
- pass
-
-@@ -2004,7 +2004,7 @@ class Commands(object):
- try:
- output = subprocess.check_output(cmd)
- hash = output.split()[0]
-- except Exception:
-+ except Exception: # noqa: S110
- # don't do anything here, we'll handle not having hash
- # later
- pass
-@@ -4187,7 +4187,7 @@ class Commands(object):
- data = body
- auth = requests_gssapi.HTTPSPNEGOAuth(
- mutual_authentication=requests_gssapi.OPTIONAL)
-- resp = requests.request(verb, url, data=data, auth=auth, **kwargs)
-+ resp = requests.request(verb, url, data=data, auth=auth, timeout=1800, **kwargs)
- if resp.status_code == 401:
- raise rpkgError('MBS authentication using Kerberos failed. '
- 'Make sure you have a valid Kerberos ticket.')
-diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py
-index decef3f..160baff 100644
---- a/pyrpkg/cli.py
-+++ b/pyrpkg/cli.py
-@@ -66,7 +66,7 @@ class _ArgumentParser(argparse.ArgumentParser):
- return None
-
- # if it doesn't start with a prefix, it was meant to be positional
-- if not arg_string[0] in self.prefix_chars:
-+ if arg_string[0] not in self.prefix_chars:
- return None
-
- # if the option string is present in the parser, return the action
-diff --git a/tests/test_cli.py b/tests/test_cli.py
-index f734c43..efe50f1 100644
---- a/tests/test_cli.py
-+++ b/tests/test_cli.py
-@@ -1475,7 +1475,7 @@ class LookasideCacheMock(object):
- f.write('binary data')
-
- def hash_file(self, filename):
-- md5 = hashlib.md5() # nosec
-+ md5 = hashlib.md5() # nosec # noqa: S324
- with open(filename, 'rb') as f:
- content = f.read()
- md5.update(content)
-diff --git a/tests/test_commands.py b/tests/test_commands.py
-index b0b18a3..a757c7e 100644
---- a/tests/test_commands.py
-+++ b/tests/test_commands.py
-@@ -1113,11 +1113,11 @@ class TestRunCommand(CommandTestCase):
- def test_run_command_within_shell(self, Popen):
- Popen.return_value.wait.return_value = 0
-
-- result = self.cmd._run_command(['rpmbuild'], shell=True) # nosec
-+ result = self.cmd._run_command(['rpmbuild'], shell=True) # nosec # noqa: S604
-
- self.assertEqual((0, None, None), result)
-- Popen.assert_called_once_with(
-- 'rpmbuild', env=os.environ, shell=True, cwd=None, # nosec
-+ Popen.assert_called_once_with( # nosec # noqa: S604
-+ 'rpmbuild', env=os.environ, shell=True, cwd=None,
- stdin=subprocess.DEVNULL, stdout=None, stderr=None,
- universal_newlines=False)
-
-diff --git a/tox.ini b/tox.ini
-index ccbdac2..8bf9c3f 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -1,5 +1,6 @@
- [tox]
--envlist = py27,py36,py39,py312,py313,py314,flake8,doc,bandit
-+envlist = py27,py36,py39,py312,py313,py314,flake8,doc,bandit,coverage,ruff
-+basepython = {env:TOXPYTHON:python3}
-
- [testenv]
- skip_install = True
-@@ -13,8 +14,6 @@ basepython=
- py314: {env:TOXPYTHON:python3.14}
- flake8: {env:TOXPYTHON:python3.6}
- flake8python2: {env:TOXPYTHON:python2.7}
-- doc: {env:TOXPYTHON:python3}
-- bandit: {env:TOXPYTHON:python3}
-
- deps =
- -r{toxinidir}/requirements/pypi.txt
-@@ -71,3 +70,21 @@ skip_install = true
- deps = bandit
- commands = bandit -r -ll pyrpkg tests
- ignore_outcome = False
-+
-+[testenv:coverage]
-+deps =
-+ {[testenv]deps}
-+ pytest-cov
-+skip_install = True
-+commands =
-+ python -m pytest --cov=pyrpkg --cov-report=term --cov-report=html {posargs}
-+
-+[coverage:run]
-+source = pyrpkg
-+omit =
-+
-+[testenv:ruff]
-+deps = ruff
-+skip_install = True
-+commands =
-+ python -m ruff check pyrpkg/ tests/
---
-2.51.1
-
diff --git a/0004-update-interactive-editor-is-broken.patch b/0004-update-interactive-editor-is-broken.patch
deleted file mode 100644
index c8e1f0d..0000000
--- a/0004-update-interactive-editor-is-broken.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 4d758fc593db84ca5797efca55f151dfcb1aab2d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
-Date: Tue, 9 Dec 2025 03:13:39 +0100
-Subject: [PATCH 1/2] `update`: interactive editor is broken
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Revert "Execute shell command: Non-interactive stdin"
-This (partially) reverts commit 0123ce42d214968defe74b8a05ba7d9c7ecfa6c1.
-
-Fixes: #762
-Signed-off-by: Ondřej Nosek <onosek@redhat.com>
----
- pyrpkg/__init__.py | 2 --
- tests/test_commands.py | 23 ++++++++---------------
- 2 files changed, 8 insertions(+), 17 deletions(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index a4b4dd7..38ccbcf 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -1302,7 +1302,6 @@ class Commands(object):
- # stderr, so....
- parent_proc = subprocess.Popen(
- command, env=environ, shell=shell, cwd=cwd, # nosec
-- stdin=subprocess.DEVNULL,
- stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-
- proc = subprocess.Popen(
-@@ -1314,7 +1313,6 @@ class Commands(object):
- else:
- proc = subprocess.Popen(
- command, env=environ, shell=shell, cwd=cwd, # nosec
-- stdin=subprocess.DEVNULL,
- stdout=proc_stdout, stderr=proc_stderr,
- universal_newlines=return_text)
- except KeyboardInterrupt:
-diff --git a/tests/test_commands.py b/tests/test_commands.py
-index a757c7e..012a618 100644
---- a/tests/test_commands.py
-+++ b/tests/test_commands.py
-@@ -1118,8 +1118,7 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, None), result)
- Popen.assert_called_once_with( # nosec # noqa: S604
- 'rpmbuild', env=os.environ, shell=True, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-- universal_newlines=False)
-+ stdout=None, stderr=None, universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_run_command_without_shell(self, Popen):
-@@ -1130,8 +1129,7 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, None), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-- universal_newlines=False)
-+ stdout=None, stderr=None, universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_return_stdout(self, Popen):
-@@ -1144,8 +1142,7 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, 'output', None), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=None,
-- universal_newlines=False)
-+ stdout=subprocess.PIPE, stderr=None, universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_return_stderr(self, Popen):
-@@ -1158,8 +1155,7 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, 'output'), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=None, stderr=subprocess.PIPE,
-- universal_newlines=False)
-+ stdout=None, stderr=subprocess.PIPE, universal_newlines=False)
-
- @patch('subprocess.Popen')
- def test_pipe(self, Popen):
-@@ -1178,7 +1174,7 @@ class TestRunCommand(CommandTestCase):
- Popen.assert_has_calls([
- call(['rpmbuild'],
- env=os.environ, shell=False, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.STDOUT),
-+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT),
- call(['grep', 'src.rpm'],
- env=os.environ, shell=False, cwd=None,
- stdin=first_proc.stdout, stdout=None, stderr=None,
-@@ -1219,8 +1215,7 @@ class TestRunCommand(CommandTestCase):
- self.assertEqual((0, None, None), result)
- Popen.assert_called_once_with(
- ['rpmbuild'], env={'myvar': 'test'},
-- shell=False, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-+ shell=False, cwd=None, stdout=None, stderr=None,
- universal_newlines=False)
-
- @patch('subprocess.Popen')
-@@ -1232,8 +1227,7 @@ class TestRunCommand(CommandTestCase):
-
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=tempdir,
-- stdin=subprocess.DEVNULL, stdout=None, stderr=None,
-- universal_newlines=False)
-+ stdout=None, stderr=None, universal_newlines=False)
-
- shutil.rmtree(tempdir)
-
-@@ -1246,5 +1240,4 @@ class TestRunCommand(CommandTestCase):
-
- Popen.assert_called_once_with(
- ['rpmbuild'], env=os.environ, shell=False, cwd=None,
-- stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=None,
-- universal_newlines=True)
-+ stdout=subprocess.PIPE, stderr=None, universal_newlines=True)
---
-2.52.0
-
diff --git a/0005-Check-the-correct-sorting-of-imports-from-now-on.patch b/0005-Check-the-correct-sorting-of-imports-from-now-on.patch
deleted file mode 100644
index 0d8fa82..0000000
--- a/0005-Check-the-correct-sorting-of-imports-from-now-on.patch
+++ /dev/null
@@ -1,282 +0,0 @@
-From 2ecdd95bed7833f201e14dd603feb3cdcbe4031f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
-Date: Tue, 9 Dec 2025 03:35:42 +0100
-Subject: [PATCH 2/2] Check the correct sorting of imports from now on
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Ondřej Nosek <onosek@redhat.com>
----
- pyproject.toml | 2 +-
- pyrpkg/__init__.py | 27 +++++++++++++++++++--------
- pyrpkg/layout/__init__.py | 9 +++++++--
- pyrpkg/lookaside.py | 3 +--
- tests/commands/test_check_repo.py | 3 ++-
- tests/commands/test_clone.py | 1 +
- tests/test_commands.py | 1 +
- tests/test_flatpak_build.py | 4 ++--
- tests/test_lookaside.py | 3 +--
- tests/test_retire.py | 5 +++--
- tests/test_side_tag.py | 3 ++-
- tests/test_spec.py | 2 +-
- tests/test_utils.py | 13 +++++++++----
- tests/utils.py | 1 +
- 14 files changed, 51 insertions(+), 26 deletions(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index d9f30a7..fee23af 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -106,7 +106,7 @@ select = [
- # flake8-simplify
- #"SIM",
- # isort
-- #"I",
-+ "I",
- # flake8-bandit
- "S",
- # flake8-type-checking
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index 38ccbcf..8276b2b 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -45,15 +45,27 @@ from six.moves import configparser, urllib
- from six.moves.urllib.parse import urljoin
-
- from pyrpkg import layout
--from pyrpkg.errors import (AlreadyUploadedError, HashtypeMixingError,
-- NoSourcesError, SpecfileDoesntMatchRepoNameError,
-- UnknownTargetError, rpkgAuthError, rpkgError)
-+from pyrpkg.errors import (
-+ AlreadyUploadedError,
-+ HashtypeMixingError,
-+ NoSourcesError,
-+ SpecfileDoesntMatchRepoNameError,
-+ UnknownTargetError,
-+ rpkgAuthError,
-+ rpkgError,
-+)
- from pyrpkg.lookaside import CGILookasideCache
- from pyrpkg.sources import SourcesFile
- from pyrpkg.spec import SpecFile
--from pyrpkg.utils import (cached_property, extract_srpm, find_me,
-- is_file_tracked, is_lookaside_eligible_file,
-- log_result, spec_file_undo_rpmautospec)
-+from pyrpkg.utils import (
-+ cached_property,
-+ extract_srpm,
-+ find_me,
-+ is_file_tracked,
-+ is_lookaside_eligible_file,
-+ log_result,
-+ spec_file_undo_rpmautospec,
-+)
-
- from .gitignore import GitIgnore
-
-@@ -78,8 +90,7 @@ except ImportError:
- specfile_uses_rpmautospec = None
-
- try:
-- from rpmautospec import \
-- calculate_release_number as rpmautospec_calculate_release_number
-+ from rpmautospec import calculate_release_number as rpmautospec_calculate_release_number
- from rpmautospec import process_distgit as rpmautospec_process_distgit
- except ImportError:
- rpmautospec_process_distgit = None
-diff --git a/pyrpkg/layout/__init__.py b/pyrpkg/layout/__init__.py
-index 850ddc2..c17a81e 100644
---- a/pyrpkg/layout/__init__.py
-+++ b/pyrpkg/layout/__init__.py
-@@ -12,8 +12,13 @@
- from pyrpkg.errors import LayoutError
-
- from .base import MetaLayout
--from .layouts import (DistGitLayout, DistGitResultsDirLayout, # noqa: F401
-- IncompleteLayout, RetiredLayout, SRPMLayout)
-+from .layouts import ( # noqa: F401
-+ DistGitLayout,
-+ DistGitResultsDirLayout,
-+ IncompleteLayout,
-+ RetiredLayout,
-+ SRPMLayout,
-+)
-
-
- def build(path, hint=None):
-diff --git a/pyrpkg/lookaside.py b/pyrpkg/lookaside.py
-index 2a786df..689b8b6 100644
---- a/pyrpkg/lookaside.py
-+++ b/pyrpkg/lookaside.py
-@@ -26,8 +26,7 @@ import pycurl
- import six
- from six.moves import http_client, urllib
-
--from .errors import (AlreadyUploadedError, DownloadError, InvalidHashType,
-- UploadError)
-+from .errors import AlreadyUploadedError, DownloadError, InvalidHashType, UploadError
-
-
- class CGILookasideCache(object):
-diff --git a/tests/commands/test_check_repo.py b/tests/commands/test_check_repo.py
-index 8952481..29a0849 100644
---- a/tests/commands/test_check_repo.py
-+++ b/tests/commands/test_check_repo.py
-@@ -5,9 +5,10 @@ import subprocess
- import sys
- import tempfile
-
--from pyrpkg.errors import rpkgError
- from six.moves import StringIO
-
-+from pyrpkg.errors import rpkgError
-+
- try:
- from unittest.mock import patch
- except ImportError:
-diff --git a/tests/commands/test_clone.py b/tests/commands/test_clone.py
-index 85fdfd1..d9ed832 100644
---- a/tests/commands/test_clone.py
-+++ b/tests/commands/test_clone.py
-@@ -4,6 +4,7 @@ import sys
- import tempfile
-
- import git
-+
- import pyrpkg
-
- from . import CommandTestCase
-diff --git a/tests/test_commands.py b/tests/test_commands.py
-index 012a618..383edf4 100644
---- a/tests/test_commands.py
-+++ b/tests/test_commands.py
-@@ -11,6 +11,7 @@ from datetime import datetime
- import git
- import rpm
- import six
-+
- from pyrpkg import rpkgError
-
- try:
-diff --git a/tests/test_flatpak_build.py b/tests/test_flatpak_build.py
-index 32926a8..3a143db 100644
---- a/tests/test_flatpak_build.py
-+++ b/tests/test_flatpak_build.py
-@@ -3,10 +3,10 @@ import subprocess
- from textwrap import dedent
-
- import requests
--from pyrpkg import Modulemd
--
- from utils import CommandTestCase
-
-+from pyrpkg import Modulemd
-+
- try:
- import unittest2 as unittest
- except ImportError:
-diff --git a/tests/test_lookaside.py b/tests/test_lookaside.py
-index 6bace2e..b42b447 100644
---- a/tests/test_lookaside.py
-+++ b/tests/test_lookaside.py
-@@ -21,8 +21,7 @@ try:
- except ImportError:
- import mock
-
--from pyrpkg.errors import (AlreadyUploadedError, DownloadError,
-- InvalidHashType, UploadError)
-+from pyrpkg.errors import AlreadyUploadedError, DownloadError, InvalidHashType, UploadError
- from pyrpkg.lookaside import CGILookasideCache
-
- old_stat = os.stat
-diff --git a/tests/test_retire.py b/tests/test_retire.py
-index 1fdeafd..3f4d943 100644
---- a/tests/test_retire.py
-+++ b/tests/test_retire.py
-@@ -5,11 +5,12 @@ import shutil
- import subprocess
- import tempfile
-
--import pyrpkg.cli
- import six
--from pyrpkg.errors import rpkgError
- from six.moves import configparser
-
-+import pyrpkg.cli
-+from pyrpkg.errors import rpkgError
-+
- try:
- from unittest import mock
- except ImportError:
-diff --git a/tests/test_side_tag.py b/tests/test_side_tag.py
-index 7a7f859..be96778 100644
---- a/tests/test_side_tag.py
-+++ b/tests/test_side_tag.py
-@@ -4,10 +4,11 @@ import logging
- import os
-
- import koji
--import pyrpkg.cli
- import six
- from six.moves import StringIO, configparser
-
-+import pyrpkg.cli
-+
- try:
- from unittest import mock
- except ImportError:
-diff --git a/tests/test_spec.py b/tests/test_spec.py
-index 0c7907a..2f61c2c 100644
---- a/tests/test_spec.py
-+++ b/tests/test_spec.py
-@@ -1,7 +1,7 @@
- import os
- import shutil
--import unittest
- import tempfile
-+import unittest
-
- from pyrpkg import spec
- from pyrpkg.errors import rpkgError
-diff --git a/tests/test_utils.py b/tests/test_utils.py
-index 0cd62d8..c0feda6 100644
---- a/tests/test_utils.py
-+++ b/tests/test_utils.py
-@@ -14,12 +14,17 @@ try:
- except ImportError:
- import mock
-
--from pyrpkg.utils import (cached_property, is_file_in_directory,
-- is_file_tracked, log_result,
-- spec_file_undo_rpmautospec, warn_deprecated)
--
- from utils import CommandTestCase
-
-+from pyrpkg.utils import (
-+ cached_property,
-+ is_file_in_directory,
-+ is_file_tracked,
-+ log_result,
-+ spec_file_undo_rpmautospec,
-+ warn_deprecated,
-+)
-+
-
- class CachedPropertyTestCase(unittest.TestCase):
- def test_computed_only_once(self):
-diff --git a/tests/utils.py b/tests/utils.py
-index c58d836..52b9215 100644
---- a/tests/utils.py
-+++ b/tests/utils.py
-@@ -7,6 +7,7 @@ import sys
- import tempfile
-
- import six
-+
- from pyrpkg import Commands
-
- # For running tests with Python 2
---
-2.52.0
-
diff --git a/0006-_run_command-timeout-is-not-supported-in-Python-2.patch b/0006-_run_command-timeout-is-not-supported-in-Python-2.patch
deleted file mode 100644
index 8df5ea6..0000000
--- a/0006-_run_command-timeout-is-not-supported-in-Python-2.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d0a4e9a8e4778d4b232af4565b36e4b83ae6071b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
-Date: Tue, 9 Dec 2025 21:39:32 +0100
-Subject: [PATCH] _run_command: timeout is not supported in Python 2
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Splitting this functionality for Python's versions.
-This relates to the commit 0123ce42d214968defe74b8a05ba7d9c7ecfa6c1.
-
-Signed-off-by: Ondřej Nosek <onosek@redhat.com>
----
- pyrpkg/__init__.py | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index 8276b2b..8df338c 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -1331,11 +1331,14 @@ class Commands(object):
- except Exception as e:
- raise rpkgError(e)
-
-- try:
-- exit_code = proc.wait(timeout=3600)
-- except subprocess.TimeoutExpired:
-- proc.kill()
-- raise rpkgError('Command timed out.')
-+ if six.PY3:
-+ try:
-+ exit_code = proc.wait(timeout=3600)
-+ except subprocess.TimeoutExpired:
-+ proc.kill()
-+ raise rpkgError('Command timed out.')
-+ else:
-+ exit_code = proc.wait()
- if exit_code > 0 and not return_stderr:
- raise rpkgError('Failed to execute command.')
-
---
-2.52.0
-
diff --git a/0007-Submitting-the-module-build-duplicate-timeout.patch b/0007-Submitting-the-module-build-duplicate-timeout.patch
deleted file mode 100644
index 32006c8..0000000
--- a/0007-Submitting-the-module-build-duplicate-timeout.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7ccbd04656ca09617fb6b422365e0f35babd62ad Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
-Date: Thu, 11 Dec 2025 17:29:39 +0100
-Subject: [PATCH] Submitting the module build - duplicate timeout
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The change was suggested by a static code checker, but it caused
-duplicate timeout argument that was passed in kwargs.
-
-Fixes: #766
-JIRA: RHELCMP-15058
-
-Signed-off-by: Ondřej Nosek <onosek@redhat.com>
----
- pyrpkg/__init__.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index 8df338c..6f4d63b 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -4199,7 +4199,7 @@ class Commands(object):
- data = body
- auth = requests_gssapi.HTTPSPNEGOAuth(
- mutual_authentication=requests_gssapi.OPTIONAL)
-- resp = requests.request(verb, url, data=data, auth=auth, timeout=1800, **kwargs)
-+ resp = requests.request(verb, url, data=data, auth=auth, **kwargs) # noqa: S113
- if resp.status_code == 401:
- raise rpkgError('MBS authentication using Kerberos failed. '
- 'Make sure you have a valid Kerberos ticket.')
---
-2.52.0
-
diff --git a/rpkg.spec b/rpkg.spec
index a610e61..bc96cea 100644
--- a/rpkg.spec
+++ b/rpkg.spec
@@ -1,14 +1,14 @@
Name: rpkg
-Version: 1.69
-Release: 9%{?dist}
+Version: 1.70
+Release: 1%{?dist}
Summary: Python library for interacting with rpm+git
# Automatically converted from old format: GPLv2+ and LGPLv2 - reviewed
# and converted to SPDX license expression
License: GPL-2.0-or-later AND LGPL-2.1-only
-URL: https://pagure.io/rpkg
+URL: https://forge.fedoraproject.org/packaging/rpkg
BuildArch: noarch
-Source0: https://pagure.io/releases/rpkg/%{name}-%{version}.tar.gz
+Source0: https://forge.fedoraproject.org/packaging/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# RHEL7 is currently the only release that is built for Python 2.
%if 0%{?rhel} == 7
@@ -47,12 +47,6 @@ Patch0: remove-koji-and-rpm-py-installer-from-requires.patch
%if 0%{?with_python2}
Patch1: 0001-Remove-Environment-Markers-syntax.patch
%endif
-Patch2: 0002-Execute-shell-command-Non-interactive-stdin.patch
-Patch3: 0003-Use-ruff-code-checker-instead-of-bandit.patch
-Patch4: 0004-update-interactive-editor-is-broken.patch
-Patch5: 0005-Check-the-correct-sorting-of-imports-from-now-on.patch
-Patch6: 0006-_run_command-timeout-is-not-supported-in-Python-2.patch
-Patch7: 0007-Submitting-the-module-build-duplicate-timeout.patch
%description
Python library for interacting with rpm+git
@@ -289,6 +283,27 @@ example_cli_dir=$RPM_BUILD_ROOT%{_datadir}/%{name}/examples/cli
%changelog
+* Fri Jul 31 2026 Ondřej Nosek <onosek@redhat.com> - 1.70-1
+- Fix SRPM import for files with a backslash in the name - unittests (onosek)
+- Fixing ruff and flake8 complaints (onosek)
+- Add verrel --json support (onosek)
+- Fix Jenkinsfile for a Jenkins CI triggered from the Forge (onosek)
+- Links to a new documentation at Readthedocs.io (onosek)
+- Web documentation at Readthedocs.io (onosek)
+- Post-migration steps (onosek)
+- Fix SRPM import for files with a backslash in the name (pavel)
+- Remove deprecated 'clean --dry-run' argument - rhbz#2458827 (onosek)
+- Add configurable HTTP version for lookaside transfers (onosek)
+- docs: modernize Sphinx conf.py (onosek)
+- pre_push_check: unset GIT_DIR to fix worktree support - #769 (vashirov)
+- Various code linter issues fixed (onosek)
+- Submitting the module build - duplicate timeout - #766 (onosek)
+- _run_command: timeout is not supported in Python 2 (onosek)
+- Check the correct sorting of imports from now on (onosek)
+- `update`: interactive editor is broken - #762 (onosek)
+- Use ruff code checker instead of bandit (onosek)
+- Execute shell command: Non-interactive stdin (onosek)
+
* Fri Jul 31 2026 Petr Pisar <ppisar@redhat.com> - 1.69-9
- Disable modularity on RHEL >= 11
diff --git a/sources b/sources
index 8dfdb92..1467c5d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rpkg-1.69.tar.gz) = ccd9f5fd213aca2fa289aef7c96662dbc5b05506f5e82ff18f13aa7a4989a38508575d9c7141f6d6fe35613bb78bd465109c9162e478ec7f842b437ae1f1c3bc
+SHA512 (rpkg-1.70.tar.gz) = 946ddf1f2d09dc30973885631b1481fdad4c086f66ecafe19de2e345fa08b95146cbd45fb37f47bc400b5fdae9d350f06f449b652ede972e0931e85a3b2a6a0b
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-31 2:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-31 2:56 [rpms/rpkg] rawhide: New release 1.70
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox