Hello community, here is the log from the commit of package python-osc-lib for openSUSE:Factory checked in at 2020-06-05 20:13:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-osc-lib (Old) and /work/SRC/openSUSE:Factory/.python-osc-lib.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-osc-lib" Fri Jun 5 20:13:35 2020 rev:12 rq:803585 version:2.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-osc-lib/python-osc-lib.changes 2020-03-24 22:32:30.309094157 +0100 +++ /work/SRC/openSUSE:Factory/.python-osc-lib.new.3606/python-osc-lib.changes 2020-06-05 20:15:40.382860943 +0200 @@ -1,0 +2,11 @@ +Tue May 12 09:47:52 UTC 2020 - [email protected] + +- update to version 2.0.0 + - Add enhance_help kwarg to tags option generators + - Add a release note for dropping py2 + - Update master for stable/train + - Drop python 2.7 support and testing + - Switch to Ussuri jobs + - Add KeyValueAppendAction to osc-lib + +------------------------------------------------------------------- Old: ---- osc-lib-1.14.1.tar.gz New: ---- osc-lib-2.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-osc-lib.spec ++++++ --- /var/tmp/diff_new_pack.dWIAk4/_old 2020-06-05 20:15:41.630865535 +0200 +++ /var/tmp/diff_new_pack.dWIAk4/_new 2020-06-05 20:15:41.638865565 +0200 @@ -17,13 +17,13 @@ Name: python-osc-lib -Version: 1.14.1 +Version: 2.0.0 Release: 0 Summary: OpenStackClient Library License: Apache-2.0 Group: Development/Languages/Python URL: https://docs.openstack.org/developer/osc-lib -Source0: https://files.pythonhosted.org/packages/source/o/osc-lib/osc-lib-1.14.1.tar.gz +Source0: https://files.pythonhosted.org/packages/source/o/osc-lib/osc-lib-2.0.0.tar.gz BuildRequires: openstack-macros BuildRequires: python3-Babel >= 2.3.4 BuildRequires: python3-cliff >= 2.8.0 @@ -80,7 +80,7 @@ Documentation for the OpenStack client library. %prep -%autosetup -p1 -n osc-lib-1.14.1 +%autosetup -p1 -n osc-lib-2.0.0 %py_req_cleanup %build ++++++ _service ++++++ --- /var/tmp/diff_new_pack.dWIAk4/_old 2020-06-05 20:15:41.678865712 +0200 +++ /var/tmp/diff_new_pack.dWIAk4/_new 2020-06-05 20:15:41.682865726 +0200 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/train/openstack/osc-lib/osc-lib.spec.j2</param> + <param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/openstack/osc-lib/osc-lib.spec.j2</param> <param name="output-name">python-osc-lib.spec</param> - <param name="requirements">https://raw.githubusercontent.com/openstack/osc-lib/stable/train/requirements.txt</param> + <param name="requirements">https://opendev.org/openstack/osc-lib/raw/branch/stable/ussuri/requirements.txt</param> <param name="changelog-email">[email protected]</param> <param name="changelog-provider">gh,openstack,osc-lib</param> </service> ++++++ osc-lib-1.14.1.tar.gz -> osc-lib-2.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/.zuul.yaml new/osc-lib-2.0.0/.zuul.yaml --- old/osc-lib-1.14.1/.zuul.yaml 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/.zuul.yaml 2020-01-14 17:55:57.000000000 +0100 @@ -4,8 +4,7 @@ - lib-forward-testing - lib-forward-testing-python3 - openstack-lower-constraints-jobs - - openstack-python-jobs - - openstack-python3-train-jobs + - openstack-python3-ussuri-jobs - osc-tox-unit-tips - publish-openstack-docs-pti - release-notes-jobs-python3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/AUTHORS new/osc-lib-2.0.0/AUTHORS --- old/osc-lib-1.14.1/AUTHORS 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/AUTHORS 2020-01-14 17:56:40.000000000 +0100 @@ -41,6 +41,7 @@ Doug Hellmann <[email protected]> Dougal Matthews <[email protected]> Eric Brown <[email protected]> +Eric Fried <[email protected]> Florent Flament <[email protected]> Ghanshyam Mann <[email protected]> Guojian Shao <[email protected]> @@ -106,6 +107,7 @@ Sascha Peilicke <[email protected]> Sheel Rana <[email protected]> Sirushti Murugesan <[email protected]> +Stephen Finucane <[email protected]> Steve Martinelli <[email protected]> Steve Martinelli <[email protected]> Swapnil Kulkarni (coolsvap) <[email protected]> @@ -136,6 +138,7 @@ kavithahr <[email protected]> lin-hua-cheng <[email protected]> luqitao <[email protected]> +pengyuesheng <[email protected]> qingszhao <[email protected]> qtang <[email protected]> rabi <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/ChangeLog new/osc-lib-2.0.0/ChangeLog --- old/osc-lib-1.14.1/ChangeLog 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/ChangeLog 2020-01-14 17:56:40.000000000 +0100 @@ -1,6 +1,20 @@ CHANGES ======= +2.0.0 +----- + +* Add a release note for dropping py2 +* Drop python 2.7 support and testing +* Add enhance\_help kwarg to tags option generators +* Switch to Ussuri jobs +* Add KeyValueAppendAction to osc-lib + +1.15.0 +------ + +* Update master for stable/train + 1.14.1 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/PKG-INFO new/osc-lib-2.0.0/PKG-INFO --- old/osc-lib-1.14.1/PKG-INFO 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/PKG-INFO 2020-01-14 17:56:40.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: osc-lib -Version: 1.14.1 +Version: 2.0.0 Summary: OpenStackClient Library Home-page: https://docs.openstack.org/osc-lib/latest/ Author: OpenStack @@ -78,8 +78,6 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib/cli/parseractions.py new/osc-lib-2.0.0/osc_lib/cli/parseractions.py --- old/osc-lib-1.14.1/osc_lib/cli/parseractions.py 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib/cli/parseractions.py 2020-01-14 17:55:57.000000000 +0100 @@ -23,7 +23,7 @@ class KeyValueAction(argparse.Action): """A custom action to parse arguments as key=value pairs - Ensures that ``dest`` is a dict + Ensures that ``dest`` is a dict and values are strings. """ def __call__(self, parser, namespace, values, option_string=None): @@ -43,6 +43,35 @@ else: msg = _("Expected 'key=value' type, but got: %s") raise argparse.ArgumentTypeError(msg % str(values)) + + +class KeyValueAppendAction(argparse.Action): + """A custom action to parse arguments as key=value pairs + + Ensures that ``dest`` is a dict and values are lists of strings. + """ + + def __call__(self, parser, namespace, values, option_string=None): + # Make sure we have an empty dict rather than None + if getattr(namespace, self.dest, None) is None: + setattr(namespace, self.dest, {}) + + # Add value if an assignment else remove it + if '=' in values: + key, value = values.split('=', 1) + # NOTE(qtang): Prevent null key setting in property + if '' == key: + msg = _("Property key must be specified: %s") + raise argparse.ArgumentTypeError(msg % str(values)) + + dest = getattr(namespace, self.dest) + if key in dest: + dest[key].append(value) + else: + dest[key] = [value] + else: + msg = _("Expected 'key=value' type, but got: %s") + raise argparse.ArgumentTypeError(msg % str(values)) class MultiKeyValueAction(argparse.Action): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib/tests/cli/test_parseractions.py new/osc-lib-2.0.0/osc_lib/tests/cli/test_parseractions.py --- old/osc-lib-1.14.1/osc_lib/tests/cli/test_parseractions.py 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib/tests/cli/test_parseractions.py 2020-01-14 17:55:57.000000000 +0100 @@ -59,6 +59,53 @@ self.parser.parse_args, data) +class TestKeyValueAppendAction(utils.TestCase): + + def setUp(self): + super(TestKeyValueAppendAction, self).setUp() + + self.parser = argparse.ArgumentParser() + + # Set up our typical usage + self.parser.add_argument( + '--hint', + metavar='<key=value>', + action=parseractions.KeyValueAppendAction, + help='Arbitrary key/value pairs to be sent to the scheduler for ' + 'custom use', + ) + + def test_good_values(self): + print(self.parser._get_optional_actions()) + results = self.parser.parse_args([ + '--hint', 'same_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1', + '--hint', 'same_host=8c19174f-4220-44f0-824a-cd1eeef10287', + '--hint', 'query=[>=,$free_ram_mb,1024]', + ]) + + actual = getattr(results, 'hint', {}) + expect = { + 'same_host': [ + 'a0cf03a5-d921-4877-bb5c-86d26cf818e1', + '8c19174f-4220-44f0-824a-cd1eeef10287', + ], + 'query': [ + '[>=,$free_ram_mb,1024]', + ], + } + self.assertEqual(expect, actual) + + def test_error_values(self): + data_list = [ + ['--hint', 'red', ], + ['--hint', '=', ], + ['--hint', '=red', ] + ] + for data in data_list: + self.assertRaises(argparse.ArgumentTypeError, + self.parser.parse_args, data) + + class TestMultiKeyValueAction(utils.TestCase): def setUp(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib/tests/utils/test_tags.py new/osc-lib-2.0.0/osc_lib/tests/utils/test_tags.py --- old/osc-lib-1.14.1/osc_lib/tests/utils/test_tags.py 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib/tests/utils/test_tags.py 2020-01-14 17:55:57.000000000 +0100 @@ -19,6 +19,11 @@ from osc_lib.utils import tags +def help_enhancer(_h): + """A simple helper to validate the ``enhance_help`` kwarg.""" + return ''.join(reversed(_h)) + + class TestTags(test_utils.TestCase): def test_add_tag_filtering_option_to_parser(self): @@ -169,3 +174,134 @@ tags.update_tags_for_unset(mock_client, mock_obj, mock_parsed_args) mock_client.set_tags.assert_called_once_with( mock_obj, ['tag1']) + + +class TestTagHelps(test_utils.TestCase): + + def _test_tag_method_help(self, meth, exp_normal, exp_enhanced): + """Vet the help text of the options added by the tag filtering helpers. + + :param meth: One of the ``add_tag_*`` methods. + :param exp_normal: Expected help output without ``enhance_help``. + :param exp_enhanced: Expected output with ``enhance_help`` set to + ``help_enhancer`` + """ + parser = argparse.ArgumentParser() + meth(parser, 'test') + self.assertEqual(exp_normal, parser.format_help()) + + parser = argparse.ArgumentParser() + meth(parser, 'test', enhance_help=help_enhancer) + self.assertEqual(exp_enhanced, parser.format_help()) + + def test_add_tag_filtering_option_to_parser(self): + self._test_tag_method_help( + tags.add_tag_filtering_option_to_parser, + """\ +usage: run.py [-h] [--tags <tag>[,<tag>,...]] [--any-tags <tag>[,<tag>,...]] + [--not-tags <tag>[,<tag>,...]] + [--not-any-tags <tag>[,<tag>,...]] + +optional arguments: + -h, --help show this help message and exit + --tags <tag>[,<tag>,...] + List test which have all given tag(s) (Comma-separated + list of tags) + --any-tags <tag>[,<tag>,...] + List test which have any given tag(s) (Comma-separated + list of tags) + --not-tags <tag>[,<tag>,...] + Exclude test which have all given tag(s) (Comma- + separated list of tags) + --not-any-tags <tag>[,<tag>,...] + Exclude test which have any given tag(s) (Comma- + separated list of tags) +""", + """\ +usage: run.py [-h] [--tags <tag>[,<tag>,...]] [--any-tags <tag>[,<tag>,...]] + [--not-tags <tag>[,<tag>,...]] + [--not-any-tags <tag>[,<tag>,...]] + +optional arguments: + -h, --help show this help message and exit + --tags <tag>[,<tag>,...] + )sgat fo tsil detarapes-ammoC( )s(gat nevig lla evah + hcihw tset tsiL + --any-tags <tag>[,<tag>,...] + )sgat fo tsil detarapes-ammoC( )s(gat nevig yna evah + hcihw tset tsiL + --not-tags <tag>[,<tag>,...] + )sgat fo tsil detarapes-ammoC( )s(gat nevig lla evah + hcihw tset edulcxE + --not-any-tags <tag>[,<tag>,...] + )sgat fo tsil detarapes-ammoC( )s(gat nevig yna evah + hcihw tset edulcxE +""") + + def test_add_tag_option_to_parser_for_create(self): + self._test_tag_method_help( + tags.add_tag_option_to_parser_for_create, + """\ +usage: run.py [-h] [--tag <tag> | --no-tag] + +optional arguments: + -h, --help show this help message and exit + --tag <tag> Tag to be added to the test (repeat option to set multiple + tags) + --no-tag No tags associated with the test +""", + """\ +usage: run.py [-h] [--tag <tag> | --no-tag] + +optional arguments: + -h, --help show this help message and exit + --tag <tag> )sgat elpitlum tes ot noitpo taeper( tset eht ot dedda eb ot + gaT + --no-tag tset eht htiw detaicossa sgat oN +""") + + def test_add_tag_option_to_parser_for_set(self): + self._test_tag_method_help( + tags.add_tag_option_to_parser_for_set, + """\ +usage: run.py [-h] [--tag <tag>] [--no-tag] + +optional arguments: + -h, --help show this help message and exit + --tag <tag> Tag to be added to the test (repeat option to set multiple + tags) + --no-tag Clear tags associated with the test. Specify both --tag and + --no-tag to overwrite current tags +""", + """\ +usage: run.py [-h] [--tag <tag>] [--no-tag] + +optional arguments: + -h, --help show this help message and exit + --tag <tag> )sgat elpitlum tes ot noitpo taeper( tset eht ot dedda eb ot + gaT + --no-tag sgat tnerruc etirwrevo ot gat-on-- dna gat-- htob yficepS .tset + eht htiw detaicossa sgat raelC +""") + + def test_add_tag_option_to_parser_for_unset(self): + self._test_tag_method_help( + tags.add_tag_option_to_parser_for_unset, + """\ +usage: run.py [-h] [--tag <tag> | --all-tag] + +optional arguments: + -h, --help show this help message and exit + --tag <tag> Tag to be removed from the test (repeat option to remove + multiple tags) + --all-tag Clear all tags associated with the test +""", + """\ +usage: run.py [-h] [--tag <tag> | --all-tag] + +optional arguments: + -h, --help show this help message and exit + --tag <tag> )sgat elpitlum evomer ot noitpo taeper( tset eht morf devomer + eb ot gaT + --all-tag tset eht htiw detaicossa sgat lla raelC +""") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib/utils/tags.py new/osc-lib-2.0.0/osc_lib/utils/tags.py --- old/osc-lib-1.14.1/osc_lib/utils/tags.py 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib/utils/tags.py 2020-01-14 17:55:57.000000000 +0100 @@ -22,39 +22,49 @@ setattr(namespace, self.dest, values.split(',')) -def add_tag_filtering_option_to_parser(parser, resource_name): +def add_tag_filtering_option_to_parser( + parser, resource_name, enhance_help=lambda _h: _h): """Add tag filtering options to a parser. :param parser: argparse.Argument parser object. :param resource_name: Description of the object being filtered. + :param enhance_help: A callable accepting a single parameter, the + (translated) help string, and returning a (translated) help string. May + be used by a caller wishing to add qualifying text, such as "Applies to + version XYZ only", to the help strings for all options produced by this + method. """ parser.add_argument( '--tags', metavar='<tag>[,<tag>,...]', action=_CommaListAction, - help=_('List %s which have all given tag(s) ' - '(Comma-separated list of tags)') % resource_name + help=enhance_help( + _('List %s which have all given tag(s) ' + '(Comma-separated list of tags)') % resource_name) ) parser.add_argument( '--any-tags', metavar='<tag>[,<tag>,...]', action=_CommaListAction, - help=_('List %s which have any given tag(s) ' - '(Comma-separated list of tags)') % resource_name + help=enhance_help( + _('List %s which have any given tag(s) ' + '(Comma-separated list of tags)') % resource_name) ) parser.add_argument( '--not-tags', metavar='<tag>[,<tag>,...]', action=_CommaListAction, - help=_('Exclude %s which have all given tag(s) ' - '(Comma-separated list of tags)') % resource_name + help=enhance_help( + _('Exclude %s which have all given tag(s) ' + '(Comma-separated list of tags)') % resource_name) ) parser.add_argument( '--not-any-tags', metavar='<tag>[,<tag>,...]', action=_CommaListAction, - help=_('Exclude %s which have any given tag(s) ' - '(Comma-separated list of tags)') % resource_name + help=enhance_help( + _('Exclude %s which have any given tag(s) ' + '(Comma-separated list of tags)') % resource_name) ) @@ -77,11 +87,17 @@ args['not_any_tags'] = ','.join(parsed_args.not_any_tags) -def add_tag_option_to_parser_for_create(parser, resource_name): +def add_tag_option_to_parser_for_create( + parser, resource_name, enhance_help=lambda _h: _h): """Add tag options to a parser for create commands. :param parser: argparse.Argument parser object. :param resource_name: Description of the object being filtered. + :param enhance_help: A callable accepting a single parameter, the + (translated) help string, and returning a (translated) help string. May + be used by a caller wishing to add qualifying text, such as "Applies to + version XYZ only", to the help strings for all options produced by this + method. """ tag_group = parser.add_mutually_exclusive_group() tag_group.add_argument( @@ -89,43 +105,58 @@ action='append', dest='tags', metavar='<tag>', - help=_("Tag to be added to the %s " - "(repeat option to set multiple tags)") % resource_name + help=enhance_help( + _("Tag to be added to the %s " + "(repeat option to set multiple tags)") % resource_name) ) tag_group.add_argument( '--no-tag', action='store_true', - help=_("No tags associated with the %s") % resource_name + help=enhance_help(_("No tags associated with the %s") % resource_name) ) -def add_tag_option_to_parser_for_set(parser, resource_name): +def add_tag_option_to_parser_for_set( + parser, resource_name, enhance_help=lambda _h: _h): """Add tag options to a parser for set commands. :param parser: argparse.Argument parser object. :param resource_name: Description of the object being filtered. + :param enhance_help: A callable accepting a single parameter, the + (translated) help string, and returning a (translated) help string. May + be used by a caller wishing to add qualifying text, such as "Applies to + version XYZ only", to the help strings for all options produced by this + method. """ parser.add_argument( '--tag', action='append', dest='tags', metavar='<tag>', - help=_("Tag to be added to the %s " - "(repeat option to set multiple tags)") % resource_name + help=enhance_help( + _("Tag to be added to the %s " + "(repeat option to set multiple tags)") % resource_name) ) parser.add_argument( '--no-tag', action='store_true', - help=_("Clear tags associated with the %s. Specify both " - "--tag and --no-tag to overwrite current tags") % resource_name + help=enhance_help( + _("Clear tags associated with the %s. Specify both " + "--tag and --no-tag to overwrite current tags") % resource_name) ) -def add_tag_option_to_parser_for_unset(parser, resource_name): +def add_tag_option_to_parser_for_unset( + parser, resource_name, enhance_help=lambda _h: _h): """Add tag options to a parser for set commands. :param parser: argparse.Argument parser object. :param resource_name: Description of the object being filtered. + :param enhance_help: A callable accepting a single parameter, the + (translated) help string, and returning a (translated) help string. May + be used by a caller wishing to add qualifying text, such as "Applies to + version XYZ only", to the help strings for all options produced by this + method. """ tag_group = parser.add_mutually_exclusive_group() tag_group.add_argument( @@ -133,12 +164,14 @@ action='append', dest='tags', metavar='<tag>', - help=_("Tag to be removed from the %s " - "(repeat option to remove multiple tags)") % resource_name) + help=enhance_help( + _("Tag to be removed from the %s " + "(repeat option to remove multiple tags)") % resource_name)) tag_group.add_argument( '--all-tag', action='store_true', - help=_("Clear all tags associated with the %s") % resource_name) + help=enhance_help( + _("Clear all tags associated with the %s") % resource_name)) def update_tags_for_set(client, obj, parsed_args): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib.egg-info/PKG-INFO new/osc-lib-2.0.0/osc_lib.egg-info/PKG-INFO --- old/osc-lib-1.14.1/osc_lib.egg-info/PKG-INFO 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib.egg-info/PKG-INFO 2020-01-14 17:56:40.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: osc-lib -Version: 1.14.1 +Version: 2.0.0 Summary: OpenStackClient Library Home-page: https://docs.openstack.org/osc-lib/latest/ Author: OpenStack @@ -78,8 +78,6 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib.egg-info/SOURCES.txt new/osc-lib-2.0.0/osc_lib.egg-info/SOURCES.txt --- old/osc-lib-1.14.1/osc_lib.egg-info/SOURCES.txt 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib.egg-info/SOURCES.txt 2020-01-14 17:56:40.000000000 +0100 @@ -79,6 +79,7 @@ osc_lib/utils/tags.py releasenotes/notes/.placeholder releasenotes/notes/1.0-summary-47dcce446d6a512b.yaml +releasenotes/notes/add-KeyValueAppendAction-class-f830e71152d6b91e.yaml releasenotes/notes/add-MultiKeyValueCommaAction-class-01dd254a287d70d2.yaml releasenotes/notes/arg-precedence-1ba9fd6929650830.yaml releasenotes/notes/auth-type-none-d96760912605f822.yaml @@ -87,6 +88,7 @@ releasenotes/notes/bug-2004898-686577a07e791051.yaml releasenotes/notes/bug-2006480-436489d39643e76c.yaml releasenotes/notes/direct-openstacksdk-535a179f3c645cc0.yaml +releasenotes/notes/drop-py2-support-60c93244107d5778.yaml releasenotes/notes/find-project-203bf867619c557e.yaml releasenotes/notes/keystone-to-keystone-9b2e55b051775322.yaml releasenotes/notes/none-auth-cli-48ab0e48d4852941.yaml @@ -100,6 +102,7 @@ releasenotes/source/queens.rst releasenotes/source/rocky.rst releasenotes/source/stein.rst +releasenotes/source/train.rst releasenotes/source/unreleased.rst releasenotes/source/_static/.placeholder releasenotes/source/_templates/.placeholder \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/osc_lib.egg-info/pbr.json new/osc-lib-2.0.0/osc_lib.egg-info/pbr.json --- old/osc-lib-1.14.1/osc_lib.egg-info/pbr.json 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/osc_lib.egg-info/pbr.json 2020-01-14 17:56:40.000000000 +0100 @@ -1 +1 @@ -{"git_version": "a0d9746", "is_release": true} \ No newline at end of file +{"git_version": "fea31fb", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/releasenotes/notes/add-KeyValueAppendAction-class-f830e71152d6b91e.yaml new/osc-lib-2.0.0/releasenotes/notes/add-KeyValueAppendAction-class-f830e71152d6b91e.yaml --- old/osc-lib-1.14.1/releasenotes/notes/add-KeyValueAppendAction-class-f830e71152d6b91e.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/osc-lib-2.0.0/releasenotes/notes/add-KeyValueAppendAction-class-f830e71152d6b91e.yaml 2020-01-14 17:55:57.000000000 +0100 @@ -0,0 +1,5 @@ +--- +features: + - | + Add ``KeyValueAppendAction`` that allows key-value arguments to be specified + multiple times. For example: ``--property key1=value1 --property key1=value2``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/releasenotes/notes/drop-py2-support-60c93244107d5778.yaml new/osc-lib-2.0.0/releasenotes/notes/drop-py2-support-60c93244107d5778.yaml --- old/osc-lib-1.14.1/releasenotes/notes/drop-py2-support-60c93244107d5778.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/osc-lib-2.0.0/releasenotes/notes/drop-py2-support-60c93244107d5778.yaml 2020-01-14 17:55:57.000000000 +0100 @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. The minimum version of Python now + supported by osc-lib is Python 3.6. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/releasenotes/source/index.rst new/osc-lib-2.0.0/releasenotes/source/index.rst --- old/osc-lib-1.14.1/releasenotes/source/index.rst 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/releasenotes/source/index.rst 2020-01-14 17:55:57.000000000 +0100 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + train stein rocky queens diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/releasenotes/source/train.rst new/osc-lib-2.0.0/releasenotes/source/train.rst --- old/osc-lib-1.14.1/releasenotes/source/train.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/osc-lib-2.0.0/releasenotes/source/train.rst 2020-01-14 17:55:57.000000000 +0100 @@ -0,0 +1,6 @@ +========================== +Train Series Release Notes +========================== + +.. release-notes:: + :branch: stable/train diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/setup.cfg new/osc-lib-2.0.0/setup.cfg --- old/osc-lib-1.14.1/setup.cfg 2019-09-11 16:29:05.000000000 +0200 +++ new/osc-lib-2.0.0/setup.cfg 2020-01-14 17:56:40.000000000 +0100 @@ -13,8 +13,6 @@ License :: OSI Approved :: Apache Software License Operating System :: POSIX :: Linux Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.14.1/tox.ini new/osc-lib-2.0.0/tox.ini --- old/osc-lib-1.14.1/tox.ini 2019-09-11 16:28:13.000000000 +0200 +++ new/osc-lib-2.0.0/tox.ini 2020-01-14 17:55:57.000000000 +0100 @@ -1,9 +1,10 @@ [tox] minversion = 2.0 -envlist = py27,py37,pep8 +envlist = py37,pep8 skipdist = True [testenv] +basepython = python3 usedevelop = True install_command = pip install {opts} {packages} setenv = VIRTUAL_ENV={envdir} @@ -18,7 +19,6 @@ whitelist_externals = stestr [testenv:unit-tips] -basepython = python3 commands = pip install -q -e "git+file://{toxinidir}/../cliff#egg=cliff" pip install -q -e "git+file://{toxinidir}/../keystoneauth#egg=keystoneauth" @@ -28,25 +28,20 @@ whitelist_externals = stestr [testenv:pep8] -basepython = python3 commands = flake8 [testenv:venv] -basepython = python3 commands = {posargs} [testenv:cover] -basepython = python3 commands = python setup.py test --coverage --coverage-package-name=osc_lib --testr-args='{posargs}' coverage report [testenv:debug] -basepython = python3 commands = oslo_debug_helper -t osc_lib/tests {posargs} [testenv:docs] -basepython = python3 deps = -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/upper-constraints.txt} -r{toxinidir}/requirements.txt @@ -58,7 +53,6 @@ sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html [testenv:releasenotes] -basepython = python3 commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [flake8] @@ -69,7 +63,6 @@ ignore = __ [testenv:lower-constraints] -basepython = python3 deps = -c{toxinidir}/lower-constraints.txt -r{toxinidir}/test-requirements.txt
