Hello community,

here is the log from the commit of package python-oslo.config for 
openSUSE:Factory checked in at 2015-09-02 07:53:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.config (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.config.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.config"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.config/python-oslo.config.changes    
2015-08-27 08:54:47.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.config.new/python-oslo.config.changes   
    2015-09-02 07:53:57.000000000 +0200
@@ -1,0 +2,15 @@
+Fri Aug 28 09:33:38 UTC 2015 - [email protected]
+
+- Fix doc build
+
+-------------------------------------------------------------------
+Thu Aug 27 14:32:33 UTC 2015 - [email protected]
+
+- update to 2.3.0:
+  * Add sphinx extension to embed pretty descriptions of options
+  * Add sphinx extension to build sample config
+  * Updated from global requirements
+  * Updated from global requirements
+  * preserve preformatted help text
+
+-------------------------------------------------------------------

Old:
----
  oslo.config-2.1.0.tar.gz

New:
----
  oslo.config-2.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.config.spec ++++++
--- /var/tmp/diff_new_pack.b5AfOz/_old  2015-09-02 07:53:57.000000000 +0200
+++ /var/tmp/diff_new_pack.b5AfOz/_new  2015-09-02 07:53:57.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-oslo.config
-Version:        2.1.0
+Version:        2.3.0
 Release:        0
 Summary:        OpenStack configuration API
 License:        Apache-2.0
@@ -77,9 +77,9 @@
 %{__python2} setup.py install --skip-build --root %{buildroot}
 
 # generate html docs
-sphinx-build doc/source html
+python setup.py build_sphinx
 # remove the sphinx-build leftovers
-rm -rf html/.{doctrees,buildinfo}
+rm -rf doc/build/html/.{doctrees,buildinfo}
 
 %files
 %defattr(-,root,root,-)
@@ -90,6 +90,6 @@
 
 %files doc
 %defattr(-,root,root,-)
-%doc LICENSE html
+%doc LICENSE doc/build/html
 
 %changelog

++++++ oslo.config-2.1.0.tar.gz -> oslo.config-2.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/AUTHORS 
new/oslo.config-2.3.0/AUTHORS
--- old/oslo.config-2.1.0/AUTHORS       2015-07-27 21:56:32.000000000 +0200
+++ new/oslo.config-2.3.0/AUTHORS       2015-08-24 23:32:57.000000000 +0200
@@ -53,6 +53,7 @@
 Luis A. Garcia <[email protected]>
 Mark McLoughlin <[email protected]>
 Mark Vanderwiel <[email protected]>
+Markus Zoeller <[email protected]>
 Matt Riedemann <[email protected]>
 Matthew Treinish <[email protected]>
 Maxim Kulkin <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/ChangeLog 
new/oslo.config-2.3.0/ChangeLog
--- old/oslo.config-2.1.0/ChangeLog     2015-07-27 21:56:32.000000000 +0200
+++ new/oslo.config-2.3.0/ChangeLog     2015-08-24 23:32:57.000000000 +0200
@@ -1,6 +1,19 @@
 CHANGES
 =======
 
+2.3.0
+-----
+
+* Add sphinx extension to embed pretty descriptions of options
+* Add sphinx extension to build sample config
+* Updated from global requirements
+
+2.2.0
+-----
+
+* Updated from global requirements
+* preserve preformatted help text
+
 2.1.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/PKG-INFO 
new/oslo.config-2.3.0/PKG-INFO
--- old/oslo.config-2.1.0/PKG-INFO      2015-07-27 21:56:33.000000000 +0200
+++ new/oslo.config-2.3.0/PKG-INFO      2015-08-24 23:32:57.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.config
-Version: 2.1.0
+Version: 2.3.0
 Summary: Oslo Configuration API
 Home-page: https://launchpad.net/oslo
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/doc/source/conf.py 
new/oslo.config-2.3.0/doc/source/conf.py
--- old/oslo.config-2.1.0/doc/source/conf.py    2015-07-27 21:56:09.000000000 
+0200
+++ new/oslo.config-2.3.0/doc/source/conf.py    2015-08-24 23:32:24.000000000 
+0200
@@ -8,7 +8,10 @@
 
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'oslosphinx']
+extensions = ['sphinx.ext.autodoc', 'oslosphinx',
+              'oslo_config.sphinxconfiggen']
+
+config_generator_config_file = 'config-generator.conf'
 
 # autodoc generation is a bit aggressive and a nuisance when doing heavy
 # text edit cycles.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/doc/source/config-generator.conf 
new/oslo.config-2.3.0/doc/source/config-generator.conf
--- old/oslo.config-2.1.0/doc/source/config-generator.conf      1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.config-2.3.0/doc/source/config-generator.conf      2015-08-24 
23:32:24.000000000 +0200
@@ -0,0 +1,3 @@
+[DEFAULT]
+wrap_width = 79
+namespace = oslo.config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/doc/source/index.rst 
new/oslo.config-2.3.0/doc/source/index.rst
--- old/oslo.config-2.1.0/doc/source/index.rst  2015-07-27 21:56:09.000000000 
+0200
+++ new/oslo.config-2.3.0/doc/source/index.rst  2015-08-24 23:32:24.000000000 
+0200
@@ -24,6 +24,7 @@
    generator
    faq
    contributing
+   sphinxconfiggen
 
 Indices and tables
 ==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/doc/source/sphinxconfiggen.rst 
new/oslo.config-2.3.0/doc/source/sphinxconfiggen.rst
--- old/oslo.config-2.1.0/doc/source/sphinxconfiggen.rst        1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.config-2.3.0/doc/source/sphinxconfiggen.rst        2015-08-24 
23:32:24.000000000 +0200
@@ -0,0 +1,24 @@
+====================================
+Sphinx Oslo Sample Config Generation
+====================================
+
+Included with oslo.config is a sphinx extension to generate a sample config
+file at the beginning of each sphinx build. To activate the extension add
+``oslo_config.sphinxgenconfig`` to the list of extensions in your sphinx
+``conf.py``.
+
+Then you just need to use the ``config_generator_config_file`` option to point
+the config generator at the config file which tells it how to generate the
+sample config. If one isn't specified or it doesn't point to a real file the
+sample config file generation will be skipped.
+
+Output File Name
+----------------
+
+By default the sphinx plugin will generate the sample config file and name the
+file sample.config. However, if for whatever reason you'd like the name to be
+more specific to the project name you can use the ``config_sample_basename``
+config option to specify the project name. If it's set the output filename
+will be that value with a .conf.sample extension. For example if you set that
+to be nova the output filename will be nova.conf.sample. You can also put a
+subdirectory off of the srcdir as part of this value.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/doc/source/styleguide.rst 
new/oslo.config-2.3.0/doc/source/styleguide.rst
--- old/oslo.config-2.1.0/doc/source/styleguide.rst     2015-07-27 
21:56:09.000000000 +0200
+++ new/oslo.config-2.3.0/doc/source/styleguide.rst     2015-08-24 
23:32:24.000000000 +0200
@@ -69,3 +69,16 @@
                       'can improve data throughput, such as when high '
                       'network bandwidth is available and you use '
                       'compressed image formats like qcow2.')
+
+2. It is possible to preformat the multi-line strings to increase readability.
+   Line break characters ``\n`` will be kept as they are used in the help text.
+   Example::
+
+     cfg.IntOpt('sync_power_state_interval',
+                default=600,
+                help='Interval to sync power states between the database and '
+                     'the hypervisor.\n'
+                     '\n'
+                     '-1: disables the sync \n'
+                     ' 0: run at the default rate.\n'
+                     '>0: the interval in seconds')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/oslo.config.egg-info/PKG-INFO 
new/oslo.config-2.3.0/oslo.config.egg-info/PKG-INFO
--- old/oslo.config-2.1.0/oslo.config.egg-info/PKG-INFO 2015-07-27 
21:56:32.000000000 +0200
+++ new/oslo.config-2.3.0/oslo.config.egg-info/PKG-INFO 2015-08-24 
23:32:57.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.config
-Version: 2.1.0
+Version: 2.3.0
 Summary: Oslo Configuration API
 Home-page: https://launchpad.net/oslo
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/oslo.config.egg-info/SOURCES.txt 
new/oslo.config-2.3.0/oslo.config.egg-info/SOURCES.txt
--- old/oslo.config-2.1.0/oslo.config.egg-info/SOURCES.txt      2015-07-27 
21:56:33.000000000 +0200
+++ new/oslo.config-2.3.0/oslo.config.egg-info/SOURCES.txt      2015-08-24 
23:32:57.000000000 +0200
@@ -13,6 +13,7 @@
 doc/source/cfg.rst
 doc/source/cfgfilter.rst
 doc/source/conf.py
+doc/source/config-generator.conf
 doc/source/configopts.rst
 doc/source/contributing.rst
 doc/source/exceptions.rst
@@ -24,6 +25,7 @@
 doc/source/namespaces.rst
 doc/source/opts.rst
 doc/source/parser.rst
+doc/source/sphinxconfiggen.rst
 doc/source/styleguide.rst
 doc/source/types.rst
 oslo.config.egg-info/PKG-INFO
@@ -40,6 +42,8 @@
 oslo_config/fixture.py
 oslo_config/generator.py
 oslo_config/iniparser.py
+oslo_config/sphinxconfiggen.py
+oslo_config/sphinxext.py
 oslo_config/types.py
 oslo_config/tests/__init__.py
 oslo_config/tests/test_cfg.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/oslo.config.egg-info/pbr.json 
new/oslo.config-2.3.0/oslo.config.egg-info/pbr.json
--- old/oslo.config-2.1.0/oslo.config.egg-info/pbr.json 2015-07-27 
21:56:32.000000000 +0200
+++ new/oslo.config-2.3.0/oslo.config.egg-info/pbr.json 2015-08-24 
23:32:57.000000000 +0200
@@ -1 +1 @@
-{"is_release": true, "git_version": "ac505d8"}
\ No newline at end of file
+{"is_release": true, "git_version": "bc13758"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/oslo_config/generator.py 
new/oslo.config-2.3.0/oslo_config/generator.py
--- old/oslo.config-2.1.0/oslo_config/generator.py      2015-07-27 
21:56:09.000000000 +0200
+++ new/oslo.config-2.3.0/oslo_config/generator.py      2015-08-24 
23:32:25.000000000 +0200
@@ -59,6 +59,46 @@
     conf.register_cli_opts(_generator_opts)
 
 
+def _format_defaults(opt):
+    "Return a list of formatted default values."
+    if isinstance(opt, cfg.MultiStrOpt):
+        if opt.sample_default is not None:
+            defaults = opt.sample_default
+        elif not opt.default:
+            defaults = ['']
+        else:
+            defaults = opt.default
+    else:
+        if opt.sample_default is not None:
+            default_str = str(opt.sample_default)
+        elif opt.default is None:
+            default_str = '<None>'
+        elif isinstance(opt, cfg.StrOpt):
+            default_str = opt.default
+        elif isinstance(opt, cfg.BoolOpt):
+            default_str = str(opt.default).lower()
+        elif (isinstance(opt, cfg.IntOpt) or
+              isinstance(opt, cfg.FloatOpt)):
+            default_str = str(opt.default)
+        elif isinstance(opt, cfg.ListOpt):
+            default_str = ','.join(opt.default)
+        elif isinstance(opt, cfg.DictOpt):
+            sorted_items = sorted(opt.default.items(),
+                                  key=operator.itemgetter(0))
+            default_str = ','.join(['%s:%s' % i for i in sorted_items])
+        else:
+            LOG.warning('Unknown option type: %s', repr(opt))
+            default_str = str(opt.default)
+        defaults = [default_str]
+
+    results = []
+    for default_str in defaults:
+        if default_str.strip() != default_str:
+            default_str = '"%s"' % default_str
+        results.append(default_str)
+    return results
+
+
 class _OptFormatter(object):
 
     """Format configuration option descriptions to a file."""
@@ -88,10 +128,16 @@
         :param help_text: The text of the help string
         """
         if self.wrap_width is not None and self.wrap_width > 0:
-            lines = [textwrap.fill(help_text,
-                                   self.wrap_width,
-                                   initial_indent='# ',
-                                   subsequent_indent='# ') + '\n']
+            wrapped = ""
+            for line in help_text.splitlines():
+                text = "\n".join(textwrap.wrap(line, self.wrap_width,
+                                               initial_indent='# ',
+                                               subsequent_indent='# ',
+                                               break_long_words=False,
+                                               replace_whitespace=False))
+                wrapped += "#" if text == "" else text
+                wrapped += "\n"
+            lines = [wrapped]
         else:
             lines = ['# ' + help_text + '\n']
         return lines
@@ -140,39 +186,8 @@
                 '# This option is deprecated for removal.\n'
                 '# Its value may be silently ignored in the future.\n')
 
-        if isinstance(opt, cfg.MultiStrOpt):
-            if opt.sample_default is not None:
-                defaults = opt.sample_default
-            elif not opt.default:
-                defaults = ['']
-            else:
-                defaults = opt.default
-        else:
-            if opt.sample_default is not None:
-                default_str = str(opt.sample_default)
-            elif opt.default is None:
-                default_str = '<None>'
-            elif isinstance(opt, cfg.StrOpt):
-                default_str = opt.default
-            elif isinstance(opt, cfg.BoolOpt):
-                default_str = str(opt.default).lower()
-            elif (isinstance(opt, cfg.IntOpt) or
-                  isinstance(opt, cfg.FloatOpt)):
-                default_str = str(opt.default)
-            elif isinstance(opt, cfg.ListOpt):
-                default_str = ','.join(opt.default)
-            elif isinstance(opt, cfg.DictOpt):
-                sorted_items = sorted(opt.default.items(),
-                                      key=operator.itemgetter(0))
-                default_str = ','.join(['%s:%s' % i for i in sorted_items])
-            else:
-                LOG.warning('Unknown option type: %s', repr(opt))
-                default_str = str(opt.default)
-            defaults = [default_str]
-
+        defaults = _format_defaults(opt)
         for default_str in defaults:
-            if default_str.strip() != default_str:
-                default_str = '"%s"' % default_str
             if default_str:
                 default_str = ' ' + default_str
             lines.append('#%s =%s\n' % (opt.dest, default_str))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/oslo_config/sphinxconfiggen.py 
new/oslo.config-2.3.0/oslo_config/sphinxconfiggen.py
--- old/oslo.config-2.1.0/oslo_config/sphinxconfiggen.py        1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.config-2.3.0/oslo_config/sphinxconfiggen.py        2015-08-24 
23:32:24.000000000 +0200
@@ -0,0 +1,66 @@
+# Copyright 2015 Hewlett-Packard Development Company, L.P.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import os
+
+from oslo_config import generator
+
+
+def generate_sample(app):
+
+    def info(msg):
+        app.info('[%s] %s' % (__name__, msg))
+
+    if not app.config.config_generator_config_file:
+        app.warn("No config_generator_config_file is specified, "
+                 "skipping sample config generation")
+        return
+
+    # If we are given a file that isn't an absolute path, look for it
+    # in the source directory if it doesn't exist.
+    candidates = [
+        app.config.config_generator_config_file,
+        os.path.join(
+            app.srcdir,
+            app.config.config_generator_config_file,
+        ),
+    ]
+    for c in candidates:
+        if os.path.isfile(c):
+            info('reading config generator instructions from %s' % c)
+            config_path = c
+            break
+    else:
+        raise ValueError(
+            "Could not find config_generator_config_file %r" %
+            app.config.config_generator_config_file)
+
+    if app.config.sample_config_basename:
+        out_file = os.path.join(
+            app.srcdir, app.config.sample_config_basename) + '.conf.sample'
+        if not os.path.isdir(os.path.dirname(os.path.abspath(out_file))):
+            os.mkdir(os.path.dirname(os.path.abspath(out_file)))
+    else:
+        file_name = 'sample.config'
+        out_file = os.path.join(app.srcdir, file_name)
+
+    info('writing sample configuration to %s' % out_file)
+    generator.main(args=['--config-file', config_path,
+                         '--output-file', out_file])
+
+
+def setup(app):
+    app.add_config_value('config_generator_config_file', None, 'env')
+    app.add_config_value('sample_config_basename', None, 'env')
+    app.connect('builder-inited', generate_sample)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/oslo_config/sphinxext.py 
new/oslo.config-2.3.0/oslo_config/sphinxext.py
--- old/oslo.config-2.1.0/oslo_config/sphinxext.py      1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.config-2.3.0/oslo_config/sphinxext.py      2015-08-24 
23:32:25.000000000 +0200
@@ -0,0 +1,159 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from docutils import nodes
+from docutils.parsers import rst
+from docutils.statemachine import ViewList
+from sphinx.util.nodes import nested_parse_with_titles
+
+from oslo_config import cfg
+from oslo_config import generator
+
+import six
+
+
+def _list_table(add, headers, data, title='', columns=None):
+    """Build a list-table directive.
+
+    :param add: Function to add one row to output.
+    :param headers: List of header values.
+    :param data: Iterable of row data, yielding lists or tuples with rows.
+    """
+    add('.. list-table:: %s' % title)
+    add('   :header-rows: 1')
+    if columns:
+        add('   :widths: %s' % (','.join(str(c) for c in columns)))
+    add('')
+    add('   - * %s' % headers[0])
+    for h in headers[1:]:
+        add('     * %s' % h)
+    for row in data:
+        add('   - * %s' % row[0])
+        for r in row[1:]:
+            add('     * %s' % r)
+    add('')
+
+
+def _indent(text, n=2):
+    padding = ' ' * n
+    return '\n'.join(padding + l for l in text.splitlines())
+
+
+class ShowOptionsDirective(rst.Directive):
+
+    # option_spec = {}
+
+    has_content = True
+
+    _TYPE_DESCRIPTIONS = {
+        cfg.StrOpt: 'string',
+        cfg.BoolOpt: 'boolean',
+        cfg.IntOpt: 'integer',
+        cfg.FloatOpt: 'floating point',
+        cfg.ListOpt: 'list',
+        cfg.DictOpt: 'dict',
+        cfg.MultiStrOpt: 'multi-valued',
+    }
+
+    def run(self):
+        env = self.state.document.settings.env
+        app = env.app
+
+        namespace = ' '.join(self.content)
+
+        opts = generator._list_opts([namespace])
+
+        result = ViewList()
+        source_name = '<' + __name__ + '>'
+
+        def _add(text):
+            "Append some text to the output result view to be parsed."
+            result.append(text, source_name)
+
+        def _add_indented(text):
+            """Append some text, indented by a couple of spaces.
+
+            Indent everything under the option name,
+            to format it as a definition list.
+            """
+            _add(_indent(text))
+
+        by_section = {}
+
+        for ignore, opt_list in opts:
+            for group_name, opts in opt_list:
+                by_section.setdefault(group_name, []).extend(opts)
+
+        for group_name, opt_list in sorted(by_section.items()):
+            group_name = group_name or 'DEFAULT'
+            app.info('[oslo.config] %s %s' % (namespace, group_name))
+            _add(group_name)
+            _add('=' * len(group_name))
+            _add('')
+
+            for opt in opt_list:
+                opt_type = self._TYPE_DESCRIPTIONS.get(type(opt),
+                                                       'unknown type')
+                _add('``%s``' % opt.dest)
+                _add('')
+                _add_indented(':Type: %s' % opt_type)
+                for default in generator._format_defaults(opt):
+                    if default:
+                        default = '``' + default + '``'
+                    _add_indented(':Default: %s' % default)
+                if getattr(opt.type, 'min', None):
+                    _add_indented(':Minimum Value: %s' % opt.type.min)
+                if getattr(opt.type, 'max', None):
+                    _add_indented(':Maximum Value: %s' % opt.type.max)
+                if getattr(opt.type, 'choices', None):
+                    choices_text = ', '.join([self._get_choice_text(choice)
+                                              for choice in opt.type.choices])
+                    _add_indented(':Valid Values: %s' % choices_text)
+                _add('')
+
+                _add_indented(opt.help)
+                _add('')
+
+                if opt.deprecated_opts:
+                    _list_table(
+                        _add_indented,
+                        ['Group', 'Name'],
+                        ((d.group or 'DEFAULT',
+                          d.name or opt.dest or 'UNSET')
+                         for d in opt.deprecated_opts),
+                        title='Deprecated Variations',
+                    )
+                if opt.deprecated_for_removal:
+                    _add_indented('.. warning:')
+                    _add_indented('   This option is deprecated for removal.')
+                    _add_indented('   Its value may be silently ignored ')
+                    _add_indented('   in the future.')
+                    _add('')
+
+                _add('')
+
+        node = nodes.section()
+        node.document = self.state.document
+        nested_parse_with_titles(self.state, result, node)
+
+        return node.children
+
+    def _get_choice_text(self, choice):
+        if choice is None:
+            return '<None>'
+        elif choice == '':
+            return "''"
+        return six.text_type(choice)
+
+
+def setup(app):
+    app.add_directive('show-options', ShowOptionsDirective)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.config-2.1.0/oslo_config/tests/test_generator.py 
new/oslo.config-2.3.0/oslo_config/tests/test_generator.py
--- old/oslo.config-2.1.0/oslo_config/tests/test_generator.py   2015-07-27 
21:56:09.000000000 +0200
+++ new/oslo.config-2.3.0/oslo_config/tests/test_generator.py   2015-08-24 
23:32:24.000000000 +0200
@@ -48,6 +48,19 @@
                                      'cupidatat non proident, sunt in culpa '
                                      'qui officia deserunt mollit anim id est '
                                      'laborum.'),
+        'long_help_pre': cfg.StrOpt('long_help_pre',
+                                    help='This is a very long help text which '
+                                         'is preformatted with line breaks. '
+                                         'It should break when it is too long '
+                                         'but also keep the specified line '
+                                         'breaks. This makes it possible to '
+                                         'create lists with items:\n'
+                                         '\n'
+                                         '* item 1\n'
+                                         '* item 2\n'
+                                         '\n'
+                                         'and should increase the '
+                                         'readability.'),
         'choices_opt': cfg.StrOpt('choices_opt',
                                   default='a',
                                   choices=(None, '', 'a', 'b', 'c'),
@@ -289,6 +302,26 @@
 '''
 #long_help = <None>
 ''')),
+        ('long_help_with_preformatting',
+         dict(opts=[('test', [(None, [opts['long_help_pre']])])],
+              wrap_width=70,
+              expected='''[DEFAULT]
+
+#
+# From test
+#
+
+# This is a very long help text which is preformatted with line
+# breaks. It should break when it is too long but also keep the
+# specified line breaks. This makes it possible to create lists with
+# items:
+#
+# * item 1
+# * item 2
+#
+# and should increase the readability. (string value)
+#long_help_pre = <None>
+''')),
         ('choices_opt',
          dict(opts=[('test', [(None, [opts['choices_opt']])])],
               expected='''[DEFAULT]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/setup.cfg 
new/oslo.config-2.3.0/setup.cfg
--- old/oslo.config-2.1.0/setup.cfg     2015-07-27 21:56:33.000000000 +0200
+++ new/oslo.config-2.3.0/setup.cfg     2015-08-24 23:32:57.000000000 +0200
@@ -45,6 +45,6 @@
 
 [egg_info]
 tag_build = 
-tag_svn_revision = 0
 tag_date = 0
+tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.config-2.1.0/test-requirements.txt 
new/oslo.config-2.3.0/test-requirements.txt
--- old/oslo.config-2.1.0/test-requirements.txt 2015-07-27 21:56:10.000000000 
+0200
+++ new/oslo.config-2.3.0/test-requirements.txt 2015-08-24 23:32:24.000000000 
+0200
@@ -10,7 +10,7 @@
 testrepository>=0.0.18
 testscenarios>=0.4
 testtools>=1.4.0
-oslotest>=1.7.0 # Apache-2.0
+oslotest>=1.10.0 # Apache-2.0
 
 # when we can require tox>= 1.4, this can go into tox.ini:
 #  [testenv:cover]



Reply via email to