Hello community, here is the log from the commit of package python3-pbr for openSUSE:Factory checked in at 2015-08-15 11:39:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-pbr (Old) and /work/SRC/openSUSE:Factory/.python3-pbr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pbr" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-pbr/python3-pbr-doc.changes 2015-08-07 00:20:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-pbr.new/python3-pbr-doc.changes 2015-08-15 11:39:51.000000000 +0200 @@ -1,0 +2,18 @@ +Sat Aug 15 02:45:08 UTC 2015 - a...@gmx.de + +- update to version 1.5.0: + * Handle git being entirely absent + * We require the use of setuptools + +------------------------------------------------------------------- +Sat Aug 8 23:32:02 UTC 2015 - a...@gmx.de + +- update to version 1.4.0: + * Fix docs for environment markers in extras + * Export ChangeLog and AUTHORS in install + * Updated from global requirements + * Show how long the git querying takes + * Add wsgi_scripts support to PBR + * Updated from global requirements + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/python3-pbr/python3-pbr.changes 2015-08-07 00:20:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-pbr.new/python3-pbr.changes 2015-08-15 11:39:51.000000000 +0200 @@ -1,0 +2,21 @@ +Sat Aug 15 02:45:08 UTC 2015 - a...@gmx.de + +- update to version 1.5.0: + * Handle git being entirely absent + * We require the use of setuptools + +------------------------------------------------------------------- +Sat Aug 8 23:32:02 UTC 2015 - a...@gmx.de + +- specfile: + * add Changelog to %doc + +- update to version 1.4.0: + * Fix docs for environment markers in extras + * Export ChangeLog and AUTHORS in install + * Updated from global requirements + * Show how long the git querying takes + * Add wsgi_scripts support to PBR + * Updated from global requirements + +------------------------------------------------------------------- @@ -42,0 +64,15 @@ + +------------------------------------------------------------------- +Tue Jun 30 22:23:51 UTC 2015 - a...@gmx.de + + +- update to version 1.3.0: + * Wrap env markers in parens + * Updated from global requirements + * Add more documentation around building docs + * Use string for 'OS_TEST_TIMEOUT' default + * This documents the use of comments that work between 2.6, 2.7 and + 3.4 + +- changes from version 1.2.0: + * Strip markers from test requirements. Old: ---- pbr-1.3.0.tar.gz New: ---- pbr-1.5.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-pbr-doc.spec ++++++ --- /var/tmp/diff_new_pack.flHVY1/_old 2015-08-15 11:39:52.000000000 +0200 +++ /var/tmp/diff_new_pack.flHVY1/_new 2015-08-15 11:39:52.000000000 +0200 @@ -17,7 +17,7 @@ Name: python3-pbr-doc -Version: 1.3.0 +Version: 1.5.0 Release: 0 Summary: Documentation for python3-pbr License: Apache-2.0 @@ -30,6 +30,7 @@ Patch0: 0001-Remove-sphinx_config.init_values-manual-call.patch BuildRequires: fdupes BuildRequires: python3-devel +BuildRequires: python3-setuptools # Documentation requirements: BuildRequires: python3-Sphinx >= 1.1.2 BuildArch: noarch ++++++ python3-pbr.spec ++++++ --- /var/tmp/diff_new_pack.flHVY1/_old 2015-08-15 11:39:52.000000000 +0200 +++ /var/tmp/diff_new_pack.flHVY1/_new 2015-08-15 11:39:52.000000000 +0200 @@ -21,7 +21,7 @@ %bcond_with test Name: python3-pbr -Version: 1.3.0 +Version: 1.5.0 Release: 0 Summary: Python Build Reasonableness License: Apache-2.0 @@ -99,7 +99,7 @@ %files %defattr(-,root,root,-) -%doc README.rst AUTHORS LICENSE +%doc README.rst AUTHORS LICENSE ChangeLog %{_bindir}/pbr %{_bindir}/pbr-%{py3_ver} %ghost %{_sysconfdir}/alternatives/pbr ++++++ pbr-1.3.0.tar.gz -> pbr-1.5.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/AUTHORS new/pbr-1.5.0/AUTHORS --- old/pbr-1.3.0/AUTHORS 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/AUTHORS 2015-08-13 21:33:57.000000000 +0200 @@ -7,6 +7,7 @@ Attila Fazekas <afaze...@redhat.com> Ben Nemec <bne...@redhat.com> Bhuvan Arumugam <bhu...@apache.org> +Brant Knudson <bknud...@us.ibm.com> Brian Waldon <bcwal...@gmail.com> Chang Bo Guo <guoc...@cn.ibm.com> ChangBo Guo(gcb) <eric....@easystack.cn> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/ChangeLog new/pbr-1.5.0/ChangeLog --- old/pbr-1.3.0/ChangeLog 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/ChangeLog 2015-08-13 21:33:57.000000000 +0200 @@ -1,6 +1,23 @@ CHANGES ======= +1.5.0 +----- + +* Handle git being entirely absent +* We require the use of setuptools + +1.4.0 +----- + +* Fix docs for environment markers in extras +* Export ChangeLog and AUTHORS in install +* Updated from global requirements +* Updated from global requirements +* Show how long the git querying takes +* Add wsgi_scripts support to PBR +* Updated from global requirements + 1.3.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/PKG-INFO new/pbr-1.5.0/PKG-INFO --- old/pbr-1.3.0/PKG-INFO 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/PKG-INFO 2015-08-13 21:33:57.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pbr -Version: 1.3.0 +Version: 1.5.0 Summary: Python Build Reasonableness Home-page: https://launchpad.net/pbr Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/doc/source/index.rst new/pbr-1.5.0/doc/source/index.rst --- old/pbr-1.3.0/doc/source/index.rst 2015-07-10 23:32:31.000000000 +0200 +++ new/pbr-1.5.0/doc/source/index.rst 2015-08-13 21:33:38.000000000 +0200 @@ -159,10 +159,10 @@ [extras] security = aleph - bet :python_environment=='3.2' - gimel :python_environment=='2.7' + bet:python_version=='3.2' + gimel:python_version=='2.7' testing = - quux :python_environment=='2.7' + quux:python_version=='2.7' long_description ---------------- @@ -174,7 +174,7 @@ Usage ===== -pbr requires a distribution to use distribute. Your distribution +pbr requires a distribution to use setuptools. Your distribution must include a distutils2-like setup.cfg file, and a minimal setup.py script. A simple sample can be found in pbr's own setup.cfg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/git.py new/pbr-1.5.0/pbr/git.py --- old/pbr-1.3.0/pbr/git.py 2015-07-10 23:32:30.000000000 +0200 +++ new/pbr-1.5.0/pbr/git.py 2015-08-13 21:33:38.000000000 +0200 @@ -18,10 +18,12 @@ import distutils.errors from distutils import log +import errno import io import os import re import subprocess +import time import pkg_resources @@ -63,7 +65,13 @@ def _get_git_directory(): - return _run_shell_command(['git', 'rev-parse', '--git-dir']) + try: + return _run_shell_command(['git', 'rev-parse', '--git-dir']) + except OSError as e: + if e.errno == errno.ENOENT: + # git not installed. + return '' + raise def _git_is_installed(): @@ -221,6 +229,7 @@ def write_git_changelog(git_dir=None, dest_dir=os.path.curdir, option_dict=dict(), changelog=None): """Write a changelog based on the git changelog.""" + start = time.time() if not changelog: changelog = _iter_log_oneline(git_dir=git_dir, option_dict=option_dict) if changelog: @@ -236,6 +245,8 @@ with io.open(new_changelog, "w", encoding="utf-8") as changelog_file: for release, content in changelog: changelog_file.write(content) + stop = time.time() + log.info('[pbr] ChangeLog complete (%0.1fs)' % (stop - start)) def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()): @@ -244,6 +255,7 @@ 'SKIP_GENERATE_AUTHORS') if should_skip: return + start = time.time() old_authors = os.path.join(dest_dir, 'AUTHORS.in') new_authors = os.path.join(dest_dir, 'AUTHORS') # If there's already an AUTHORS file and it's not writable, just use it @@ -278,3 +290,5 @@ new_authors_fh.write(old_authors_fh.read()) new_authors_fh.write(('\n'.join(authors) + '\n') .encode('utf-8')) + stop = time.time() + log.info('[pbr] AUTHORS complete (%0.1fs)' % (stop - start)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/hooks/commands.py new/pbr-1.5.0/pbr/hooks/commands.py --- old/pbr-1.3.0/pbr/hooks/commands.py 2015-07-10 23:32:30.000000000 +0200 +++ new/pbr-1.5.0/pbr/hooks/commands.py 2015-08-13 21:33:38.000000000 +0200 @@ -61,3 +61,5 @@ # We always want non-egg install unless explicitly requested if 'manpages' in self.pbr_config or not use_egg: self.add_command('pbr.packaging.LocalInstall') + else: + self.add_command('pbr.packaging.InstallWithGit') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/packaging.py new/pbr-1.5.0/pbr/packaging.py --- old/pbr-1.3.0/pbr/packaging.py 2015-07-10 23:32:30.000000000 +0200 +++ new/pbr-1.5.0/pbr/packaging.py 2015-08-13 21:33:38.000000000 +0200 @@ -163,6 +163,20 @@ return dependency_links +class InstallWithGit(install.install): + """Extracts ChangeLog and AUTHORS from git then installs. + + This is useful for e.g. readthedocs where the package is + installed and then docs built. + """ + + command_name = 'install' + + def run(self): + _from_git(self.distribution) + return install.install.run(self) + + class LocalInstall(install.install): """Runs python setup.py install in a sensible manner. @@ -174,6 +188,7 @@ command_name = 'install' def run(self): + _from_git(self.distribution) return du_install.install.run(self) @@ -212,6 +227,36 @@ def have_nose(): return _have_nose +_wsgi_text = """#PBR Generated from %(group)r + +from %(module_name)s import %(import_target)s + +if __name__ == "__main__": + import argparse + import socket + import wsgiref.simple_server as wss + + my_ip = socket.gethostbyname(socket.gethostname()) + parser = argparse.ArgumentParser( + description=%(import_target)s.__doc__, + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + parser.add_argument('--port', '-p', type=int, default=8000, + help='TCP port to listen on') + args = parser.parse_args() + server = wss.make_server('', args.port, %(invoke_target)s()) + + print("*" * 80) + print("STARTING test server %(module_name)s.%(invoke_target)s") + url = "http://%%s:%%d/" %% (my_ip, server.server_port) + print("Available at %%s" %% url) + print("DANGER! For testing only, do not use in production") + print("*" * 80) + + server.serve_forever() +else: + application = %(invoke_target)s() + +""" _script_text = """# PBR Generated from %(group)r @@ -225,16 +270,25 @@ """ +# the following allows us to specify different templates per entry +# point group when generating pbr scripts. +ENTRY_POINTS_MAP = { + 'console_scripts': _script_text, + 'gui_scripts': _script_text, + 'wsgi_scripts': _wsgi_text +} + + def override_get_script_args( dist, executable=os.path.normpath(sys.executable), is_wininst=False): """Override entrypoints console_script.""" header = easy_install.get_script_header("", executable, is_wininst) - for group in 'console_scripts', 'gui_scripts': + for group, template in ENTRY_POINTS_MAP.items(): for name, ep in dist.get_entry_map(group).items(): if not ep.attrs or len(ep.attrs) > 2: raise ValueError("Script targets must be of the form " "'func' or 'Class.class_method'.") - script_text = _script_text % dict( + script_text = template % dict( group=group, module_name=ep.module_name, import_target=ep.attrs[0], @@ -358,18 +412,22 @@ self.filelist.append(entry) +def _from_git(distribution): + option_dict = distribution.get_option_dict('pbr') + changelog = git._iter_log_oneline(option_dict=option_dict) + if changelog: + changelog = git._iter_changelog(changelog) + git.write_git_changelog(option_dict=option_dict, changelog=changelog) + git.generate_authors(option_dict=option_dict) + + class LocalSDist(sdist.sdist): """Builds the ChangeLog and Authors files from VC first.""" command_name = 'sdist' def run(self): - option_dict = self.distribution.get_option_dict('pbr') - changelog = git._iter_log_oneline(option_dict=option_dict) - if changelog: - changelog = git._iter_changelog(changelog) - git.write_git_changelog(option_dict=option_dict, changelog=changelog) - git.generate_authors(option_dict=option_dict) + _from_git(self.distribution) # sdist.sdist is an old style class, can't use super() sdist.sdist.run(self) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/tests/test_packaging.py new/pbr-1.5.0/pbr/tests/test_packaging.py --- old/pbr-1.3.0/pbr/tests/test_packaging.py 2015-07-10 23:32:31.000000000 +0200 +++ new/pbr-1.5.0/pbr/tests/test_packaging.py 2015-08-13 21:33:38.000000000 +0200 @@ -156,21 +156,23 @@ super(TestPackagingInGitRepoWithCommit, self).setUp() repo = self.useFixture(TestRepo(self.package_dir)) repo.commit() - self.run_setup('sdist', allow_fail=False) def test_authors(self): + self.run_setup('sdist', allow_fail=False) # One commit, something should be in the authors list with open(os.path.join(self.package_dir, 'AUTHORS'), 'r') as f: body = f.read() self.assertNotEqual(body, '') def test_changelog(self): + self.run_setup('sdist', allow_fail=False) with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: body = f.read() # One commit, something should be in the ChangeLog list self.assertNotEqual(body, '') def test_manifest_exclude_honoured(self): + self.run_setup('sdist', allow_fail=False) with open(os.path.join( self.package_dir, 'pbr_testpackage.egg-info/SOURCES.txt'), 'r') as f: @@ -179,6 +181,12 @@ body, matchers.Not(matchers.Contains('pbr_testpackage/extra.py'))) self.assertThat(body, matchers.Contains('pbr_testpackage/__init__.py')) + def test_install_writes_changelog(self): + stdout, _, _ = self.run_setup( + 'install', '--root', self.temp_dir + 'installed', + allow_fail=False) + self.expectThat(stdout, matchers.Contains('Generating ChangeLog')) + class TestPackagingInGitRepoWithoutCommit(base.BaseTestCase): @@ -204,18 +212,26 @@ def setUp(self): super(TestPackagingInPlainDirectory, self).setUp() - self.run_setup('sdist', allow_fail=False) def test_authors(self): + self.run_setup('sdist', allow_fail=False) # Not a git repo, no AUTHORS file created filename = os.path.join(self.package_dir, 'AUTHORS') self.assertFalse(os.path.exists(filename)) def test_changelog(self): + self.run_setup('sdist', allow_fail=False) # Not a git repo, no ChangeLog created filename = os.path.join(self.package_dir, 'ChangeLog') self.assertFalse(os.path.exists(filename)) + def test_install_no_ChangeLog(self): + stdout, _, _ = self.run_setup( + 'install', '--root', self.temp_dir + 'installed', + allow_fail=False) + self.expectThat( + stdout, matchers.Not(matchers.Contains('Generating ChangeLog'))) + class TestPresenceOfGit(base.BaseTestCase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/tests/test_wsgi.py new/pbr-1.5.0/pbr/tests/test_wsgi.py --- old/pbr-1.3.0/pbr/tests/test_wsgi.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pbr-1.5.0/pbr/tests/test_wsgi.py 2015-08-13 21:33:38.000000000 +0200 @@ -0,0 +1,171 @@ +# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. (HP) +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os +import re +import subprocess +import sys +import tempfile +import time +try: + # python 2 + from urllib2 import urlopen +except ImportError: + # python 3 + from urllib.request import urlopen + +import fixtures + +from pbr.tests import base + + +class TestWsgiScripts(base.BaseTestCase): + + cmd_names = ('pbr_test_wsgi', 'pbr_test_wsgi_with_class') + + def test_wsgi_script_install(self): + """Test that we install a non-pkg-resources wsgi script.""" + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + stdout, _, return_code = self.run_setup( + 'install', '--prefix=%s' % self.temp_dir) + + self.useFixture( + fixtures.EnvironmentVariable( + 'PYTHONPATH', ".:%s/lib/python%s.%s/site-packages" % ( + self.temp_dir, + sys.version_info[0], + sys.version_info[1]))) + + self._check_wsgi_install_content(stdout) + + def test_wsgi_script_run(self): + """Test that we install a runnable wsgi script. + + This test actually attempts to start and interact with the + wsgi script in question to demonstrate that it's a working + wsgi script using simple server. It's a bit hokey because of + process management that has to be done. + + """ + self.skipTest("Test skipped until we can determine a reliable " + "way to capture subprocess stdout without blocking") + + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + stdout, _, return_code = self.run_setup( + 'install', '--prefix=%s' % self.temp_dir) + + self.useFixture( + fixtures.EnvironmentVariable( + 'PYTHONPATH', ".:%s/lib/python%s.%s/site-packages" % ( + self.temp_dir, + sys.version_info[0], + sys.version_info[1]))) + # NOTE(sdague): making python unbuffered is critical to + # getting output out of the subprocess. + self.useFixture( + fixtures.EnvironmentVariable( + 'PYTHONUNBUFFERED', '1')) + + self._check_wsgi_install_content(stdout) + + # Live test run the scripts and see that they respond to wsgi + # requests. + self._test_wsgi() + + def _test_wsgi(self): + for cmd_name in self.cmd_names: + cmd = os.path.join(self.temp_dir, 'bin', cmd_name) + stdout = tempfile.NamedTemporaryFile() + print("Running %s > %s" % (cmd, stdout.name)) + # NOTE(sdague): ok, this looks a little janky, and it + # is. However getting python to not hang with + # popen.communicate is beyond me. + # + # We're opening with a random port (so no conflicts), and + # redirecting all stdout and stderr to files. We can then + # safely read these files and not deadlock later in the + # test. This requires shell expansion. + p = subprocess.Popen( + "%s -p 0 > %s 2>&1" % (cmd, stdout.name), + shell=True, + close_fds=True, + cwd=self.temp_dir) + + self.addCleanup(p.kill) + + # the sleep is important to force a context switch to the + # subprocess + time.sleep(0.1) + + stdoutdata = stdout.read() + self.assertIn( + "STARTING test server pbr_testpackage.wsgi", + stdoutdata) + self.assertIn( + "DANGER! For testing only, do not use in production", + stdoutdata) + + m = re.search('(http://[^:]+:\d+)/', stdoutdata) + self.assertIsNotNone(m, "Regex failed to match on %s" % stdoutdata) + + f = urlopen(m.group(1)) + self.assertEqual("Hello World", f.read()) + + # the sleep is important to force a context switch to the + # subprocess + time.sleep(0.1) + + # Kill off the child, it should force a flush of the stdout. + p.kill() + time.sleep(0.1) + + stdoutdata = stdout.read() + # we should have logged an HTTP request, return code 200, that + # returned 11 bytes + self.assertIn('"GET / HTTP/1.1" 200 11', stdoutdata) + + def _check_wsgi_install_content(self, install_stdout): + for cmd_name in self.cmd_names: + install_txt = 'Installing %s script to %s' % (cmd_name, + self.temp_dir) + self.assertIn(install_txt, install_stdout) + + cmd_filename = os.path.join(self.temp_dir, 'bin', cmd_name) + + script_txt = open(cmd_filename, 'r').read() + self.assertNotIn('pkg_resources', script_txt) + + main_block = """if __name__ == "__main__": + import argparse + import socket + import wsgiref.simple_server as wss""" + + if cmd_name == 'pbr_test_wsgi': + app_name = "main" + else: + app_name = "WSGI.app" + + starting_block = ("STARTING test server pbr_testpackage.wsgi." + "%s" % app_name) + + else_block = """else: + application = %s()""" % app_name + + self.assertIn(main_block, script_txt) + self.assertIn(starting_block, script_txt) + self.assertIn(else_block, script_txt) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/tests/testpackage/pbr_testpackage/wsgi.py new/pbr-1.5.0/pbr/tests/testpackage/pbr_testpackage/wsgi.py --- old/pbr-1.3.0/pbr/tests/testpackage/pbr_testpackage/wsgi.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pbr-1.5.0/pbr/tests/testpackage/pbr_testpackage/wsgi.py 2015-08-13 21:33:38.000000000 +0200 @@ -0,0 +1,31 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import print_function + + +def application(env, start_response): + start_response('200 OK', [('Content-Type', 'text/html')]) + return ["Hello World"] + + +def main(): + return application + + +class WSGI(object): + + @classmethod + def app(self): + return application diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr/tests/testpackage/setup.cfg new/pbr-1.5.0/pbr/tests/testpackage/setup.cfg --- old/pbr-1.3.0/pbr/tests/testpackage/setup.cfg 2015-07-10 23:32:30.000000000 +0200 +++ new/pbr-1.5.0/pbr/tests/testpackage/setup.cfg 2015-08-13 21:33:38.000000000 +0200 @@ -38,6 +38,10 @@ pbr_test_cmd = pbr_testpackage.cmd:main pbr_test_cmd_with_class = pbr_testpackage.cmd:Foo.bar +wsgi_scripts = + pbr_test_wsgi = pbr_testpackage.wsgi:main + pbr_test_wsgi_with_class = pbr_testpackage.wsgi:WSGI.app + [extension=pbr_testpackage.testext] sources = src/testext.c optional = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr.egg-info/PKG-INFO new/pbr-1.5.0/pbr.egg-info/PKG-INFO --- old/pbr-1.3.0/pbr.egg-info/PKG-INFO 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/pbr.egg-info/PKG-INFO 2015-08-13 21:33:57.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pbr -Version: 1.3.0 +Version: 1.5.0 Summary: Python Build Reasonableness Home-page: https://launchpad.net/pbr Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr.egg-info/SOURCES.txt new/pbr-1.5.0/pbr.egg-info/SOURCES.txt --- old/pbr-1.3.0/pbr.egg-info/SOURCES.txt 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/pbr.egg-info/SOURCES.txt 2015-08-13 21:33:57.000000000 +0200 @@ -64,6 +64,7 @@ pbr/tests/test_setup.py pbr/tests/test_util.py pbr/tests/test_version.py +pbr/tests/test_wsgi.py pbr/tests/util.py pbr/tests/testpackage/CHANGES.txt pbr/tests/testpackage/LICENSE.txt @@ -81,6 +82,7 @@ pbr/tests/testpackage/pbr_testpackage/_setup_hooks.py pbr/tests/testpackage/pbr_testpackage/cmd.py pbr/tests/testpackage/pbr_testpackage/extra.py +pbr/tests/testpackage/pbr_testpackage/wsgi.py pbr/tests/testpackage/pbr_testpackage/package_data/1.txt pbr/tests/testpackage/pbr_testpackage/package_data/2.txt pbr/tests/testpackage/src/testext.c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/pbr.egg-info/pbr.json new/pbr-1.5.0/pbr.egg-info/pbr.json --- old/pbr-1.3.0/pbr.egg-info/pbr.json 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/pbr.egg-info/pbr.json 2015-08-13 21:33:57.000000000 +0200 @@ -1 +1 @@ -{"git_version": "61a3a1e", "is_release": true} \ No newline at end of file +{"is_release": true, "git_version": "5c0bb91"} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/setup.cfg new/pbr-1.5.0/setup.cfg --- old/pbr-1.3.0/setup.cfg 2015-07-10 23:32:49.000000000 +0200 +++ new/pbr-1.5.0/setup.cfg 2015-08-13 21:33:57.000000000 +0200 @@ -53,7 +53,7 @@ universal = 1 [egg_info] -tag_svn_revision = 0 tag_build = +tag_svn_revision = 0 tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-1.3.0/test-requirements.txt new/pbr-1.5.0/test-requirements.txt --- old/pbr-1.3.0/test-requirements.txt 2015-07-10 23:32:31.000000000 +0200 +++ new/pbr-1.5.0/test-requirements.txt 2015-08-13 21:33:38.000000000 +0200 @@ -5,8 +5,7 @@ discover fixtures>=1.3.1 hacking<0.11,>=0.10.0 -mock>=1.0;python_version!='2.6' -mock==1.0.1;python_version=='2.6' +mock>=1.2 python-subunit>=0.0.18 sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 six>=1.9.0