Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-oslo.config for openSUSE:Factory checked in at 2026-09-02 17:00:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.config (Old) and /work/SRC/openSUSE:Factory/.python-oslo.config.new.1265 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.config" Wed Sep 2 17:00:51 2026 rev:53 rq:1375237 version:10.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.config/python-oslo.config.changes 2026-08-09 21:37:04.885801164 +0200 +++ /work/SRC/openSUSE:Factory/.python-oslo.config.new.1265/python-oslo.config.changes 2026-09-02 17:01:02.604791141 +0200 @@ -1,0 +2,8 @@ +Tue Sep 1 21:35:23 UTC 2026 - Dirk Müller <[email protected]> + +- update to 10.7.0: + * bindep: Remove stale marker + * Implements sample_max and sample_min + * Maintain doc8 options in pyproject.toml + +------------------------------------------------------------------- Old: ---- oslo_config-10.6.0.tar.gz New: ---- oslo_config-10.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.config.spec ++++++ --- /var/tmp/diff_new_pack.gzx2bx/_old 2026-09-02 17:01:03.252813402 +0200 +++ /var/tmp/diff_new_pack.gzx2bx/_new 2026-09-02 17:01:03.254813471 +0200 @@ -17,7 +17,7 @@ Name: python-oslo.config -Version: 10.6.0 +Version: 10.7.0 Release: 0 Summary: OpenStack common configuration library License: Apache-2.0 ++++++ oslo_config-10.6.0.tar.gz -> oslo_config-10.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/.pre-commit-config.yaml new/oslo_config-10.7.0/.pre-commit-config.yaml --- old/oslo_config-10.6.0/.pre-commit-config.yaml 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/.pre-commit-config.yaml 2026-08-07 13:12:55.000000000 +0200 @@ -27,4 +27,3 @@ rev: v2.0.0 hooks: - id: doc8 - args: ['--ignore', 'D001'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/AUTHORS new/oslo_config-10.7.0/AUTHORS --- old/oslo_config-10.6.0/AUTHORS 2026-07-16 13:15:43.000000000 +0200 +++ new/oslo_config-10.7.0/AUTHORS 2026-08-07 13:13:32.000000000 +0200 @@ -162,6 +162,7 @@ Takashi Kajinami <[email protected]> Takashi NATSUME <[email protected]> Thomas Bechtold <[email protected]> +Thomas Goirand <[email protected]> Thomas Herve <[email protected]> Thomas Morin <[email protected]> Tim Miller <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/ChangeLog new/oslo_config-10.7.0/ChangeLog --- old/oslo_config-10.6.0/ChangeLog 2026-07-16 13:15:43.000000000 +0200 +++ new/oslo_config-10.7.0/ChangeLog 2026-08-07 13:13:32.000000000 +0200 @@ -1,9 +1,17 @@ CHANGES ======= +10.7.0 +------ + +* bindep: Remove stale marker +* Implements sample\_max and sample\_min +* Maintain doc8 options in pyproject.toml + 10.6.0 ------ +* Document ConfigOpts state snapshots * Name ConfigOpts serialized state version * ruff: Enable log-related checks * Support ConfigOpts state snapshots for spawn workers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/PKG-INFO new/oslo_config-10.7.0/PKG-INFO --- old/oslo_config-10.6.0/PKG-INFO 2026-07-16 13:15:43.727089000 +0200 +++ new/oslo_config-10.7.0/PKG-INFO 2026-08-07 13:13:32.971447700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: oslo.config -Version: 10.6.0 +Version: 10.7.0 Summary: Oslo Configuration API Author-email: OpenStack <[email protected]> License-Expression: Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/bindep.txt new/oslo_config-10.7.0/bindep.txt --- old/oslo_config-10.6.0/bindep.txt 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/bindep.txt 2026-08-07 13:12:55.000000000 +0200 @@ -2,6 +2,6 @@ # see http://docs.openstack.org/infra/bindep/ for additional information. locales [platform:debian] -python3-all-dev [platform:ubuntu !platform:ubuntu-precise] +python3-all-dev [platform:ubuntu] python3-dev [platform:dpkg] python3-devel [platform:fedora] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/doc/source/reference/configopts-state.rst new/oslo_config-10.7.0/doc/source/reference/configopts-state.rst --- old/oslo_config-10.6.0/doc/source/reference/configopts-state.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo_config-10.7.0/doc/source/reference/configopts-state.rst 2026-08-07 13:12:55.000000000 +0200 @@ -0,0 +1,73 @@ +======================================== + ConfigOpts state and spawn processes +======================================== + +The ``spawn`` multiprocessing start method starts a fresh Python interpreter. +Unlike a process created with ``fork``, the child does not inherit the parent +process memory state. A configured :class:`~oslo_config.cfg.ConfigOpts` +instance can be passed to a spawned worker because it supports Python +``pickle`` serialization. + +The :meth:`~oslo_config.cfg.ConfigOpts.export_state` method returns an explicit +snapshot, and :meth:`~oslo_config.cfg.ConfigOpts.import_state` creates a new +``ConfigOpts`` instance from such a snapshot. Pickling a ``ConfigOpts`` +instance uses the same snapshot representation. + +The snapshot preserves registered options and groups, parsed command-line and +configuration-file values, defaults, overrides, parsed namespaces, and setup +metadata such as the project name and default configuration files and +directories. + +Process-local state is intentionally not serialized. This includes argparse +parsers, caches, mutation hooks, extension managers, and environment drivers. +The child recreates the internal objects needed for normal option access, but +applications must register mutation hooks again and recreate any other +process-local state that they need in the child. + +Alternative configuration sources +--------------------------------- + +A snapshot cannot be exported after alternative configuration sources have +been loaded. These sources are typically created when the ``config_source`` +option or ``--config_source`` command-line argument is used, and may contain +process-local or non-picklable resources. In that case, serialization raises +:class:`~oslo_config.cfg.ConfigOptsSerializationError` rather than silently +discarding configuration state. Driver option metadata associated with +configuration source drivers is also unsupported. + +Applications that use alternative sources should pass serializable inputs to +the child and recreate the sources there instead of passing the configured +``ConfigOpts`` instance. + +Using ConfigOpts with multiprocessing spawn +------------------------------------------- + +Worker functions must be defined at module scope so that ``spawn`` can import +them. In this example, the override set in the parent is available in the +child: + +.. code-block:: python + + import multiprocessing + + from oslo_config import cfg + + + def worker(conf, result_queue): + result_queue.put(conf.worker_count) + + + if __name__ == '__main__': + conf = cfg.ConfigOpts() + conf.register_opt(cfg.IntOpt('worker_count', default=1)) + conf.set_override('worker_count', 4) + + context = multiprocessing.get_context('spawn') + result_queue = context.Queue() + process = context.Process(target=worker, args=(conf, result_queue)) + process.start() + + assert result_queue.get() == 4 + process.join() + assert process.exitcode == 0 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/doc/source/reference/index.rst new/oslo_config-10.7.0/doc/source/reference/index.rst --- old/oslo_config-10.6.0/doc/source/reference/index.rst 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/doc/source/reference/index.rst 2026-08-07 13:12:55.000000000 +0200 @@ -9,6 +9,7 @@ defining naming accessing + configopts-state configuration-files command-line deprecating diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo.config.egg-info/PKG-INFO new/oslo_config-10.7.0/oslo.config.egg-info/PKG-INFO --- old/oslo_config-10.6.0/oslo.config.egg-info/PKG-INFO 2026-07-16 13:15:43.000000000 +0200 +++ new/oslo_config-10.7.0/oslo.config.egg-info/PKG-INFO 2026-08-07 13:13:32.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: oslo.config -Version: 10.6.0 +Version: 10.7.0 Summary: Oslo Configuration API Author-email: OpenStack <[email protected]> License-Expression: Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo.config.egg-info/SOURCES.txt new/oslo_config-10.7.0/oslo.config.egg-info/SOURCES.txt --- old/oslo_config-10.6.0/oslo.config.egg-info/SOURCES.txt 2026-07-16 13:15:43.000000000 +0200 +++ new/oslo_config-10.7.0/oslo.config.egg-info/SOURCES.txt 2026-08-07 13:13:32.000000000 +0200 @@ -31,6 +31,7 @@ doc/source/contributor/index.rst doc/source/reference/accessing.rst doc/source/reference/command-line.rst +doc/source/reference/configopts-state.rst doc/source/reference/configuration-files.rst doc/source/reference/defining.rst doc/source/reference/deprecating.rst @@ -113,6 +114,7 @@ releasenotes/notes/remove-py38-2cebf20be79f1709.yaml releasenotes/notes/remove-py39-2c955ada07c2a862.yaml releasenotes/notes/remove-uri-value-4078778bce0b96cb.yaml +releasenotes/notes/sample_min-and-max-9f1b321fa408bf2f.yaml releasenotes/notes/show-deprecated-reason-361a8eb31e05c97e.yaml releasenotes/notes/support-choice-descriptions-8b2d0c14fbd16b2a.yaml releasenotes/notes/support-fatal-deprecations-ea0513aa58a395ca.yaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo.config.egg-info/pbr.json new/oslo_config-10.7.0/oslo.config.egg-info/pbr.json --- old/oslo_config-10.6.0/oslo.config.egg-info/pbr.json 2026-07-16 13:15:43.000000000 +0200 +++ new/oslo_config-10.7.0/oslo.config.egg-info/pbr.json 2026-08-07 13:13:32.000000000 +0200 @@ -1 +1 @@ -{"git_version": "e148266", "is_release": true} \ No newline at end of file +{"git_version": "37b7876", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo_config/cfg.py new/oslo_config-10.7.0/oslo_config/cfg.py --- old/oslo_config-10.6.0/oslo_config/cfg.py 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/oslo_config/cfg.py 2026-08-07 13:12:55.000000000 +0200 @@ -1176,6 +1176,8 @@ :param max: maximum value the integer can take :param choices: Optional sequence of either valid values or tuples of valid values with descriptions. + :param sample_min: a minimum value string for sample config files + :param sample_max: a maximum value string for sample config files :param \*\*kwargs: arbitrary keyword arguments passed to :class:`Opt` .. versionchanged:: 1.15 @@ -1186,6 +1188,11 @@ .. versionchanged:: 9.3.0 Added *choices* parameter. + + .. versionchanged:: 10.7.0 + + Added sample_min and sample_max, + """ def __init__( @@ -1194,11 +1201,19 @@ min: int | None = None, max: int | None = None, choices: Any = None, + sample_min: str | None = None, + sample_max: str | None = None, **kwargs: Any, ) -> None: super().__init__( name, - type=types.Integer(min=min, max=max, choices=choices), + type=types.Integer( + min=min, + max=max, + choices=choices, + sample_min=sample_min, + sample_max=sample_max, + ), **kwargs, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo_config/generator.py new/oslo_config-10.7.0/oslo_config/generator.py --- old/oslo_config-10.6.0/oslo_config/generator.py 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/oslo_config/generator.py 2026-08-07 13:12:55.000000000 +0200 @@ -337,10 +337,16 @@ lines = self._format_help(help_text) if getattr(opt.type, 'min', None) is not None: - lines.append(f'# Minimum value: {opt.type.min}\n') + if getattr(opt.type, 'sample_min', None) is not None: + lines.append(f'# Minimum value: {opt.type.sample_min}\n') + else: + lines.append(f'# Minimum value: {opt.type.min}\n') if getattr(opt.type, 'max', None) is not None: - lines.append(f'# Maximum value: {opt.type.max}\n') + if getattr(opt.type, 'sample_max', None) is not None: + lines.append(f'# Maximum value: {opt.type.sample_max}\n') + else: + lines.append(f'# Maximum value: {opt.type.max}\n') if getattr(opt.type, 'choices', None): lines.append('# Possible values:\n') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo_config/tests/test_generator.py new/oslo_config-10.7.0/oslo_config/tests/test_generator.py --- old/oslo_config-10.6.0/oslo_config/tests/test_generator.py 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/oslo_config/tests/test_generator.py 2026-08-07 13:12:55.000000000 +0200 @@ -160,6 +160,20 @@ 'int_opt_max_0': cfg.IntOpt( 'int_opt_max_0', default=-1, max=0, help='an integer' ), + 'int_opt_max_0_with_spl': cfg.IntOpt( + 'int_opt_max_0_with_spl', + default=-1, + max=0, + sample_max='zero', + help='an integer', + ), + 'int_opt_min_2_with_spl': cfg.IntOpt( + 'int_opt_min_2_with_spl', + default=5, + min=0, + sample_min='two', + help='an integer', + ), 'float_opt': cfg.FloatOpt('float_opt', default=0.1, help='a float'), 'list_opt': cfg.ListOpt( 'list_opt', default=['1', '2', '3'], help='a list' @@ -788,6 +802,38 @@ ''', ), ), + ( + 'int_opt_max_0_with_spl', + dict( + opts=[('test', [(None, [opts['int_opt_max_0_with_spl']])])], + expected='''[DEFAULT] + +# +# From test +# + +# an integer (integer value) +# Maximum value: zero +#int_opt_max_0_with_spl = -1 +''', + ), + ), + ( + 'int_opt_min_2_with_spl', + dict( + opts=[('test', [(None, [opts['int_opt_min_2_with_spl']])])], + expected='''[DEFAULT] + +# +# From test +# + +# an integer (integer value) +# Minimum value: two +#int_opt_min_2_with_spl = 5 +''', + ), + ), ( 'float_opt', dict( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/oslo_config/types.py new/oslo_config-10.7.0/oslo_config/types.py --- old/oslo_config-10.6.0/oslo_config/types.py 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/oslo_config/types.py 2026-08-07 13:12:55.000000000 +0200 @@ -291,6 +291,10 @@ :param type_name: Type name to be used in the sample config file. :param min: Optional check that value is greater than or equal to min. :param max: Optional check that value is less than or equal to max. + :param sample_min: Optional display value when generating config file, + replacing min. + :param sample_max: Optional display value when generating config file, + replacing max. :param choices: Optional sequence of either valid values or tuples of valid values with descriptions. @@ -299,6 +303,11 @@ .. versionchanged:: 5.2 The *choices* parameter will now accept a sequence of tuples, where each tuple is of form (*choice*, *description*) + + .. versionchanged:: 10.7.0 + + Added sample_min and sample_max, + """ choices: collections.OrderedDict[int | float, str | None] | None @@ -310,6 +319,8 @@ min: int | float | None = None, max: int | float | None = None, choices: Any = None, + sample_min: str | None = None, + sample_max: str | None = None, ) -> None: super().__init__(type_name=type_name) @@ -336,6 +347,8 @@ self.min = min self.max = max + self.sample_min = sample_min + self.sample_max = sample_max self.num_type = num_type def __call__(self, value: Any) -> int | float | None: @@ -407,6 +420,10 @@ :param type_name: Type name to be used in the sample config file. :param choices: Optional sequence of either valid values or tuples of valid values with descriptions. + :param sample_min: Optional display value when generating config file, + replacing min. + :param sample_max: Optional display value when generating config file, + replacing max. .. versionchanged:: 2.4 The class now honors zero for *min* and *max* parameters. @@ -424,6 +441,11 @@ .. versionchanged:: 5.2 The *choices* parameter will now accept a sequence of tuples, where each tuple is of form (*choice*, *description*) + + .. versionchanged:: 10.7.0 + + Added sample_min and sample_max, + """ def __init__( @@ -432,8 +454,18 @@ max: int | None = None, type_name: str = 'integer value', choices: Any = None, + sample_min: str | None = None, + sample_max: str | None = None, ) -> None: - super().__init__(int, type_name, min=min, max=max, choices=choices) + super().__init__( + int, + type_name, + min=min, + max=max, + choices=choices, + sample_min=sample_min, + sample_max=sample_max, + ) class Float(Number): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/pyproject.toml new/oslo_config-10.7.0/pyproject.toml --- old/oslo_config-10.6.0/pyproject.toml 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/pyproject.toml 2026-08-07 13:12:55.000000000 +0200 @@ -83,3 +83,6 @@ [tool.ruff.lint.per-file-ignores] "oslo_config/tests/*" = ["S"] + +[tool.doc8] +ignore = ["D001"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/releasenotes/notes/configopts-serialization-spawn-9f6d3a1c2b4e5f70.yaml new/oslo_config-10.7.0/releasenotes/notes/configopts-serialization-spawn-9f6d3a1c2b4e5f70.yaml --- old/oslo_config-10.6.0/releasenotes/notes/configopts-serialization-spawn-9f6d3a1c2b4e5f70.yaml 2026-07-16 13:15:12.000000000 +0200 +++ new/oslo_config-10.7.0/releasenotes/notes/configopts-serialization-spawn-9f6d3a1c2b4e5f70.yaml 2026-08-07 13:12:55.000000000 +0200 @@ -10,5 +10,7 @@ Process-local helpers such as argparse parsers, caches, extension managers, mutation hooks, and environment drivers are intentionally excluded from the - serialized state. Loaded configuration source objects are rejected with - ``ConfigOptsSerializationError`` instead of being silently dropped. + serialized state. Loaded configuration source objects, typically created + through the ``config_source`` option or ``--config_source`` argument, are + rejected with ``ConfigOptsSerializationError`` instead of being silently + dropped. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo_config-10.6.0/releasenotes/notes/sample_min-and-max-9f1b321fa408bf2f.yaml new/oslo_config-10.7.0/releasenotes/notes/sample_min-and-max-9f1b321fa408bf2f.yaml --- old/oslo_config-10.6.0/releasenotes/notes/sample_min-and-max-9f1b321fa408bf2f.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo_config-10.7.0/releasenotes/notes/sample_min-and-max-9f1b321fa408bf2f.yaml 2026-08-07 13:12:55.000000000 +0200 @@ -0,0 +1,10 @@ +--- +features: + - | + There is now new `sample_min` and `sample_max` attributes to the int + configuration object. They may be use to replace the min and max values + when generating the configuration file with oslo-config-generator. For + example, if one wants max=processutils.get_worker_count(), it is desirable + to set a sample_max value (ie: `sample_max='<WORKER_COUNT>'`) to avoid + that the number of CPU of the builder machine leaks in the generated + configuration file.
