Hello community,

here is the log from the commit of package python-osprofiler for 
openSUSE:Factory checked in at 2020-06-05 20:15:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-osprofiler (Old)
 and      /work/SRC/openSUSE:Factory/.python-osprofiler.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-osprofiler"

Fri Jun  5 20:15:47 2020 rev:12 rq:803605 version:3.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-osprofiler/python-osprofiler.changes      
2020-03-24 22:32:45.649101612 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-osprofiler.new.3606/python-osprofiler.changes
    2020-06-05 20:19:50.171789360 +0200
@@ -1,0 +2,11 @@
+Tue May 12 10:04:24 UTC 2020 - [email protected]
+
+- update to version 3.1.0
+  - Handle driver initialization errors to avoid service crash
+  - [ussuri][goal] Drop python 2.7 support and testing
+  - Switch to Ussuri jobs
+  - Start README.rst with a better title
+  - Update master for stable/train
+  - Update hacking for Python3
+
+-------------------------------------------------------------------

Old:
----
  osprofiler-2.8.2.tar.gz

New:
----
  osprofiler-3.1.0.tar.gz

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

Other differences:
------------------
++++++ python-osprofiler.spec ++++++
--- /var/tmp/diff_new_pack.yMel6z/_old  2020-06-05 20:19:51.231792965 +0200
+++ /var/tmp/diff_new_pack.yMel6z/_new  2020-06-05 20:19:51.235792978 +0200
@@ -17,13 +17,13 @@
 
 
 Name:           python-osprofiler
-Version:        2.8.2
+Version:        3.1.0
 Release:        0
 Summary:        OpenStack Profiler Library
 License:        Apache-2.0
 Group:          Development/Languages/Python
 URL:            https://launchpad.net/osprofiler
-Source0:        
https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-2.8.2.tar.gz
+Source0:        
https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-3.1.0.tar.gz
 BuildRequires:  openstack-macros
 BuildRequires:  python3-PrettyTable >= 0.7.2
 BuildRequires:  python3-WebOb >= 1.7.1
@@ -85,7 +85,7 @@
 Documentation for OSProfiler.
 
 %prep
-%autosetup -p1 -n osprofiler-2.8.2
+%autosetup -p1 -n osprofiler-3.1.0
 %py_req_cleanup
 
 %build

++++++ _service ++++++
--- /var/tmp/diff_new_pack.yMel6z/_old  2020-06-05 20:19:51.255793047 +0200
+++ /var/tmp/diff_new_pack.yMel6z/_new  2020-06-05 20:19:51.255793047 +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/osprofiler/osprofiler.spec.j2</param>
+    <param 
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/openstack/osprofiler/osprofiler.spec.j2</param>
     <param name="output-name">python-osprofiler.spec</param>
-    <param 
name="requirements">https://raw.githubusercontent.com/openstack/osprofiler/stable/train/requirements.txt</param>
+    <param 
name="requirements">https://opendev.org/openstack/osprofiler/raw/branch/stable/ussuri/requirements.txt</param>
     <param name="changelog-email">[email protected]</param>
     <param name="changelog-provider">gh,openstack,osprofiler</param>
   </service>

++++++ osprofiler-2.8.2.tar.gz -> osprofiler-3.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/.zuul.yaml 
new/osprofiler-3.1.0/.zuul.yaml
--- old/osprofiler-2.8.2/.zuul.yaml     2019-09-04 16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/.zuul.yaml     2020-04-07 12:08:37.000000000 +0200
@@ -1,27 +1,21 @@
 - project:
     templates:
       - check-requirements
-      - lib-forward-testing
       - lib-forward-testing-python3
       - openstack-cover-jobs
       - openstack-lower-constraints-jobs
-      - openstack-python-jobs
-      - openstack-python3-train-jobs
+      - openstack-python3-ussuri-jobs
       - periodic-stable-jobs
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
     check:
       jobs:
-        - openstack-tox-functional
         - openstack-tox-functional-py36
         - tempest-smoke-py3-osprofiler-redis
         - tempest-smoke-py3-osprofiler-sqlalchemy
     gate:
       jobs:
-        - openstack-tox-functional
         - openstack-tox-functional-py36
-        - tempest-smoke-py3-osprofiler-redis
-        - tempest-smoke-py3-osprofiler-sqlalchemy
 
 - job:
     name: tempest-smoke-py3-osprofiler-redis
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/AUTHORS new/osprofiler-3.1.0/AUTHORS
--- old/osprofiler-2.8.2/AUTHORS        2019-09-04 16:26:48.000000000 +0200
+++ new/osprofiler-3.1.0/AUTHORS        2020-04-07 12:10:14.000000000 +0200
@@ -72,4 +72,6 @@
 sunyandi <[email protected]>
 uppi <[email protected]>
 wangxiyuan <[email protected]>
+yangkun.lc <[email protected]>
+zhangboye <[email protected]>
 zhouxinyong <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/ChangeLog 
new/osprofiler-3.1.0/ChangeLog
--- old/osprofiler-2.8.2/ChangeLog      2019-09-04 16:26:48.000000000 +0200
+++ new/osprofiler-3.1.0/ChangeLog      2020-04-07 12:10:14.000000000 +0200
@@ -1,6 +1,24 @@
 CHANGES
 =======
 
+3.1.0
+-----
+
+* Update hacking for Python3
+* Start README.rst with a better title
+
+3.0.0
+-----
+
+* [ussuri][goal] Drop python 2.7 support and testing
+
+2.9.0
+-----
+
+* Switch to Ussuri jobs
+* Update master for stable/train
+* Handle driver initialization errors to avoid service crash
+
 2.8.2
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/PKG-INFO 
new/osprofiler-3.1.0/PKG-INFO
--- old/osprofiler-2.8.2/PKG-INFO       2019-09-04 16:26:49.000000000 +0200
+++ new/osprofiler-3.1.0/PKG-INFO       2020-04-07 12:10:14.000000000 +0200
@@ -1,24 +1,20 @@
 Metadata-Version: 2.1
 Name: osprofiler
-Version: 2.8.2
+Version: 3.1.0
 Summary: OpenStack Profiler Library
 Home-page: https://docs.openstack.org/osprofiler/latest/
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: ========================
-        Team and repository tags
-        ========================
+Description: ===================================================
+         OSProfiler -- Library for cross-project profiling
+        ===================================================
         
         .. image:: https://governance.openstack.org/tc/badges/osprofiler.svg
             :target: 
https://governance.openstack.org/tc/reference/tags/index.html
         
         .. Change things from this point on
         
-        ===========================================================
-         OSProfiler -- Library for cross-project profiling library
-        ===========================================================
-        
         .. image:: https://img.shields.io/pypi/v/osprofiler.svg
             :target: https://pypi.org/project/osprofiler/
             :alt: Latest Version
@@ -48,10 +44,11 @@
 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
-Provides-Extra: test
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Requires-Python: >=3.6
 Provides-Extra: oslo_config
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/README.rst 
new/osprofiler-3.1.0/README.rst
--- old/osprofiler-2.8.2/README.rst     2019-09-04 16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/README.rst     2020-04-07 12:08:37.000000000 +0200
@@ -1,16 +1,12 @@
-========================
-Team and repository tags
-========================
+===================================================
+ OSProfiler -- Library for cross-project profiling
+===================================================
 
 .. image:: https://governance.openstack.org/tc/badges/osprofiler.svg
     :target: https://governance.openstack.org/tc/reference/tags/index.html
 
 .. Change things from this point on
 
-===========================================================
- OSProfiler -- Library for cross-project profiling library
-===========================================================
-
 .. image:: https://img.shields.io/pypi/v/osprofiler.svg
     :target: https://pypi.org/project/osprofiler/
     :alt: Latest Version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/lower-constraints.txt 
new/osprofiler-3.1.0/lower-constraints.txt
--- old/osprofiler-2.8.2/lower-constraints.txt  2019-09-04 16:25:44.000000000 
+0200
+++ new/osprofiler-3.1.0/lower-constraints.txt  2020-04-07 12:08:37.000000000 
+0200
@@ -2,7 +2,6 @@
 ddt===1.0.1
 dulwich===0.15.0
 elasticsearch===2.0.0
-futures===3.0.0
 jaeger-client==3.8.0
 mock===2.0.0
 netaddr===0.7.18
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/osprofiler-2.8.2/osprofiler/drivers/elasticsearch_driver.py 
new/osprofiler-3.1.0/osprofiler/drivers/elasticsearch_driver.py
--- old/osprofiler-2.8.2/osprofiler/drivers/elasticsearch_driver.py     
2019-09-04 16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler/drivers/elasticsearch_driver.py     
2020-04-07 12:08:37.000000000 +0200
@@ -36,9 +36,9 @@
             from elasticsearch import Elasticsearch
         except ImportError:
             raise exc.CommandError(
-                "To use this command, you should install "
-                "'elasticsearch' manually. Use command:\n "
-                "'pip install elasticsearch'.")
+                "To use OSProfiler with ElasticSearch driver, "
+                "please install `elasticsearch` library. "
+                "To install with pip:\n `pip install elasticsearch`.")
 
         client_url = parser.urlunparse(parser.urlparse(self.connection_str)
                                        ._replace(scheme="http"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler/drivers/jaeger.py 
new/osprofiler-3.1.0/osprofiler/drivers/jaeger.py
--- old/osprofiler-2.8.2/osprofiler/drivers/jaeger.py   2019-09-04 
16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler/drivers/jaeger.py   2020-04-07 
12:08:37.000000000 +0200
@@ -40,8 +40,8 @@
         except ImportError:
             raise exc.CommandError(
                 "To use OSProfiler with Uber Jaeger tracer, "
-                "you have to install `jaeger-client` manually. "
-                "Install with pip:\n `pip install jaeger-client`."
+                "please install `jaeger-client` library. "
+                "To install with pip:\n `pip install jaeger-client`."
             )
 
         parsed_url = parser.urlparse(connection_str)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler/drivers/mongodb.py 
new/osprofiler-3.1.0/osprofiler/drivers/mongodb.py
--- old/osprofiler-2.8.2/osprofiler/drivers/mongodb.py  2019-09-04 
16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler/drivers/mongodb.py  2020-04-07 
12:08:37.000000000 +0200
@@ -28,9 +28,9 @@
             from pymongo import MongoClient
         except ImportError:
             raise exc.CommandError(
-                "To use this command, you should install "
-                "'pymongo' manually. Use command:\n "
-                "'pip install pymongo'.")
+                "To use OSProfiler with MongoDB driver, "
+                "please install `pymongo` library. "
+                "To install with pip:\n `pip install pymongo`.")
 
         client = MongoClient(self.connection_str, connect=False)
         self.db = client[db_name]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler/drivers/redis_driver.py 
new/osprofiler-3.1.0/osprofiler/drivers/redis_driver.py
--- old/osprofiler-2.8.2/osprofiler/drivers/redis_driver.py     2019-09-04 
16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler/drivers/redis_driver.py     2020-04-07 
12:08:37.000000000 +0200
@@ -40,9 +40,9 @@
             from redis import StrictRedis
         except ImportError:
             raise exc.CommandError(
-                "To use this command, you should install "
-                "'redis' manually. Use command:\n "
-                "'pip install redis'.")
+                "To use OSProfiler with Redis driver, "
+                "please install `redis` library. "
+                "To install with pip:\n `pip install redis`.")
 
         # only connection over network is supported with schema
         # redis://[:password]@host[:port][/db]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler/hacking/checks.py 
new/osprofiler-3.1.0/osprofiler/hacking/checks.py
--- old/osprofiler-2.8.2/osprofiler/hacking/checks.py   2019-09-04 
16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler/hacking/checks.py   2020-04-07 
12:08:37.000000000 +0200
@@ -28,6 +28,8 @@
 import re
 import tokenize
 
+from hacking import core
+
 re_assert_true_instance = re.compile(
     r"(.)*assertTrue\(isinstance\((\w|\.|\'|\"|\[|\])+, "
     r"(\w|\.|\'|\"|\[|\])+\)\)")
@@ -63,6 +65,7 @@
     r"\s:raise[^s] *.*$|\s:raises *:.*$|\s:raises *[^:]+$")
 
 
[email protected]
 def skip_ignored_lines(func):
 
     @functools.wraps(func)
@@ -86,6 +89,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def check_assert_methods_from_mock(logical_line, filename):
     """Ensure that ``assert_*`` methods from ``mock`` library is used correctly
 
@@ -132,6 +136,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def assert_true_instance(logical_line, filename):
     """Check for assertTrue(isinstance(a, b)) sentences
 
@@ -143,6 +148,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def assert_equal_type(logical_line, filename):
     """Check for assertEqual(type(A), B) sentences
 
@@ -154,6 +160,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def assert_equal_none(logical_line, filename):
     """Check for assertEqual(A, None) or assertEqual(None, A) sentences
 
@@ -168,6 +175,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def assert_true_or_false_with_in(logical_line, filename):
     """Check assertTrue/False(A in/not in B) with collection contents
 
@@ -186,6 +194,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def assert_equal_in(logical_line, filename):
     """Check assertEqual(A in/not in B, True/False) with collection contents
 
@@ -204,6 +213,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def check_quotes(logical_line, filename):
     """Check that single quotation marks are not used
 
@@ -257,6 +267,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def check_no_constructor_data_struct(logical_line, filename):
     """Check that data structs (lists, dicts) are declared using literals
 
@@ -271,6 +282,7 @@
         yield (0, "N351 Remove list() construct and use literal []")
 
 
[email protected]
 def check_dict_formatting_in_string(logical_line, tokens):
     """Check that strings do not use dict-formatting with a single replacement
 
@@ -322,7 +334,7 @@
                     format_keys.add(match.group(1))
                 if len(format_keys) == 1:
                     yield (0,
-                           "N353 Do not use mapping key string formatting "
+                           "N352 Do not use mapping key string formatting "
                            "with a single key")
             if text != ")":
                 # NOTE(stpierre): You can have a parenthesized string
@@ -339,6 +351,7 @@
 
 
 @skip_ignored_lines
[email protected]
 def check_using_unicode(logical_line, filename):
     """Check crosspython unicode usage
 
@@ -350,6 +363,7 @@
                   "use 'six.text_type' instead.")
 
 
[email protected]
 def check_raises(physical_line, filename):
     """Check raises usage
 
@@ -362,17 +376,3 @@
         if re_raises.search(physical_line):
             return (0, "N354 ':Please use ':raises Exception: conditions' "
                        "in docstrings.")
-
-
-def factory(register):
-    register(check_assert_methods_from_mock)
-    register(assert_true_instance)
-    register(assert_equal_type)
-    register(assert_equal_none)
-    register(assert_true_or_false_with_in)
-    register(assert_equal_in)
-    register(check_quotes)
-    register(check_no_constructor_data_struct)
-    register(check_dict_formatting_in_string)
-    register(check_using_unicode)
-    register(check_raises)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler/notifier.py 
new/osprofiler-3.1.0/osprofiler/notifier.py
--- old/osprofiler-2.8.2/osprofiler/notifier.py 2019-09-04 16:25:44.000000000 
+0200
+++ new/osprofiler-3.1.0/osprofiler/notifier.py 2020-04-07 12:08:37.000000000 
+0200
@@ -13,16 +13,21 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import logging
+
 from osprofiler.drivers import base
 
 
+LOG = logging.getLogger(__name__)
+
+
 def _noop_notifier(info, context=None):
     """Do nothing on notify()."""
 
 
 # NOTE(boris-42): By default we are using noop notifier.
 __notifier = _noop_notifier
-__driver_cache = {}
+__notifier_cache = {}  # map: connection-string -> notifier
 
 
 def notify(info):
@@ -54,14 +59,24 @@
 
     :param connection_string: connection string which specifies the storage
                               driver for notifier
-    :param *args: args that will be passed to the driver's __init__ method
-    :param **kwargs: kwargs that will be passed to the driver's __init__ method
+    :param args: args that will be passed to the driver's __init__ method
+    :param kwargs: kwargs that will be passed to the driver's __init__ method
     :returns: Callable notifier method
-    :raises TypeError: In case of invalid name of plugin raises TypeError
     """
-    global __driver_cache
-    if connection_string not in __driver_cache:
-        __driver_cache[connection_string] = base.get_driver(connection_string,
-                                                            *args,
-                                                            **kwargs).notify
-    return __driver_cache[connection_string]
+    global __notifier_cache
+    if connection_string not in __notifier_cache:
+        try:
+            driver = base.get_driver(connection_string, *args, **kwargs)
+            __notifier_cache[connection_string] = driver.notify
+            LOG.info("osprofiler is enabled with connection string: %s",
+                     connection_string)
+        except Exception:
+            LOG.exception("Could not initialize driver for connection string "
+                          "%s, osprofiler is disabled", connection_string)
+            __notifier_cache[connection_string] = _noop_notifier
+
+    return __notifier_cache[connection_string]
+
+
+def clear_notifier_cache():
+    __notifier_cache.clear()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/osprofiler-2.8.2/osprofiler/tests/unit/test_notifier.py 
new/osprofiler-3.1.0/osprofiler/tests/unit/test_notifier.py
--- old/osprofiler-2.8.2/osprofiler/tests/unit/test_notifier.py 2019-09-04 
16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler/tests/unit/test_notifier.py 2020-04-07 
12:08:37.000000000 +0200
@@ -23,6 +23,7 @@
 
     def tearDown(self):
         notifier.set(notifier._noop_notifier)  # restore defaults
+        notifier.clear_notifier_cache()
         super(NotifierTestCase, self).tearDown()
 
     def test_set(self):
@@ -49,3 +50,11 @@
         result = notifier.create("test", 10, b=20)
         mock_factory.assert_called_once_with("test", 10, b=20)
         self.assertEqual(mock_factory.return_value.notify, result)
+
+    @mock.patch("osprofiler.notifier.base.get_driver")
+    def test_create_driver_init_failure(self, mock_get_driver):
+        mock_get_driver.side_effect = Exception()
+
+        result = notifier.create("test", 10, b=20)
+        mock_get_driver.assert_called_once_with("test", 10, b=20)
+        self.assertEqual(notifier._noop_notifier, result)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler.egg-info/PKG-INFO 
new/osprofiler-3.1.0/osprofiler.egg-info/PKG-INFO
--- old/osprofiler-2.8.2/osprofiler.egg-info/PKG-INFO   2019-09-04 
16:26:49.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler.egg-info/PKG-INFO   2020-04-07 
12:10:14.000000000 +0200
@@ -1,24 +1,20 @@
 Metadata-Version: 2.1
 Name: osprofiler
-Version: 2.8.2
+Version: 3.1.0
 Summary: OpenStack Profiler Library
 Home-page: https://docs.openstack.org/osprofiler/latest/
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: ========================
-        Team and repository tags
-        ========================
+Description: ===================================================
+         OSProfiler -- Library for cross-project profiling
+        ===================================================
         
         .. image:: https://governance.openstack.org/tc/badges/osprofiler.svg
             :target: 
https://governance.openstack.org/tc/reference/tags/index.html
         
         .. Change things from this point on
         
-        ===========================================================
-         OSProfiler -- Library for cross-project profiling library
-        ===========================================================
-        
         .. image:: https://img.shields.io/pypi/v/osprofiler.svg
             :target: https://pypi.org/project/osprofiler/
             :alt: Latest Version
@@ -48,10 +44,11 @@
 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
-Provides-Extra: test
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Requires-Python: >=3.6
 Provides-Extra: oslo_config
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler.egg-info/SOURCES.txt 
new/osprofiler-3.1.0/osprofiler.egg-info/SOURCES.txt
--- old/osprofiler-2.8.2/osprofiler.egg-info/SOURCES.txt        2019-09-04 
16:26:49.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler.egg-info/SOURCES.txt        2020-04-07 
12:10:14.000000000 +0200
@@ -94,6 +94,7 @@
 osprofiler/tests/unit/drivers/test_redis_driver.py
 playbooks/osprofiler-post.yaml
 releasenotes/notes/add-reno-996dd44974d53238.yaml
+releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
 releasenotes/notes/redis-improvement-d4c91683fc89f570.yaml
 releasenotes/source/conf.py
 releasenotes/source/index.rst
@@ -102,6 +103,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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler.egg-info/pbr.json 
new/osprofiler-3.1.0/osprofiler.egg-info/pbr.json
--- old/osprofiler-2.8.2/osprofiler.egg-info/pbr.json   2019-09-04 
16:26:49.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler.egg-info/pbr.json   2020-04-07 
12:10:14.000000000 +0200
@@ -1 +1 @@
-{"git_version": "d431c7a", "is_release": true}
\ No newline at end of file
+{"git_version": "6e6d76a", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/osprofiler.egg-info/requires.txt 
new/osprofiler-3.1.0/osprofiler.egg-info/requires.txt
--- old/osprofiler-2.8.2/osprofiler.egg-info/requires.txt       2019-09-04 
16:26:49.000000000 +0200
+++ new/osprofiler-3.1.0/osprofiler.egg-info/requires.txt       2020-04-07 
12:10:14.000000000 +0200
@@ -11,7 +11,7 @@
 oslo.config>=5.2.0
 
 [test]
-hacking!=0.13.0,<0.14,>=0.12.0
+hacking<3.1.0,>=3.0
 coverage>=4.0
 ddt>=1.0.1
 mock>=2.0.0
@@ -25,6 +25,3 @@
 redis>=2.10.0
 reno>=2.5.0
 jaeger-client>=3.8.0
-
-[test:(python_version=='2.7' or python_version=='2.6')]
-futures>=3.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/osprofiler-2.8.2/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml 
new/osprofiler-3.1.0/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
--- 
old/osprofiler-2.8.2/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/osprofiler-3.1.0/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml   
    2020-04-07 12:08:37.000000000 +0200
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    Python 2.7 support has been dropped. The minimum version of Python now
+    supported by osprofiler is Python 3.6.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/releasenotes/source/index.rst 
new/osprofiler-3.1.0/releasenotes/source/index.rst
--- old/osprofiler-2.8.2/releasenotes/source/index.rst  2019-09-04 
16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/releasenotes/source/index.rst  2020-04-07 
12:08:37.000000000 +0200
@@ -6,6 +6,7 @@
     :maxdepth: 1
 
     unreleased
+    train
     stein
     rocky
     queens
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/releasenotes/source/train.rst 
new/osprofiler-3.1.0/releasenotes/source/train.rst
--- old/osprofiler-2.8.2/releasenotes/source/train.rst  1970-01-01 
01:00:00.000000000 +0100
+++ new/osprofiler-3.1.0/releasenotes/source/train.rst  2020-04-07 
12:08:37.000000000 +0200
@@ -0,0 +1,6 @@
+==========================
+Train Series Release Notes
+==========================
+
+.. release-notes::
+   :branch: stable/train
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/setup.cfg 
new/osprofiler-3.1.0/setup.cfg
--- old/osprofiler-2.8.2/setup.cfg      2019-09-04 16:26:49.000000000 +0200
+++ new/osprofiler-3.1.0/setup.cfg      2020-04-07 12:10:14.000000000 +0200
@@ -6,6 +6,7 @@
 author = OpenStack
 author-email = [email protected]
 home-page = https://docs.openstack.org/osprofiler/latest/
+python-requires = >=3.6
 classifier = 
        Environment :: OpenStack
        Intended Audience :: Developers
@@ -13,30 +14,20 @@
        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
+       Programming Language :: Python :: 3 :: Only
+       Programming Language :: Python :: Implementation :: CPython
 
 [files]
 packages = 
        osprofiler
 
-[global]
-setup-hooks = 
-       pbr.hooks.setup_hook
-
 [extras]
 oslo_config = 
        oslo.config>=5.2.0 # Apache-2.0
 
-[build_sphinx]
-all_files = 1
-build-dir = doc/build
-source-dir = doc/source
-warning-is-error = 1
-
 [entry_points]
 oslo.config.opts = 
        osprofiler = osprofiler.opts:list_opts
@@ -45,9 +36,6 @@
 paste.filter_factory = 
        osprofiler = osprofiler.web:WsgiMiddleware.factory
 
-[wheel]
-universal = 1
-
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/setup.py 
new/osprofiler-3.1.0/setup.py
--- old/osprofiler-2.8.2/setup.py       2019-09-04 16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/setup.py       2020-04-07 12:08:37.000000000 +0200
@@ -14,14 +14,6 @@
 # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
 import setuptools
 
-# In python < 2.7.4, a lazy loading of package `pbr` will break
-# setuptools if some other modules registered functions in `atexit`.
-# solution from: http://bugs.python.org/issue15881#msg170215
-try:
-    import multiprocessing  # noqa
-except ImportError:
-    pass
-
 setuptools.setup(
-    setup_requires=['pbr>=1.8'],
+    setup_requires=['pbr>=2.0'],
     pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/test-requirements.txt 
new/osprofiler-3.1.0/test-requirements.txt
--- old/osprofiler-2.8.2/test-requirements.txt  2019-09-04 16:25:44.000000000 
+0200
+++ new/osprofiler-3.1.0/test-requirements.txt  2020-04-07 12:08:37.000000000 
+0200
@@ -1,4 +1,4 @@
-hacking>=0.12.0,!=0.13.0,<0.14  # Apache-2.0
+hacking>=3.0,<3.1.0 # Apache-2.0
 
 coverage>=4.0 # Apache-2.0
 ddt>=1.0.1  # MIT
@@ -25,4 +25,3 @@
 
 # For Jaeger Tracing
 jaeger-client>=3.8.0 # Apache-2.0
-futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # PSF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osprofiler-2.8.2/tox.ini new/osprofiler-3.1.0/tox.ini
--- old/osprofiler-2.8.2/tox.ini        2019-09-04 16:25:44.000000000 +0200
+++ new/osprofiler-3.1.0/tox.ini        2020-04-07 12:08:37.000000000 +0200
@@ -1,9 +1,12 @@
 [tox]
-minversion = 2.0
-skipsdist = True
-envlist = py27,py37,pep8
+minversion = 3.1.0
+# Needed to create ChangeLog for docs building
+skipsdist = False
+envlist = py37,pep8
+ignore_basepython_conflict = True
 
 [testenv]
+basepython = python3
 setenv = VIRTUAL_ENV={envdir}
          LANG=en_US.UTF-8
          LANGUAGE=en_US:en
@@ -12,13 +15,11 @@
   
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
   -r{toxinidir}/requirements.txt
   -r{toxinidir}/test-requirements.txt
-install_command = pip install -U {opts} {packages}
 usedevelop = True
 commands = stestr run --slowest {posargs}
 distribute = false
 
 [testenv:functional]
-basepython = python2.7
 setenv = {[testenv]setenv}
          OS_TEST_PATH=./osprofiler/tests/functional
 deps =
@@ -28,10 +29,10 @@
 [testenv:functional-py36]
 basepython = python3.6
 setenv = {[testenv:functional]setenv}
-deps = {[testenv:functional]deps}
+deps =
+  {[testenv:functional]deps}
 
 [testenv:pep8]
-basepython = python3
 commands =
   flake8
   # Run security linter
@@ -39,11 +40,9 @@
 distribute = false
 
 [testenv:venv]
-basepython = python3
 commands = {posargs}
 
 [testenv:cover]
-basepython = python3
 setenv =
     PYTHON=coverage run --source osprofiler --parallel-mode
 commands =
@@ -53,11 +52,10 @@
     coverage xml -o cover/coverage.xml
 
 [testenv:docs]
-basepython = python3
-commands = python setup.py build_sphinx
+commands =
+  sphinx-build -W --keep-going -b html -d doc/build/doctrees doc/source 
doc/build/html
 
 [testenv:bandit]
-basepython = python3
 commands = bandit -r osprofiler -n5
 
 [flake8]
@@ -65,15 +63,25 @@
 builtins = _
 
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,tools,setup.py,build,releasenotes
 
-[hacking]
-local-check-factory = osprofiler.hacking.checks.factory
+[flake8:local-plugins]
+extension =
+    N301 = checks:check_assert_methods_from_mock
+    N320 = checks:assert_true_instance
+    N321 = checks:assert_equal_type
+    N322 = checks:assert_equal_none
+    N323 = checks:assert_true_or_false_with_in
+    N324 = checks:assert_equal_in
+    N350 = checks:check_quotes
+    N351 = checks:check_no_constructor_data_struct
+    N352 = checks:check_dict_formatting_in_string
+    N353 = checks:check_using_unicode
+    N354 = checks:check_raises
+paths = ./osprofiler/hacking
 
 [testenv:releasenotes]
-basepython = python3
 commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html 
releasenotes/source releasenotes/build/html
 
 [testenv:lower-constraints]
-basepython = python3
 deps =
   -c{toxinidir}/lower-constraints.txt
   -r{toxinidir}/test-requirements.txt


Reply via email to