Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-cliff for openSUSE:Factory checked in at 2026-08-01 18:34:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-cliff (Old) and /work/SRC/openSUSE:Factory/.python-cliff.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cliff" Sat Aug 1 18:34:15 2026 rev:53 rq:1368880 version:4.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-cliff/python-cliff.changes 2026-05-18 17:47:09.110158202 +0200 +++ /work/SRC/openSUSE:Factory/.python-cliff.new.16738/python-cliff.changes 2026-08-01 18:37:25.396546851 +0200 @@ -1,0 +2,10 @@ +Fri Jul 31 17:09:57 UTC 2026 - Dirk Müller <[email protected]> + +- update to 4.15.0: + * Drop Python 3.10 support + * zuul: Use openstack-python3-next-jobs template + * pre-commit: Bump versions + * typing: Updates for latest cmd2 + * Drop support for Python 3.10 + +------------------------------------------------------------------- Old: ---- cliff-4.14.0.tar.gz New: ---- cliff-4.15.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-cliff.spec ++++++ --- /var/tmp/diff_new_pack.eLtbrl/_old 2026-08-01 18:37:25.872563229 +0200 +++ /var/tmp/diff_new_pack.eLtbrl/_new 2026-08-01 18:37:25.872563229 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-cliff -Version: 4.14.0 +Version: 4.15.0 Release: 0 Summary: Command Line Interface Formulation Framework License: Apache-2.0 ++++++ cliff-4.14.0.tar.gz -> cliff-4.15.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/.pre-commit-config.yaml new/cliff-4.15.0/.pre-commit-config.yaml --- old/cliff-4.14.0/.pre-commit-config.yaml 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/.pre-commit-config.yaml 2026-07-10 15:07:04.000000000 +0200 @@ -15,7 +15,7 @@ files: .*\.(yaml|yml)$ exclude: '^zuul.d/.*$' - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.14.8 + rev: v0.15.18 hooks: - id: ruff-check args: ['--fix', '--unsafe-fixes'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/.zuul.yaml new/cliff-4.15.0/.zuul.yaml --- old/cliff-4.14.0/.zuul.yaml 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/.zuul.yaml 2026-07-10 15:07:04.000000000 +0200 @@ -1,6 +1,8 @@ +--- + - job: - name: cliff-tox-py312-neutronclient-tip - parent: openstack-tox-py312 + name: cliff-tox-py313-neutronclient-tip + parent: openstack-tox-py313 description: | Run unit tests for neutronclient with master branch of cliff @@ -24,15 +26,15 @@ - check-requirements - lib-forward-testing-python3 - openstack-python3-jobs + - openstack-python3-next-jobs - publish-openstack-docs-pti check: jobs: - - openstack-tox-py312 - - cliff-tox-py312-neutronclient-tip - - osc-tox-py312-tips: + - cliff-tox-py313-neutronclient-tip + - osc-tox-py313-tips: branches: ^master$ gate: jobs: - - cliff-tox-py312-neutronclient-tip - - osc-tox-py312-tips: + - cliff-tox-py313-neutronclient-tip + - osc-tox-py313-tips: branches: ^master$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/ChangeLog new/cliff-4.15.0/ChangeLog --- old/cliff-4.14.0/ChangeLog 2026-05-13 11:00:23.000000000 +0200 +++ new/cliff-4.15.0/ChangeLog 2026-07-10 15:07:59.000000000 +0200 @@ -1,10 +1,20 @@ CHANGES ======= +4.15.0 +------ + +* Drop Python 3.10 support +* zuul: Use openstack-python3-next-jobs template +* pre-commit: Bump versions +* typing: Updates for latest cmd2 +* Drop support for Python 3.10 + 4.14.0 ------ * Fix command name alignment broken by ANSI color codes in help output +* test: Use context manager-style assertRaises * typing: Remove additional use of private \_argparse module * typing: Use objects from typing * trivial: Use objects from collections.abc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/PKG-INFO new/cliff-4.15.0/PKG-INFO --- old/cliff-4.14.0/PKG-INFO 2026-05-13 11:00:23.282622600 +0200 +++ new/cliff-4.15.0/PKG-INFO 2026-07-10 15:07:59.725746000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: cliff -Version: 4.14.0 +Version: 4.15.0 Summary: Command Line Interface Formulation Framework Author-email: OpenStack <[email protected]> License: Apache-2.0 @@ -13,12 +13,12 @@ Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 Classifier: Typing :: Typed -Requires-Python: >=3.10 +Requires-Python: >=3.11 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: autopage>=0.4.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/command.py new/cliff-4.15.0/cliff/command.py --- old/cliff-4.14.0/cliff/command.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/command.py 2026-07-10 15:07:04.000000000 +0200 @@ -24,7 +24,7 @@ if TYPE_CHECKING: from . import app as _app from . import hooks - from typing_extensions import Never + from typing import Never _T = TypeVar('_T') _dists_by_mods = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/interactive.py new/cliff-4.15.0/cliff/interactive.py --- old/cliff-4.14.0/cliff/interactive.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/interactive.py 2026-07-10 15:07:04.000000000 +0200 @@ -181,7 +181,7 @@ # Not a plugin command pass else: - statement = cmd2.Statement( + statement = cmd2.Statement( # type: ignore[call-arg] ' '.join(sub_argv), raw=statement.raw, command=cmd_name, @@ -189,9 +189,9 @@ multiline_command=statement.multiline_command, terminator=statement.terminator, suffix=statement.suffix, - pipe_to=statement.pipe_to, - output=statement.output, - output_to=statement.output_to, + pipe_to=statement.pipe_to, # type: ignore[attr-defined] + output=statement.output, # type: ignore[attr-defined] + output_to=statement.output_to, # type: ignore[attr-defined] ) return statement diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/tests/test_app.py new/cliff-4.15.0/cliff/tests/test_app.py --- old/cliff-4.14.0/cliff/tests/test_app.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/tests/test_app.py 2026-07-10 15:07:04.000000000 +0200 @@ -282,10 +282,8 @@ help="Show help message and exit.", ) - self.assertRaises( - argparse.ArgumentError, - MyApp, - ) + with self.assertRaises(argparse.ArgumentError): + MyApp() def test_conflicting_option_custom_arguments_should_not_throw(self): class MyApp(application.App): @@ -364,11 +362,8 @@ with mock.patch( 'cliff.help.HelpAction.__call__', side_effect=SystemExit(0) ) as helper: - self.assertRaises( - SystemExit, - app.run, - ['--help'], - ) + with self.assertRaises(SystemExit): + app.run(['--help']) self.assertTrue(helper.called) self.assertEqual(deferred_help, init.called) @@ -504,11 +499,8 @@ app.clean_up.reset_mock() app.run(['--quiet', 'mock']) app.clean_up.assert_called_once_with(command.return_value, 0, None) - self.assertRaises( - SystemExit, - app.run, - ['--verbose', '--quiet', 'mock'], - ) + with self.assertRaises(SystemExit): + app.run(['--verbose', '--quiet', 'mock']) class TestIO(base.TestBase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/tests/test_command.py new/cliff-4.15.0/cliff/tests/test_command.py --- old/cliff-4.14.0/cliff/tests/test_command.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/tests/test_command.py 2026-07-10 15:07:04.000000000 +0200 @@ -165,11 +165,8 @@ # name that already exists because we configure the argument # parser to ignore conflicts but this option has no other name # to be used. - self.assertRaises( - argparse.ArgumentError, - parser.add_argument, - '-z', - ) + with self.assertRaises(argparse.ArgumentError): + parser.add_argument('-z') def test_option_name_collision_with_alias(self): cmd = TestCommand(self.app, None) @@ -208,11 +205,8 @@ dest='foo', default='foo', ) - self.assertRaises( - argparse.ArgumentError, - parser.add_argument, - '-f', - ) + with self.assertRaises(argparse.ArgumentError): + parser.add_argument('-f') def test_resolve_conflict_argument(self): cmd = TestCommand(self.app, None) @@ -236,8 +230,5 @@ def test_wrong_conflict_handler(self): cmd = TestCommand(self.app, None) cmd.conflict_handler = 'wrong' - self.assertRaises( - ValueError, - cmd.get_parser, - 'NAME', - ) + with self.assertRaises(ValueError): + cmd.get_parser('NAME') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/tests/test_commandmanager.py new/cliff-4.15.0/cliff/tests/test_commandmanager.py --- old/cliff-4.14.0/cliff/tests/test_commandmanager.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/tests/test_commandmanager.py 2026-07-10 15:07:04.000000000 +0200 @@ -224,20 +224,14 @@ def test_no_legacy(self): mgr = utils.TestCommandManager(utils.TEST_NAMESPACE) mgr.add_command('cmd1', FauxCommand) - self.assertRaises( - ValueError, - mgr.find_command, - ['cmd2'], - ) + with self.assertRaises(ValueError): + mgr.find_command(['cmd2']) def test_no_command(self): mgr = utils.TestCommandManager(utils.TEST_NAMESPACE) mgr.add_legacy_command('cmd2', 'cmd1') - self.assertRaises( - ValueError, - mgr.find_command, - ['cmd2'], - ) + with self.assertRaises(ValueError): + mgr.find_command(['cmd2']) class TestLookupAndFindPartialName(base.TestBase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/tests/test_help.py new/cliff-4.15.0/cliff/tests/test_help.py --- old/cliff-4.14.0/cliff/tests/test_help.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/tests/test_help.py 2026-07-10 15:07:04.000000000 +0200 @@ -82,11 +82,8 @@ help_cmd = help.HelpCommand(app, mock.Mock()) parser = help_cmd.get_parser('test') parsed_args = parser.parse_args(['z']) - self.assertRaises( - ValueError, - help_cmd.run, - parsed_args, - ) + with self.assertRaises(ValueError): + help_cmd.run(parsed_args) def test_show_help_for_help(self): # FIXME(dhellmann): Are commands tied too closely to the app? Or diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/tests/test_lister.py new/cliff-4.15.0/cliff/tests/test_lister.py --- old/cliff-4.14.0/cliff/tests/test_lister.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/tests/test_lister.py 2026-07-10 15:07:04.000000000 +0200 @@ -85,11 +85,8 @@ parsed_args.sort_columns = [] with mock.patch.object(test_lister, 'take_action') as mock_take_action: mock_take_action.return_value = (('Col1', 'Col2', 'Col3'), []) - self.assertRaises( - ValueError, - test_lister.run, - parsed_args, - ) + with self.assertRaises(ValueError): + test_lister.run(parsed_args) def test_filter_by_columns_normalized(self): test_lister = ExerciseLister(mock.Mock(), None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff/tests/test_show.py new/cliff-4.15.0/cliff/tests/test_show.py --- old/cliff-4.14.0/cliff/tests/test_show.py 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/cliff/tests/test_show.py 2026-07-10 15:07:04.000000000 +0200 @@ -78,8 +78,5 @@ parsed_args.formatter = 'test' with mock.patch.object(test_show, 'take_action') as mock_take_action: mock_take_action.return_value = (('Col1', 'Col2', 'Col3'), []) - self.assertRaises( - ValueError, - test_show.run, - parsed_args, - ) + with self.assertRaises(ValueError): + test_show.run(parsed_args) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff.egg-info/PKG-INFO new/cliff-4.15.0/cliff.egg-info/PKG-INFO --- old/cliff-4.14.0/cliff.egg-info/PKG-INFO 2026-05-13 11:00:23.000000000 +0200 +++ new/cliff-4.15.0/cliff.egg-info/PKG-INFO 2026-07-10 15:07:59.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: cliff -Version: 4.14.0 +Version: 4.15.0 Summary: Command Line Interface Formulation Framework Author-email: OpenStack <[email protected]> License: Apache-2.0 @@ -13,12 +13,12 @@ Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 Classifier: Typing :: Typed -Requires-Python: >=3.10 +Requires-Python: >=3.11 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: autopage>=0.4.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff.egg-info/SOURCES.txt new/cliff-4.15.0/cliff.egg-info/SOURCES.txt --- old/cliff-4.14.0/cliff.egg-info/SOURCES.txt 2026-05-13 11:00:23.000000000 +0200 +++ new/cliff-4.15.0/cliff.egg-info/SOURCES.txt 2026-07-10 15:07:59.000000000 +0200 @@ -99,6 +99,7 @@ releasenotes/notes/comparable-FormattableColumn-31c0030ced70b7fb.yaml releasenotes/notes/conflict-resolution-21bcb5f9a6c19d7f.yaml releasenotes/notes/deprecate-commandmanager-namespace-argument-2d5169222402f633.yaml +releasenotes/notes/drop-python-310-b16719b8c2215062.yaml releasenotes/notes/drop-python-39-bbeabc19b5143cd3.yaml releasenotes/notes/drop-python27-support-b16c9e5a9e2000ef.yaml releasenotes/notes/handle-none-values-when-sorting-de40e36c66ad95ca.yaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/cliff.egg-info/pbr.json new/cliff-4.15.0/cliff.egg-info/pbr.json --- old/cliff-4.14.0/cliff.egg-info/pbr.json 2026-05-13 11:00:23.000000000 +0200 +++ new/cliff-4.15.0/cliff.egg-info/pbr.json 2026-07-10 15:07:59.000000000 +0200 @@ -1 +1 @@ -{"git_version": "9e12d09", "is_release": true} \ No newline at end of file +{"git_version": "ba631ae", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/pyproject.toml new/cliff-4.15.0/pyproject.toml --- old/cliff-4.14.0/pyproject.toml 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/pyproject.toml 2026-07-10 15:07:04.000000000 +0200 @@ -11,7 +11,7 @@ readme = {file = "README.rst", content-type = "text/x-rst"} license = {text = "Apache-2.0"} dynamic = ["version", "dependencies"] -requires-python = ">=3.10" +requires-python = ">=3.11" classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", @@ -20,10 +20,10 @@ "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] @@ -71,7 +71,7 @@ ] [tool.mypy] -python_version = "3.10" +python_version = "3.11" show_column_numbers = true show_error_context = true strict = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/releasenotes/notes/drop-python-310-b16719b8c2215062.yaml new/cliff-4.15.0/releasenotes/notes/drop-python-310-b16719b8c2215062.yaml --- old/cliff-4.14.0/releasenotes/notes/drop-python-310-b16719b8c2215062.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/cliff-4.15.0/releasenotes/notes/drop-python-310-b16719b8c2215062.yaml 2026-07-10 15:07:04.000000000 +0200 @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Support for Python 3.10 has been dropped. The minimum version of Python now + supported in 3.11. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-4.14.0/test-requirements.txt new/cliff-4.15.0/test-requirements.txt --- old/cliff-4.14.0/test-requirements.txt 2026-05-13 10:59:55.000000000 +0200 +++ new/cliff-4.15.0/test-requirements.txt 2026-07-10 15:07:04.000000000 +0200 @@ -3,4 +3,4 @@ # because there is a sphinx extension that has tests sphinx>=5.0.0 # BSD stestr>=1.0.0 # Apache-2.0 -testtools>=2.2.0 # MIT +testtools>=2.8.0 # MIT
