Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-novaclient for openSUSE:Factory checked in at 2026-08-09 21:35:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-novaclient (Old) and /work/SRC/openSUSE:Factory/.python-novaclient.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-novaclient" Sun Aug 9 21:35:12 2026 rev:48 rq:1370125 version:18.13.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-novaclient/python-novaclient.changes 2026-05-18 17:50:46.663150524 +0200 +++ /work/SRC/openSUSE:Factory/.python-novaclient.new.16738/python-novaclient.changes 2026-08-09 21:37:36.890890946 +0200 @@ -1,0 +2,8 @@ +Thu Aug 6 20:48:50 UTC 2026 - Dirk Müller <[email protected]> + +- update to 18.13.0: + * Remove deprecation warning workaround + * Update master for stable/2026.1 + * Add version foot protector + +------------------------------------------------------------------- Old: ---- python_novaclient-18.12.0.tar.gz New: ---- python_novaclient-18.13.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-novaclient.spec ++++++ --- /var/tmp/diff_new_pack.2DXmF0/_old 2026-08-09 21:37:37.350906609 +0200 +++ /var/tmp/diff_new_pack.2DXmF0/_new 2026-08-09 21:37:37.354906745 +0200 @@ -18,7 +18,7 @@ %global pythons %{primary_python} Name: python-novaclient -Version: 18.12.0 +Version: 18.13.0 Release: 0 Summary: Python API and CLI for OpenStack Nova License: Apache-2.0 ++++++ python_novaclient-18.12.0.tar.gz -> python_novaclient-18.13.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/ChangeLog new/python_novaclient-18.13.0/ChangeLog --- old/python_novaclient-18.12.0/ChangeLog 2026-02-24 15:34:39.000000000 +0100 +++ new/python_novaclient-18.13.0/ChangeLog 2026-05-13 11:19:36.000000000 +0200 @@ -1,6 +1,13 @@ CHANGES ======= +18.13.0 +------- + +* Remove deprecation warning workaround +* Update master for stable/2026.1 +* Add version foot protector + 18.12.0 ------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/PKG-INFO new/python_novaclient-18.13.0/PKG-INFO --- old/python_novaclient-18.12.0/PKG-INFO 2026-02-24 15:34:40.017911700 +0100 +++ new/python_novaclient-18.13.0/PKG-INFO 2026-05-13 11:19:36.917249000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: python-novaclient -Version: 18.12.0 +Version: 18.13.0 Summary: Client library for OpenStack Compute API Home-page: https://docs.openstack.org/python-novaclient/latest Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/novaclient/api_versions.py new/python_novaclient-18.13.0/novaclient/api_versions.py --- old/python_novaclient-18.12.0/novaclient/api_versions.py 2026-02-24 15:33:49.000000000 +0100 +++ new/python_novaclient-18.13.0/novaclient/api_versions.py 2026-05-13 11:19:06.000000000 +0200 @@ -14,7 +14,6 @@ import functools import logging import os -import pkgutil import re import traceback import warnings @@ -195,35 +194,59 @@ def get_available_major_versions(): - # NOTE(andreykurilin): available clients version should not be - # hardcoded, so let's discover them. - matcher = re.compile(r"v[0-9]*$") - submodules = pkgutil.iter_modules([os.path.dirname(__file__)]) - available_versions = [name[1:] for loader, name, ispkg in submodules - if matcher.search(name)] - - return available_versions + return ['2'] def check_major_version(api_version): """Checks major part of ``APIVersion`` obj is supported. :raises novaclient.exceptions.UnsupportedVersion: if major part is not - supported + supported """ - available_versions = get_available_major_versions() - if (not api_version.is_null() and - str(api_version.ver_major) not in available_versions): - if len(available_versions) == 1: - msg = _("Invalid client version '%(version)s'. " - "Major part should be '%(major)s'") % { - "version": api_version.get_string(), - "major": available_versions[0]} - else: - msg = _("Invalid client version '%(version)s'. " - "Major part must be one of: '%(major)s'") % { - "version": api_version.get_string(), - "major": ", ".join(available_versions)} + if api_version.is_null(): + return + + if api_version.ver_major == 2: + return + + msg = _( + "Invalid client version '%(version)s'. Major part should be '2'" + ) % {"version": api_version.get_string()} + raise exceptions.UnsupportedVersion(msg) + + +def check_version(api_version): + """Checks if version of ``APIVersion`` is supported. + + Provided as an alternative to :func:`check_major_version` to avoid changing + the behavior of that function. + + :raises novaclient.exceptions.UnsupportedVersion: if major part is not + supported + """ + if api_version.is_null(): + return + + # we can't use API_MIN_VERSION since we do support 2.0 (which is 2.1 but + # less strict) + if api_version < APIVersion('2.0'): + msg = _( + "Invalid client version '%(version)s'. " + "Min version supported is '%(min_version)s'" + ) % { + "version": api_version.get_string(), + "min_version": novaclient.API_MIN_VERSION, + } + raise exceptions.UnsupportedVersion(msg) + + if api_version > novaclient.API_MAX_VERSION: + msg = _( + "Invalid client version '%(version)s'. " + "Max version supported is '%(max_version)s'" + ) % { + "version": api_version.get_string(), + "max_version": novaclient.API_MAX_VERSION, + } raise exceptions.UnsupportedVersion(msg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/novaclient/client.py new/python_novaclient-18.13.0/novaclient/client.py --- old/python_novaclient-18.12.0/novaclient/client.py 2026-02-24 15:33:49.000000000 +0100 +++ new/python_novaclient-18.13.0/novaclient/client.py 2026-05-13 11:19:06.000000000 +0200 @@ -51,6 +51,12 @@ self.timings = kwargs.pop('timings', False) self.api_version = kwargs.pop('api_version', None) self.api_version = self.api_version or api_versions.APIVersion() + + if isinstance(self.api_version, str): + self.api_version = api_versions.APIVersion(self.api_version) + + api_versions.check_version(self.api_version) + super(SessionClient, self).__init__(*args, **kwargs) def request(self, url, method, **kwargs): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/novaclient/shell.py new/python_novaclient-18.13.0/novaclient/shell.py --- old/python_novaclient-18.12.0/novaclient/shell.py 2026-02-24 15:33:49.000000000 +0100 +++ new/python_novaclient-18.13.0/novaclient/shell.py 2026-05-13 11:19:06.000000000 +0200 @@ -20,7 +20,6 @@ import argparse import logging -import os import sys from keystoneauth1 import loading @@ -822,16 +821,13 @@ def main(argv=sys.argv[1:]): try: - # Special dansmith envvar to hide the warning. Don't rely on this - # because we will eventually remove all this stuff. - if os.environ.get("NOVACLIENT_ISHOULDNTBEDOINGTHIS") != "1": - print( - _( - "nova CLI is deprecated and will be removed in a future " - "release" - ), - file=sys.stderr, - ) + print( + _( + "nova CLI is deprecated and will be removed in a future " + "release" + ), + file=sys.stderr, + ) argv = [encodeutils.safe_decode(a) for a in argv] OpenStackComputeShell().main(argv) except Exception as exc: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/novaclient/tests/unit/test_api_versions.py new/python_novaclient-18.13.0/novaclient/tests/unit/test_api_versions.py --- old/python_novaclient-18.12.0/novaclient/tests/unit/test_api_versions.py 2026-02-24 15:33:49.000000000 +0100 +++ new/python_novaclient-18.13.0/novaclient/tests/unit/test_api_versions.py 2026-05-13 11:19:06.000000000 +0200 @@ -343,6 +343,27 @@ self.assertEqual(expected_name, fake_func.__id__) +class CheckVersionTestCase(utils.TestCase): + def test_version_unsupported(self): + for version in ('1.0', '1.5', '1.100'): + with self.subTest('version too old', version=version): + self.assertRaises( + exceptions.UnsupportedVersion, + api_versions.check_version, + api_versions.APIVersion(version)) + + for version in ('2.97', '2.101', '3.0'): + with self.subTest('version too new', version=version): + self.assertRaises( + exceptions.UnsupportedVersion, + api_versions.check_version, + api_versions.APIVersion(version)) + + for version in ('2.1', '2.57', '2.96'): + with self.subTest('version just right', version=version): + api_versions.check_version(api_versions.APIVersion(version)) + + class DiscoverVersionTestCase(utils.TestCase): def setUp(self): super(DiscoverVersionTestCase, self).setUp() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/python_novaclient.egg-info/PKG-INFO new/python_novaclient-18.13.0/python_novaclient.egg-info/PKG-INFO --- old/python_novaclient-18.12.0/python_novaclient.egg-info/PKG-INFO 2026-02-24 15:34:39.000000000 +0100 +++ new/python_novaclient-18.13.0/python_novaclient.egg-info/PKG-INFO 2026-05-13 11:19:36.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: python-novaclient -Version: 18.12.0 +Version: 18.13.0 Summary: Client library for OpenStack Compute API Home-page: https://docs.openstack.org/python-novaclient/latest Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/python_novaclient.egg-info/SOURCES.txt new/python_novaclient-18.13.0/python_novaclient.egg-info/SOURCES.txt --- old/python_novaclient-18.12.0/python_novaclient.egg-info/SOURCES.txt 2026-02-24 15:34:39.000000000 +0100 +++ new/python_novaclient-18.13.0/python_novaclient.egg-info/SOURCES.txt 2026-05-13 11:19:36.000000000 +0200 @@ -318,6 +318,7 @@ releasenotes/source/2024.2.rst releasenotes/source/2025.1.rst releasenotes/source/2025.2.rst +releasenotes/source/2026.1.rst releasenotes/source/conf.py releasenotes/source/index.rst releasenotes/source/liberty.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/python_novaclient.egg-info/pbr.json new/python_novaclient-18.13.0/python_novaclient.egg-info/pbr.json --- old/python_novaclient-18.12.0/python_novaclient.egg-info/pbr.json 2026-02-24 15:34:39.000000000 +0100 +++ new/python_novaclient-18.13.0/python_novaclient.egg-info/pbr.json 2026-05-13 11:19:36.000000000 +0200 @@ -1 +1 @@ -{"git_version": "e00ed698", "is_release": true} \ No newline at end of file +{"git_version": "fdea2c09", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/releasenotes/source/2026.1.rst new/python_novaclient-18.13.0/releasenotes/source/2026.1.rst --- old/python_novaclient-18.12.0/releasenotes/source/2026.1.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/python_novaclient-18.13.0/releasenotes/source/2026.1.rst 2026-05-13 11:19:06.000000000 +0200 @@ -0,0 +1,6 @@ +=========================== +2026.1 Series Release Notes +=========================== + +.. release-notes:: + :branch: stable/2026.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_novaclient-18.12.0/releasenotes/source/index.rst new/python_novaclient-18.13.0/releasenotes/source/index.rst --- old/python_novaclient-18.12.0/releasenotes/source/index.rst 2026-02-24 15:33:49.000000000 +0100 +++ new/python_novaclient-18.13.0/releasenotes/source/index.rst 2026-05-13 11:19:06.000000000 +0200 @@ -8,6 +8,7 @@ :maxdepth: 2 unreleased + 2026.1 2025.2 2025.1 2024.2
