Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-lazr.uri for openSUSE:Factory 
checked in at 2021-06-01 10:39:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-lazr.uri (Old)
 and      /work/SRC/openSUSE:Factory/.python-lazr.uri.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-lazr.uri"

Tue Jun  1 10:39:49 2021 rev:6 rq:896451 version:1.0.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-lazr.uri/python-lazr.uri.changes  
2018-08-31 10:43:23.803127675 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-lazr.uri.new.1898/python-lazr.uri.changes    
    2021-06-01 10:41:27.141220691 +0200
@@ -1,0 +2,14 @@
+Mon May 31 10:23:27 UTC 2021 - pgaj...@suse.com
+
+- version update to 1.0.5
+  - Add an explicit __hash__ method to lazr.uri.URI.
+  - Install version.txt with package_data (Stefano Rivera,
+    https://bugs.launchpad.net/lazr.uri/+bug/918660).
+  - Switch from buildout to tox.
+
+-------------------------------------------------------------------
+Mon May 31 09:33:28 UTC 2021 - pgaj...@suse.com
+
+- %check: use %pytest rpm macro
+
+-------------------------------------------------------------------

Old:
----
  lazr.uri-1.0.3.tar.gz

New:
----
  lazr.uri-1.0.5.tar.gz

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

Other differences:
------------------
++++++ python-lazr.uri.spec ++++++
--- /var/tmp/diff_new_pack.fXTJC1/_old  2021-06-01 10:41:27.561221407 +0200
+++ /var/tmp/diff_new_pack.fXTJC1/_new  2021-06-01 10:41:27.561221407 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-lazr.uri
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,19 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           python-lazr.uri
-Version:        1.0.3
+Version:        1.0.5
 Release:        0
 Summary:        Code for parsing and dealing with URI
 License:        LGPL-3.0-or-later
 Group:          Development/Languages/Python
 URL:            https://launchpad.net/lazr.uri
 Source:         
https://files.pythonhosted.org/packages/source/l/lazr.uri/lazr.uri-%{version}.tar.gz
+BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
@@ -44,11 +45,11 @@
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
-%python_exec setup.py test
+%pytest
 
 %files %{python_files}
 %license COPYING.txt
-%doc README.txt
+%doc README.rst
 %{python_sitelib}/*
 
 %changelog

++++++ lazr.uri-1.0.3.tar.gz -> lazr.uri-1.0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/HACKING.rst 
new/lazr.uri-1.0.5/HACKING.rst
--- old/lazr.uri-1.0.3/HACKING.rst      1970-01-01 01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/HACKING.rst      2020-06-12 13:05:39.000000000 +0200
@@ -0,0 +1,36 @@
+..
+    This file is part of lazr.uri.
+
+    lazr.uri is free software: you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation, version 3 of the License.
+
+    lazr.uri is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+    License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
+
+============
+Introduction
+============
+
+To run this project's tests, use `tox <https://tox.readthedocs.io/en/latest/>`.
+
+
+Getting help
+------------
+
+If you find bugs in this package, you can report them here:
+
+    https://launchpad.net/lazr.uri
+
+If you want to discuss this package, join the team and mailing list here:
+
+    https://launchpad.net/~lazr-developers
+
+or send a message to:
+
+    lazr-develop...@lists.launchpad.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/HACKING.txt 
new/lazr.uri-1.0.5/HACKING.txt
--- old/lazr.uri-1.0.3/HACKING.txt      2009-07-27 17:58:00.000000000 +0200
+++ new/lazr.uri-1.0.5/HACKING.txt      1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-..
-    This file is part of lazr.uri.
-
-    lazr.uri is free software: you can redistribute it and/or modify it
-    under the terms of the GNU Lesser General Public License as published by
-    the Free Software Foundation, version 3 of the License.
-
-    lazr.uri is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-    License for more details.
-
-    You should have received a copy of the GNU Lesser General Public License
-    along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
-
-This project uses zc.buildout for development.
-
-============
-Introduction
-============
-
-These are guidelines for hacking on the lazr.uri project.  But first,
-please see the common hacking guidelines at:
-
-    http://dev.launchpad.net/Hacking
-
-
-Getting help
-------------
-
-If you find bugs in this package, you can report them here:
-
-    https://launchpad.net/lazr.uri
-
-If you want to discuss this package, join the team and mailing list here:
-
-    https://launchpad.net/~lazr-developers
-
-or send a message to:
-
-    lazr-develop...@lists.launchpad.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/MANIFEST.in 
new/lazr.uri-1.0.5/MANIFEST.in
--- old/lazr.uri-1.0.3/MANIFEST.in      1970-01-01 01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/MANIFEST.in      2020-06-12 13:05:39.000000000 +0200
@@ -0,0 +1,5 @@
+include COPYING.txt HACKING.rst NEWS.rst
+recursive-include src *.txt *.rst *.zcml
+include src/lazr/uri/docs/Makefile
+prune src/lazr/uri/docs/_build
+exclude .bzrignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/NEWS.rst new/lazr.uri-1.0.5/NEWS.rst
--- old/lazr.uri-1.0.3/NEWS.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/NEWS.rst 2020-06-29 13:23:58.000000000 +0200
@@ -0,0 +1,31 @@
+=================
+NEWS for lazr.uri
+=================
+
+1.0.5 (2020-06-29)
+==================
+
+- Add an explicit __hash__ method to lazr.uri.URI.
+
+1.0.4 (2020-06-12)
+==================
+
+- Install version.txt with package_data (Stefano Rivera,
+  https://bugs.launchpad.net/lazr.uri/+bug/918660).
+- Switch from buildout to tox.
+
+1.0.3 (2012-01-18)
+==================
+
+- Add compatibility with Python 3 (Thomas Kluyver).
+
+1.0.1 (2009-06-01)
+==================
+
+- Eliminate dependency on setuptools_bzr so sdists do not bring bzr ini, among
+  others.
+
+1.0 (2009-03-23)
+================
+
+- Initial release on PyPI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/PKG-INFO new/lazr.uri-1.0.5/PKG-INFO
--- old/lazr.uri-1.0.3/PKG-INFO 2012-01-18 15:17:55.000000000 +0100
+++ new/lazr.uri-1.0.5/PKG-INFO 2020-06-29 13:24:31.313304400 +0200
@@ -1,10 +1,10 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: lazr.uri
-Version: 1.0.3
+Version: 1.0.5
 Summary: A self-contained, easily reusable library for parsing, manipulating,
 Home-page: https://launchpad.net/lazr.uri
-Author: LAZR Developers
-Author-email: lazr-develop...@lists.launchpad.net
+Maintainer: LAZR Developers
+Maintainer-email: lazr-develop...@lists.launchpad.net
 License: LGPL v3
 Download-URL: https://launchpad.net/lazr.uri/+download
 Description: ..
@@ -147,20 +147,23 @@
           http://bazaar.launchpad.net/~name12/firefox/foo
           http://somewhere.in/time?track=[02]#wasted-years
         
-        ===============
-        Other Documents
-        ===============
-        
-        .. toctree::
-           :glob:
-        
-           *
-           docs/*
         
         =================
         NEWS for lazr.uri
         =================
         
+        1.0.5 (2020-06-29)
+        ==================
+        
+        - Add an explicit __hash__ method to lazr.uri.URI.
+        
+        1.0.4 (2020-06-12)
+        ==================
+        
+        - Install version.txt with package_data (Stefano Rivera,
+          https://bugs.launchpad.net/lazr.uri/+bug/918660).
+        - Switch from buildout to tox.
+        
         1.0.3 (2012-01-18)
         ==================
         
@@ -184,4 +187,12 @@
 Classifier: Operating System :: OS Independent
 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.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Description-Content-Type: text/x-rst
+Provides-Extra: docs
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/README.rst 
new/lazr.uri-1.0.5/README.rst
--- old/lazr.uri-1.0.3/README.rst       1970-01-01 01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/README.rst       2012-01-18 18:44:53.000000000 +0100
@@ -0,0 +1,17 @@
+A self-contained, easily reusable library for parsing, manipulating,
+and generating URIs.
+
+..
+    This file is part of lazr.uri.
+
+    lazr.uri is free software: you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation, version 3 of the License.
+
+    lazr.uri is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+    License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/README.txt 
new/lazr.uri-1.0.5/README.txt
--- old/lazr.uri-1.0.3/README.txt       2012-01-18 15:11:08.000000000 +0100
+++ new/lazr.uri-1.0.5/README.txt       1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-A self-contained, easily reusable library for parsing, manipulating,
-and generating URIs.
-
-..
-    This file is part of lazr.uri.
-
-    lazr.uri is free software: you can redistribute it and/or modify it
-    under the terms of the GNU Lesser General Public License as published by
-    the Free Software Foundation, version 3 of the License.
-
-    lazr.uri is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-    License for more details.
-
-    You should have received a copy of the GNU Lesser General Public License
-    along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/ez_setup.py 
new/lazr.uri-1.0.5/ez_setup.py
--- old/lazr.uri-1.0.3/ez_setup.py      2009-07-27 17:58:00.000000000 +0200
+++ new/lazr.uri-1.0.5/ez_setup.py      1970-01-01 01:00:00.000000000 +0100
@@ -1,241 +0,0 @@
-#!python
-"""Bootstrap setuptools installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
-    from ez_setup import use_setuptools
-    use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import sys
-DEFAULT_VERSION = "0.6c8"
-DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/"; % 
sys.version[:3]
-
-md5_data = {
-    'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
-    'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
-    'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
-    'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
-    'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
-    'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
-    'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
-    'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
-    'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
-    'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
-    'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
-    'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
-    'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
-    'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
-    'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
-    'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
-    'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
-    'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
-    'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
-    'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
-    'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
-    'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
-    'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
-    'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
-    'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
-    'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
-    'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
-    'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
-    'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
-    'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
-}
-
-import sys, os
-
-def _validate_md5(egg_name, data):
-    if egg_name in md5_data:
-        from md5 import md5
-        digest = md5(data).hexdigest()
-        if digest != md5_data[egg_name]:
-            print >>sys.stderr, (
-                "md5 validation of %s failed!  (Possible download problem?)"
-                % egg_name
-            )
-            sys.exit(2)
-    return data
-
-
-def use_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    download_delay=15, min_version=None
-):
-    """Automatically find/download setuptools and make it available on sys.path
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end with
-    a '/').  `to_dir` is the directory where setuptools will be downloaded, if
-    it is not already available.  If `download_delay` is specified, it should
-    be the number of seconds that will be paused before initiating a download,
-    should one be required.  If an older version of setuptools is installed,
-    this routine will print a message to ``sys.stderr`` and raise SystemExit in
-    an attempt to abort the calling script.
-    """
-    # Work around a hack in the ez_setup.py file from simplejson==1.7.3.
-    if min_version:
-        version = min_version
-
-    was_imported = 'pkg_resources' in sys.modules or 'setuptools' in 
sys.modules
-    def do_download():
-        egg = download_setuptools(version, download_base, to_dir, 
download_delay)
-        sys.path.insert(0, egg)
-        import setuptools; setuptools.bootstrap_install_from = egg
-    try:
-        import pkg_resources
-    except ImportError:
-        return do_download()       
-    try:
-        pkg_resources.require("setuptools>="+version); return
-    except pkg_resources.VersionConflict, e:
-        if was_imported:
-            print >>sys.stderr, (
-            "The required version of setuptools (>=%s) is not available, and\n"
-            "can't be installed while this script is running. Please install\n"
-            " a more recent version first, using 'easy_install -U setuptools'."
-            "\n\n(Currently using %r)"
-            ) % (version, e.args[0])
-            sys.exit(2)
-        else:
-            del pkg_resources, sys.modules['pkg_resources']    # reload ok
-            return do_download()
-    except pkg_resources.DistributionNotFound:
-        return do_download()
-
-def download_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    delay = 15
-):
-    """Download setuptools from a specified location and return its filename
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end
-    with a '/'). `to_dir` is the directory where the egg will be downloaded.
-    `delay` is the number of seconds to pause before an actual download 
attempt.
-    """
-    import urllib2, shutil
-    egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
-    url = download_base + egg_name
-    saveto = os.path.join(to_dir, egg_name)
-    src = dst = None
-    if not os.path.exists(saveto):  # Avoid repeated downloads
-        try:
-            from distutils import log
-            if delay:
-                log.warn("""
----------------------------------------------------------------------------
-This script requires setuptools version %s to run (even to display
-help).  I will attempt to download it for you (from
-%s), but
-you may need to enable firewall access for this script first.
-I will start the download in %d seconds.
-
-(Note: if this machine does not have network access, please obtain the file
-
-   %s
-
-and place it in this directory before rerunning this script.)
----------------------------------------------------------------------------""",
-                    version, download_base, delay, url
-                ); from time import sleep; sleep(delay)
-            log.warn("Downloading %s", url)
-            src = urllib2.urlopen(url)
-            # Read/write all in one block, so we don't create a corrupt file
-            # if the download is interrupted.
-            data = _validate_md5(egg_name, src.read())
-            dst = open(saveto,"wb"); dst.write(data)
-        finally:
-            if src: src.close()
-            if dst: dst.close()
-    return os.path.realpath(saveto)
-
-def main(argv, version=DEFAULT_VERSION):
-    """Install or upgrade setuptools and EasyInstall"""
-    try:
-        import setuptools
-    except ImportError:
-        egg = None
-        try:
-            egg = download_setuptools(version, delay=0)
-            sys.path.insert(0,egg)
-            from setuptools.command.easy_install import main
-            return main(list(argv)+[egg])   # we're done here
-        finally:
-            if egg and os.path.exists(egg):
-                os.unlink(egg)
-    else:
-        if setuptools.__version__ == '0.0.1':
-            print >>sys.stderr, (
-            "You have an obsolete version of setuptools installed.  Please\n"
-            "remove it from your system entirely before rerunning this script."
-            )
-            sys.exit(2)
-
-    req = "setuptools>="+version
-    import pkg_resources
-    try:
-        pkg_resources.require(req)
-    except pkg_resources.VersionConflict:
-        try:
-            from setuptools.command.easy_install import main
-        except ImportError:
-            from easy_install import main
-        main(list(argv)+[download_setuptools(delay=0)])
-        sys.exit(0) # try to force an exit
-    else:
-        if argv:
-            from setuptools.command.easy_install import main
-            main(argv)
-        else:
-            print "Setuptools version",version,"or greater has been installed."
-            print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
-
-def update_md5(filenames):
-    """Update our built-in md5 registry"""
-
-    import re
-    from md5 import md5
-
-    for name in filenames:
-        base = os.path.basename(name)
-        f = open(name,'rb')
-        md5_data[base] = md5(f.read()).hexdigest()
-        f.close()
-
-    data = ["    %r: %r,\n" % it for it in md5_data.items()]
-    data.sort()
-    repl = "".join(data)
-
-    import inspect
-    srcfile = inspect.getsourcefile(sys.modules[__name__])
-    f = open(srcfile, 'rb'); src = f.read(); f.close()
-
-    match = re.search("\nmd5_data = {\n([^}]+)}", src)
-    if not match:
-        print >>sys.stderr, "Internal error!"
-        sys.exit(2)
-
-    src = src[:match.start(1)] + repl + src[match.end(1):]
-    f = open(srcfile,'w')
-    f.write(src)
-    f.close()
-
-
-if __name__=='__main__':
-    if len(sys.argv)>2 and sys.argv[1]=='--md5update':
-        update_md5(sys.argv[2:])
-    else:
-        main(sys.argv[1:])
-
-
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/setup.cfg new/lazr.uri-1.0.5/setup.cfg
--- old/lazr.uri-1.0.3/setup.cfg        2012-01-18 15:17:55.000000000 +0100
+++ new/lazr.uri-1.0.5/setup.cfg        2020-06-29 13:24:31.313304400 +0200
@@ -1,5 +1,4 @@
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/setup.py new/lazr.uri-1.0.5/setup.py
--- old/lazr.uri-1.0.3/setup.py 2012-01-18 12:53:31.000000000 +0100
+++ new/lazr.uri-1.0.5/setup.py 2020-06-12 13:05:39.000000000 +0200
@@ -16,22 +16,19 @@
 # You should have received a copy of the GNU Lesser General Public License
 # along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
 
-import sys
-try:
-    from setuptools import setup, find_packages
-except ImportError:
-    import ez_setup
-    ez_setup.use_setuptools()
-    from setuptools import setup, find_packages
+from setuptools import setup, find_packages
 
 # generic helpers primarily for the long_description
 def generate(*docname_or_string):
+    marker = '.. pypi description ends here'
     res = []
     for value in docname_or_string:
-        if value.endswith('.txt'):
-            f = open(value)
-            value = f.read()
-            f.close()
+        if value.endswith('.rst'):
+            with open(value) as f:
+                value = f.read()
+            idx = value.find(marker)
+            if idx >= 0:
+                value = value[:idx]
         res.append(value)
         if not value.endswith('\n'):
             res.append('')
@@ -48,15 +45,17 @@
     namespace_packages=['lazr'],
     packages=find_packages('src'),
     package_dir={'':'src'},
+    package_data={'lazr.uri': ['version.txt']},
     include_package_data=True,
     zip_safe=False,
     maintainer='LAZR Developers',
     maintainer_email='lazr-develop...@lists.launchpad.net',
     download_url= 'https://launchpad.net/lazr.uri/+download',
-    description=open('README.txt').readline().strip(),
+    description=open('README.rst').readline().strip(),
     long_description=generate(
-        'src/lazr/uri/README.txt',
-        'src/lazr/uri/NEWS.txt'),
+        'src/lazr/uri/docs/index.rst',
+        'NEWS.rst'),
+    long_description_content_type='text/x-rst',
     license='LGPL v3',
     install_requires=[
         'setuptools',
@@ -69,11 +68,16 @@
         "Operating System :: OS Independent",
         "Programming Language :: Python",
         "Programming Language :: Python :: 2",
+        "Programming Language :: Python :: 2.7",
         "Programming Language :: Python :: 3",
+        "Programming Language :: Python :: 3.5",
+        "Programming Language :: Python :: 3.6",
+        "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
         ],
     extras_require=dict(
-        docs=['Sphinx',
-              'z3c.recipe.sphinxdoc']
+        docs=['Sphinx'],
+        test=['zope.testrunner'],
     ),
     test_suite='lazr.uri.tests',
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/NEWS.txt 
new/lazr.uri-1.0.5/src/lazr/uri/NEWS.txt
--- old/lazr.uri-1.0.3/src/lazr/uri/NEWS.txt    2012-01-18 15:10:19.000000000 
+0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/NEWS.txt    1970-01-01 01:00:00.000000000 
+0100
@@ -1,19 +0,0 @@
-=================
-NEWS for lazr.uri
-=================
-
-1.0.3 (2012-01-18)
-==================
-
-- Add compatibility with Python 3 (Thomas Kluyver).
-
-1.0.1 (2009-06-01)
-==================
-
-- Eliminate dependency on setuptools_bzr so sdists do not bring bzr ini, among
-  others.
-
-1.0 (2009-03-23)
-================
-
-- Initial release on PyPI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/README.txt 
new/lazr.uri-1.0.5/src/lazr/uri/README.txt
--- old/lazr.uri-1.0.3/src/lazr/uri/README.txt  2012-01-18 12:53:31.000000000 
+0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/README.txt  1970-01-01 01:00:00.000000000 
+0100
@@ -1,149 +0,0 @@
-..
-    This file is part of lazr.uri.
-
-    lazr.uri is free software: you can redistribute it and/or modify it
-    under the terms of the GNU Lesser General Public License as published by
-    the Free Software Foundation, version 3 of the License.
-
-    lazr.uri is distributed in the hope that it will be useful, but
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-    License for more details.
-
-    You should have received a copy of the GNU Lesser General Public License
-    along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
-
-lazr.uri
-********
-
-The lazr.uri package includes code for parsing and dealing with URIs.
-
-    >>> import lazr.uri
-    >>> print('VERSION:', lazr.uri.__version__)
-    VERSION: ...
-
-=============
-The URI class
-=============
-
-    >>> from lazr.uri import URI
-    >>> uri1 = URI('http://localhost/foo/bar?123')
-    >>> uri2 = URI('http://localhost/foo/bar/baz')
-    >>> uri1.contains(uri2)
-    True
-
-These next two are equivalent, so the answer should be True, even through
-the "outside" one is shorter than the "inside" one.
-
-    >>> uri1 = URI('http://localhost/foo/bar/')
-    >>> uri2 = URI('http://localhost/foo/bar')
-    >>> uri1.contains(uri2)
-    True
-
-The next two are exactly the same.  We consider a url to be inside itself.
-
-    >>> uri1 = URI('http://localhost/foo/bar/')
-    >>> uri2 = URI('http://localhost/foo/bar/')
-    >>> uri1.contains(uri2)
-    True
-
-In the next case, the string of url2 starts with the string of url1.  But,
-because url2 continues within the same path step, url2 is not inside url1.
-
-    >>> uri1 = URI('http://localhost/foo/ba')
-    >>> uri2 = URI('http://localhost/foo/bar')
-    >>> uri1.contains(uri2)
-    False
-
-Here, url2 is url1 plus an extra path step.  So, url2 is inside url1.
-
-    >>> uri1 = URI('http://localhost/foo/bar/')
-    >>> uri2 = URI('http://localhost/foo/bar/baz')
-    >>> uri1.contains(uri2)
-    True
-
-Once the URI is parsed, its parts are accessible.
-
-    >>> uri = URI('https://fish.tree:8666/blee/blah')
-    >>> uri.scheme
-    'https'
-    >>> uri.host
-    'fish.tree'
-    >>> uri.port
-    '8666'
-    >>> uri.authority
-    'fish.tree:8666'
-    >>> uri.path
-    '/blee/blah'
-
-    >>> uri = URI('https://localhost/blee/blah')
-    >>> uri.scheme
-    'https'
-    >>> uri.host
-    'localhost'
-    >>> uri.port is None
-    True
-    >>> uri.authority
-    'localhost'
-    >>> uri.path
-    '/blee/blah'
-
-The grammar from RFC 3986 does not allow for square brackets in the
-query component, but Section 3.4 does say how such delimeter
-characters should be handled if found in the component.
-
-    >>> uri = URI('http://www.apple.com/store?delivery=[slow]#horse+cart')
-    >>> uri.scheme
-    'http'
-    >>> uri.host
-    'www.apple.com'
-    >>> uri.port is None
-    True
-    >>> uri.path
-    '/store'
-    >>> uri.query
-    'delivery=[slow]'
-    >>> uri.fragment
-    'horse+cart'
-
-====================
-Finding URIs in Text
-====================
-
-lazr.uri also knows how to retrieve a list of URIs from a block of
-text.  This is intended for uses like finding bug tracker URIs or
-similar.
-
-The find_uris_in_text() function returns an iterator that yields URI
-objects for each URI found in the text.  Note that the returned URIs
-have been canonicalised by the URI class:
-
-  >>> from lazr.uri import find_uris_in_text
-  >>> text = '''
-  ... A list of URIs:
-  ...  * http://localhost/a/b
-  ...  * http://launchpad.net
-  ...  * MAILTO:j...@example.com
-  ...  * xmpp:f...@example.org
-  ...  * http://bazaar.launchpad.net/%7ename12/firefox/foo
-  ...  * http://somewhere.in/time?track=[02]#wasted-years
-  ... '''
-
-  >>> for uri in find_uris_in_text(text):
-  ...     print(uri)
-  http://localhost/a/b
-  http://launchpad.net/
-  mailto:j...@example.com
-  xmpp:f...@example.org
-  http://bazaar.launchpad.net/~name12/firefox/foo
-  http://somewhere.in/time?track=[02]#wasted-years
-
-===============
-Other Documents
-===============
-
-.. toctree::
-   :glob:
-
-   *
-   docs/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/_uri.py 
new/lazr.uri-1.0.5/src/lazr/uri/_uri.py
--- old/lazr.uri-1.0.3/src/lazr/uri/_uri.py     2012-01-18 12:53:31.000000000 
+0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/_uri.py     2020-06-29 13:23:09.000000000 
+0200
@@ -353,6 +353,10 @@
         else:
             return not equal
 
+    def __hash__(self):
+        return hash((
+            self.scheme, self.authority, self.path, self.query, self.fragment))
+
     def replace(self, **parts):
         """Replace one or more parts of the URI, returning the result."""
         if not parts:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/docs/Makefile 
new/lazr.uri-1.0.5/src/lazr/uri/docs/Makefile
--- old/lazr.uri-1.0.3/src/lazr/uri/docs/Makefile       1970-01-01 
01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/docs/Makefile       2020-06-12 
13:05:39.000000000 +0200
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+SPHINXPROJ    = lazruri
+SOURCEDIR     = .
+BUILDDIR      = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+       @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+       @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/docs/NEWS.rst 
new/lazr.uri-1.0.5/src/lazr/uri/docs/NEWS.rst
--- old/lazr.uri-1.0.3/src/lazr/uri/docs/NEWS.rst       1970-01-01 
01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/docs/NEWS.rst       2020-06-29 
13:23:58.000000000 +0200
@@ -0,0 +1,31 @@
+=================
+NEWS for lazr.uri
+=================
+
+1.0.5 (2020-06-29)
+==================
+
+- Add an explicit __hash__ method to lazr.uri.URI.
+
+1.0.4 (2020-06-12)
+==================
+
+- Install version.txt with package_data (Stefano Rivera,
+  https://bugs.launchpad.net/lazr.uri/+bug/918660).
+- Switch from buildout to tox.
+
+1.0.3 (2012-01-18)
+==================
+
+- Add compatibility with Python 3 (Thomas Kluyver).
+
+1.0.1 (2009-06-01)
+==================
+
+- Eliminate dependency on setuptools_bzr so sdists do not bring bzr ini, among
+  others.
+
+1.0 (2009-03-23)
+================
+
+- Initial release on PyPI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/docs/index.rst 
new/lazr.uri-1.0.5/src/lazr/uri/docs/index.rst
--- old/lazr.uri-1.0.3/src/lazr/uri/docs/index.rst      1970-01-01 
01:00:00.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/docs/index.rst      2020-06-12 
13:05:39.000000000 +0200
@@ -0,0 +1,146 @@
+..
+    This file is part of lazr.uri.
+
+    lazr.uri is free software: you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation, version 3 of the License.
+
+    lazr.uri is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+    License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
+
+lazr.uri
+********
+
+The lazr.uri package includes code for parsing and dealing with URIs.
+
+    >>> import lazr.uri
+    >>> print('VERSION:', lazr.uri.__version__)
+    VERSION: ...
+
+=============
+The URI class
+=============
+
+    >>> from lazr.uri import URI
+    >>> uri1 = URI('http://localhost/foo/bar?123')
+    >>> uri2 = URI('http://localhost/foo/bar/baz')
+    >>> uri1.contains(uri2)
+    True
+
+These next two are equivalent, so the answer should be True, even through
+the "outside" one is shorter than the "inside" one.
+
+    >>> uri1 = URI('http://localhost/foo/bar/')
+    >>> uri2 = URI('http://localhost/foo/bar')
+    >>> uri1.contains(uri2)
+    True
+
+The next two are exactly the same.  We consider a url to be inside itself.
+
+    >>> uri1 = URI('http://localhost/foo/bar/')
+    >>> uri2 = URI('http://localhost/foo/bar/')
+    >>> uri1.contains(uri2)
+    True
+
+In the next case, the string of url2 starts with the string of url1.  But,
+because url2 continues within the same path step, url2 is not inside url1.
+
+    >>> uri1 = URI('http://localhost/foo/ba')
+    >>> uri2 = URI('http://localhost/foo/bar')
+    >>> uri1.contains(uri2)
+    False
+
+Here, url2 is url1 plus an extra path step.  So, url2 is inside url1.
+
+    >>> uri1 = URI('http://localhost/foo/bar/')
+    >>> uri2 = URI('http://localhost/foo/bar/baz')
+    >>> uri1.contains(uri2)
+    True
+
+Once the URI is parsed, its parts are accessible.
+
+    >>> uri = URI('https://fish.tree:8666/blee/blah')
+    >>> uri.scheme
+    'https'
+    >>> uri.host
+    'fish.tree'
+    >>> uri.port
+    '8666'
+    >>> uri.authority
+    'fish.tree:8666'
+    >>> uri.path
+    '/blee/blah'
+
+    >>> uri = URI('https://localhost/blee/blah')
+    >>> uri.scheme
+    'https'
+    >>> uri.host
+    'localhost'
+    >>> uri.port is None
+    True
+    >>> uri.authority
+    'localhost'
+    >>> uri.path
+    '/blee/blah'
+
+The grammar from RFC 3986 does not allow for square brackets in the
+query component, but Section 3.4 does say how such delimeter
+characters should be handled if found in the component.
+
+    >>> uri = URI('http://www.apple.com/store?delivery=[slow]#horse+cart')
+    >>> uri.scheme
+    'http'
+    >>> uri.host
+    'www.apple.com'
+    >>> uri.port is None
+    True
+    >>> uri.path
+    '/store'
+    >>> uri.query
+    'delivery=[slow]'
+    >>> uri.fragment
+    'horse+cart'
+
+====================
+Finding URIs in Text
+====================
+
+lazr.uri also knows how to retrieve a list of URIs from a block of
+text.  This is intended for uses like finding bug tracker URIs or
+similar.
+
+The find_uris_in_text() function returns an iterator that yields URI
+objects for each URI found in the text.  Note that the returned URIs
+have been canonicalised by the URI class:
+
+  >>> from lazr.uri import find_uris_in_text
+  >>> text = '''
+  ... A list of URIs:
+  ...  * http://localhost/a/b
+  ...  * http://launchpad.net
+  ...  * MAILTO:j...@example.com
+  ...  * xmpp:f...@example.org
+  ...  * http://bazaar.launchpad.net/%7ename12/firefox/foo
+  ...  * http://somewhere.in/time?track=[02]#wasted-years
+  ... '''
+
+  >>> for uri in find_uris_in_text(text):
+  ...     print(uri)
+  http://localhost/a/b
+  http://launchpad.net/
+  mailto:j...@example.com
+  xmpp:f...@example.org
+  http://bazaar.launchpad.net/~name12/firefox/foo
+  http://somewhere.in/time?track=[02]#wasted-years
+
+.. pypi description ends here
+
+.. toctree::
+   :glob:
+
+   NEWS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/tests/test_docs.py 
new/lazr.uri-1.0.5/src/lazr/uri/tests/test_docs.py
--- old/lazr.uri-1.0.3/src/lazr/uri/tests/test_docs.py  2012-01-18 
12:53:31.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/tests/test_docs.py  2020-06-12 
13:05:39.000000000 +0200
@@ -13,20 +13,27 @@
 #
 # You should have received a copy of the GNU Lesser General Public License
 # along with lazr.uri.  If not, see <http://www.gnu.org/licenses/>.
-"Test harness for doctests."
+
+"""Test harness for doctests."""
 
 from __future__ import print_function
 
 __metaclass__ = type
 __all__ = [
-    'additional_tests',
+    'load_tests',
     ]
 
 import atexit
 import doctest
 import os
-import pkg_resources
-import unittest
+
+from pkg_resources import (
+    cleanup_resources,
+    resource_exists,
+    resource_filename,
+    resource_listdir,
+    )
+
 
 DOCTEST_FLAGS = (
     doctest.ELLIPSIS |
@@ -34,22 +41,24 @@
     doctest.REPORT_NDIFF)
 
 
-def additional_tests():
-    "Run the doc tests (README.txt and docs/*, if any exist)"
-    doctest_files = [
-        os.path.abspath(
-            pkg_resources.resource_filename('lazr.uri', 'README.txt'))]
-    if pkg_resources.resource_exists('lazr.uri', 'docs'):
-        for name in pkg_resources.resource_listdir('lazr.uri', 'docs'):
-            if name.endswith('.txt'):
+def find_doctests(suffix):
+    """Find doctests matching a certain suffix."""
+    doctest_files = []
+    # Match doctests against the suffix.
+    if resource_exists('lazr.uri', 'docs'):
+        for name in resource_listdir('lazr.uri', 'docs'):
+            if name.endswith(suffix):
                 doctest_files.append(
                     os.path.abspath(
-                        pkg_resources.resource_filename(
-                            'lazr.uri', 'docs/%s' % name)))
-    kwargs = dict(
+                        resource_filename('lazr.uri', 'docs/%s' % name)))
+    return doctest_files
+
+
+def load_tests(loader, tests, pattern):
+    """Load all the doctests."""
+    atexit.register(cleanup_resources)
+    tests.addTest(doctest.DocFileSuite(
+        *find_doctests('.rst'),
         module_relative=False, optionflags=DOCTEST_FLAGS,
-        globs={"print_function": print_function},
-        )
-    atexit.register(pkg_resources.cleanup_resources)
-    return unittest.TestSuite((
-        doctest.DocFileSuite(*doctest_files, **kwargs)))
+        globs={"print_function": print_function}))
+    return tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/tests/test_uri.py 
new/lazr.uri-1.0.5/src/lazr/uri/tests/test_uri.py
--- old/lazr.uri-1.0.3/src/lazr/uri/tests/test_uri.py   2012-01-18 
12:53:31.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/tests/test_uri.py   2020-06-29 
13:23:09.000000000 +0200
@@ -21,6 +21,7 @@
     'test_suite',
     ]
 
+from collections import defaultdict
 import unittest
 
 from lazr.uri import (
@@ -47,7 +48,30 @@
                              'http://example.com/')
         self.assertEqual(str(URI('http://example.com:80/')),
                              'http://example.com/')
-    
+
+    def test_hashable(self):
+        uri_groups = [
+            ['eXAMPLE://a/./b/../b/%63/%7bfoo%7d',
+             'example://a/b/c/%7Bfoo%7D'],
+            ['http://www.EXAMPLE.com/',
+             'http://www.example.com/'],
+            ['http://www.gnome.org/%7ejamesh/',
+             'http://www.gnome.org/~jamesh/'],
+            ['http://example.com',
+             'http://example.com/',
+             'http://example.com:/',
+             'http://example.com:80/'],
+            ]
+        uri_hashes = defaultdict(list)
+        for uri_group in uri_groups:
+            for uri in uri_group:
+                uri_hashes[hash(URI(uri))].append(uri)
+        self.assertEqual(len(uri_groups), len(uri_hashes))
+        for uri_group in uri_groups:
+            self.assertEqual(
+                sorted(uri_group),
+                sorted(uri_hashes[hash(URI(uri_group[0]))]))
+
     def test_invalid_uri(self):
         self.assertRaises(InvalidURIError, URI, 'http://???xample.com/')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr/uri/version.txt 
new/lazr.uri-1.0.5/src/lazr/uri/version.txt
--- old/lazr.uri-1.0.3/src/lazr/uri/version.txt 2012-01-18 15:10:19.000000000 
+0100
+++ new/lazr.uri-1.0.5/src/lazr/uri/version.txt 2020-06-29 13:24:10.000000000 
+0200
@@ -1 +1 @@
-1.0.3
+1.0.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr.uri.egg-info/PKG-INFO 
new/lazr.uri-1.0.5/src/lazr.uri.egg-info/PKG-INFO
--- old/lazr.uri-1.0.3/src/lazr.uri.egg-info/PKG-INFO   2012-01-18 
15:17:55.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr.uri.egg-info/PKG-INFO   2020-06-29 
13:24:31.000000000 +0200
@@ -1,10 +1,10 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: lazr.uri
-Version: 1.0.3
+Version: 1.0.5
 Summary: A self-contained, easily reusable library for parsing, manipulating,
 Home-page: https://launchpad.net/lazr.uri
-Author: LAZR Developers
-Author-email: lazr-develop...@lists.launchpad.net
+Maintainer: LAZR Developers
+Maintainer-email: lazr-develop...@lists.launchpad.net
 License: LGPL v3
 Download-URL: https://launchpad.net/lazr.uri/+download
 Description: ..
@@ -147,20 +147,23 @@
           http://bazaar.launchpad.net/~name12/firefox/foo
           http://somewhere.in/time?track=[02]#wasted-years
         
-        ===============
-        Other Documents
-        ===============
-        
-        .. toctree::
-           :glob:
-        
-           *
-           docs/*
         
         =================
         NEWS for lazr.uri
         =================
         
+        1.0.5 (2020-06-29)
+        ==================
+        
+        - Add an explicit __hash__ method to lazr.uri.URI.
+        
+        1.0.4 (2020-06-12)
+        ==================
+        
+        - Install version.txt with package_data (Stefano Rivera,
+          https://bugs.launchpad.net/lazr.uri/+bug/918660).
+        - Switch from buildout to tox.
+        
         1.0.3 (2012-01-18)
         ==================
         
@@ -184,4 +187,12 @@
 Classifier: Operating System :: OS Independent
 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.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Description-Content-Type: text/x-rst
+Provides-Extra: docs
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr.uri.egg-info/SOURCES.txt 
new/lazr.uri-1.0.5/src/lazr.uri.egg-info/SOURCES.txt
--- old/lazr.uri-1.0.3/src/lazr.uri.egg-info/SOURCES.txt        2012-01-18 
15:17:55.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr.uri.egg-info/SOURCES.txt        2020-06-29 
13:24:31.000000000 +0200
@@ -1,7 +1,8 @@
 COPYING.txt
-HACKING.txt
-README.txt
-ez_setup.py
+HACKING.rst
+MANIFEST.in
+NEWS.rst
+README.rst
 setup.py
 src/lazr/__init__.py
 src/lazr.uri.egg-info/PKG-INFO
@@ -11,12 +12,13 @@
 src/lazr.uri.egg-info/not-zip-safe
 src/lazr.uri.egg-info/requires.txt
 src/lazr.uri.egg-info/top_level.txt
-src/lazr/uri/NEWS.txt
-src/lazr/uri/README.txt
 src/lazr/uri/__init__.py
 src/lazr/uri/_uri.py
 src/lazr/uri/configure.zcml
 src/lazr/uri/version.txt
+src/lazr/uri/docs/Makefile
+src/lazr/uri/docs/NEWS.rst
+src/lazr/uri/docs/index.rst
 src/lazr/uri/tests/__init__.py
 src/lazr/uri/tests/test_docs.py
 src/lazr/uri/tests/test_uri.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lazr.uri-1.0.3/src/lazr.uri.egg-info/requires.txt 
new/lazr.uri-1.0.5/src/lazr.uri.egg-info/requires.txt
--- old/lazr.uri-1.0.3/src/lazr.uri.egg-info/requires.txt       2012-01-18 
15:17:55.000000000 +0100
+++ new/lazr.uri-1.0.5/src/lazr.uri.egg-info/requires.txt       2020-06-29 
13:24:31.000000000 +0200
@@ -2,4 +2,6 @@
 
 [docs]
 Sphinx
-z3c.recipe.sphinxdoc
\ No newline at end of file
+
+[test]
+zope.testrunner

Reply via email to