Hello community, here is the log from the commit of package python-pbr for openSUSE:Factory checked in at 2017-07-04 11:56:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pbr (Old) and /work/SRC/openSUSE:Factory/.python-pbr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pbr" Tue Jul 4 11:56:33 2017 rev:29 rq:507246 version:3.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pbr/python-pbr-doc.changes 2017-04-19 18:06:49.571787337 +0200 +++ /work/SRC/openSUSE:Factory/.python-pbr.new/python-pbr-doc.changes 2017-07-04 11:56:35.464595048 +0200 @@ -1,0 +2,16 @@ +Thu Jun 29 16:16:36 UTC 2017 - [email protected] + +- update to 3.1.1: + * Restore previous IP binding + * allow user to override the output location of api docs + * fix tests based on API change in Sphinx + * Updated from global requirements + * Add binding option for WSGI server + * Ignore index URL lines in requirements.txt files + +------------------------------------------------------------------- +Fri Jun 23 15:21:37 UTC 2017 - [email protected] + +- drop upstreamed make_oslosphinx_optional.patch + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/python-pbr/python-pbr.changes 2017-04-19 18:06:49.699769234 +0200 +++ /work/SRC/openSUSE:Factory/.python-pbr.new/python-pbr.changes 2017-07-04 11:56:35.752554524 +0200 @@ -1,0 +2,35 @@ +Thu Jun 29 16:16:36 UTC 2017 - [email protected] + +- update to 3.1.1: + * Restore previous IP binding + * allow user to override the output location of api docs + * fix tests based on API change in Sphinx + * Updated from global requirements + * Add binding option for WSGI server + * Ignore index URL lines in requirements.txt files + +------------------------------------------------------------------- +Thu May 18 11:36:19 UTC 2017 - [email protected] + +- Update to pbr-3.0.1: + * builddoc: uses the new Sphinx 1.6 code for multiple builder + * Updated from global requirements + * Fix missing comment from previous change + * trivial: Add note about multiple builders support + * Remove 'build\_sphinx\_latex' + * Stop building man pages by default + * docs: Use definition lists + * add image.nonlocal\_uri to the list of warnings ignored + * doc: Document Sphinx integration + * add changelog to published documentation + * Lazy import pkg\_resources + * Add Changelog build handling for invalid chars + * Initialize sphinx config using application instead of config + * Make oslosphinx optional + * Updated from global requirements + * Also generate XML coverage report + * Update to a newer hacking library +- drop 0001-Initialize-sphinx-config-using-application-instead-o.patch + Upstream + +------------------------------------------------------------------- Old: ---- 0001-Initialize-sphinx-config-using-application-instead-o.patch make_oslosphinx_optional.patch pbr-2.0.0.tar.gz New: ---- pbr-3.1.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pbr-doc.spec ++++++ --- /var/tmp/diff_new_pack.rwR1az/_old 2017-07-04 11:56:36.652427887 +0200 +++ /var/tmp/diff_new_pack.rwR1az/_new 2017-07-04 11:56:36.656427325 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pbr-doc -Version: 2.0.0 +Version: 3.1.1 Release: 0 Summary: Documentation for python-pbr License: Apache-2.0 @@ -26,8 +26,6 @@ Url: http://pypi.python.org/pypi/pbr Source: https://files.pythonhosted.org/packages/source/p/pbr/pbr-%{version}.tar.gz Source1: python-pbr-rpmlintrc -# make_oslosphinx_optional.patch - https://review.openstack.org/#/c/443555/ -Patch1: make_oslosphinx_optional.patch BuildRequires: fdupes # Documentation requirements: BuildRequires: python3-Sphinx >= 1.1.2 @@ -41,7 +39,6 @@ %prep %setup -q -n pbr-%{version} -%patch1 -p1 # Get rid of ugly build-time deps that require network: sed -i "s/, 'sphinx\.ext\.intersphinx'//" doc/source/conf.py ++++++ python-pbr.spec ++++++ --- /var/tmp/diff_new_pack.rwR1az/_old 2017-07-04 11:56:36.692422259 +0200 +++ /var/tmp/diff_new_pack.rwR1az/_new 2017-07-04 11:56:36.700421134 +0200 @@ -22,7 +22,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pbr -Version: 2.0.0 +Version: 3.1.1 Release: 0 Summary: Python Build Reasonableness License: Apache-2.0 @@ -30,8 +30,6 @@ Url: http://pypi.python.org/pypi/pbr Source: https://files.pythonhosted.org/packages/source/p/pbr/pbr-%{version}.tar.gz Source1: python-pbr-rpmlintrc -# PATCH-FIX-UPSTREAM 0001-Initialize-sphinx-config-using-application-instead-o.patch~- https://review.openstack.org/#/c/448455/ -Patch1: 0001-Initialize-sphinx-config-using-application-instead-o.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module pip >= 1.4} BuildRequires: fdupes @@ -40,7 +38,6 @@ %if %{with test} #BuildRequires: python-coverage >= 3.6 BuildRequires: %{python_module fixtures >= 1.3.1} -BuildRequires: %{python_module hacking >= 0.9.2} BuildRequires: %{python_module mock >= 1.2} BuildRequires: %{python_module python-subunit >= 0.0.18} BuildRequires: %{python_module six >= 1.9.0} @@ -67,7 +64,6 @@ %prep %setup -q -n pbr-%{version} -%patch1 -p1 # Get rid of ugly build-time deps that require network: sed -i "s/, 'sphinx\.ext\.intersphinx'//" doc/source/conf.py ++++++ pbr-2.0.0.tar.gz -> pbr-3.1.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/AUTHORS new/pbr-3.1.1/AUTHORS --- old/pbr-2.0.0/AUTHORS 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/AUTHORS 2017-06-21 11:44:14.000000000 +0200 @@ -1,6 +1,8 @@ +A40351 <[email protected]> Akihiro Motoki <[email protected]> Alex Gaynor <[email protected]> Alexander Makarov <[email protected]> +Alfredo Moralejo <[email protected]> Andreas Jaeger <[email protected]> Andrew Bogott <[email protected]> Angus Salkeld <[email protected]> @@ -35,6 +37,7 @@ Erik M. Bray <[email protected]> Eugene Kirpichov <[email protected]> Florian Wilhelm <[email protected]> +Gage Hugo <[email protected]> Gary Kotton <[email protected]> Giampaolo Lauria <[email protected]> Ian Cordasco <[email protected]> @@ -65,7 +68,9 @@ Maru Newby <[email protected]> Masaki Matsushita <[email protected]> Matt Riedemann <[email protected]> +Matthew Montgomery <[email protected]> Matthew Treinish <[email protected]> +Mehdi Abaakouk <[email protected]> Michael Basnight <[email protected]> Michael Still <[email protected]> Mike Heald <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/ChangeLog new/pbr-3.1.1/ChangeLog --- old/pbr-2.0.0/ChangeLog 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/ChangeLog 2017-06-21 11:44:14.000000000 +0200 @@ -1,12 +1,56 @@ CHANGES ======= +3.1.1 +----- + +* Restore previous IP binding + +3.1.0 +----- + +* allow user to override the output location of api docs +* fix tests based on API change in Sphinx +* Updated from global requirements +* Add binding option for WSGI server +* Ignore index URL lines in requirements.txt files + +3.0.1 +----- + +* builddoc: uses the new Sphinx 1.6 code for multiple builder +* Updated from global requirements +* Fix missing comment from previous change +* trivial: Add note about multiple builders support + +3.0.0 +----- + +* Remove 'build\_sphinx\_latex' +* Stop building man pages by default +* docs: Use definition lists +* add image.nonlocal\_uri to the list of warnings ignored +* doc: Document Sphinx integration +* add changelog to published documentation + +2.1.0 +----- + +* Lazy import pkg\_resources +* Add Changelog build handling for invalid chars +* Initialize sphinx config using application instead of config +* Make oslosphinx optional +* Updated from global requirements +* Also generate XML coverage report +* Update to a newer hacking library + 2.0.0 ----- * tox: Don't set skipsdist=True * Stop using 'warnerrors' * doc: Clarify sections in 'setup.cfg' +* Remove testr entry point * Updated from global requirements * Remove discover from test-requirements * Add Constraints support @@ -61,7 +105,7 @@ * package: fix wrong catch in email parsing * Sort 'pbr freeze' output * Do not convert git tags when searching history -* Include wsgi_scripts in generated wheels +* Include wsgi\_scripts in generated wheels * Correct the indentation in the classifiers example * Do not silently drop markers that fail to evaluate * Clarifications around tags and version numbers @@ -95,7 +139,7 @@ ----- * Handle the case where cmd.distribution has no pbr attribute -* test_integration cleanups +* test\_integration cleanups * Remove redundant testscenarios glue * Add standard code coverage configuration file * Add shields.io version/downloads links/badges into README.rst @@ -109,7 +153,7 @@ 1.7.0 ----- -* Have pbr egg_info.writer check PBR is enabled +* Have pbr egg\_info.writer check PBR is enabled 1.6.0 ----- @@ -132,7 +176,7 @@ * Updated from global requirements * Updated from global requirements * Show how long the git querying takes -* Add wsgi_scripts support to PBR +* Add wsgi\_scripts support to PBR * Updated from global requirements 1.3.0 @@ -141,9 +185,9 @@ * Wrap env markers in parens * Updated from global requirements * Add more documentation around building docs -* Expose a 'rpm_version' extra command +* Expose a 'rpm\_version' extra command * Updated from global requirements -* Use string for 'OS_TEST_TIMEOUT' default +* Use string for 'OS\_TEST\_TIMEOUT' default * Updated from global requirements * This documents the use of comments that work between 2.6, 2.7 and 3.4 @@ -151,20 +195,20 @@ ----- * Strip markers from test requirements -* Add build_sphinx test coverage +* Add build\_sphinx test coverage 1.1.1 ----- -* Revert "Remove sphinx_config.init_values() manual call" +* Revert "Remove sphinx\_config.init\_values() manual call" 1.1.0 ----- * Fix test case to be runnable with gnupg 2.1 -* More explicit data_files install location docs +* More explicit data\_files install location docs * Move CapturedSubprocess fixture to base -* Remove sphinx_config.init_values() manual call +* Remove sphinx\_config.init\_values() manual call * Updated from global requirements * builddoc: allow to use fnmatch-style exclusion for autodoc * doc: add some basic doc about pbr doc options @@ -174,7 +218,7 @@ 1.0.1 ----- -* Remove self.pre_run calls in packaging.py +* Remove self.pre\_run calls in packaging.py * Add kerberos deps to build the kerberos wheel * Update hacking to 0.10.x series @@ -192,7 +236,7 @@ ------ * Issue #1450210: Preversioning rc tag handling -* Stop testing setup.py easy_install behaviour +* Stop testing setup.py easy\_install behaviour * Test pip install -e of projects * Build all the wheels in one pass rather than many * Improve integration.sh @@ -220,8 +264,8 @@ 0.10.7 ------ -* _get_revno only returns a commit count -* Move write_pbr_json to avoid issues with nose +* \_get\_revno only returns a commit count +* Move write\_pbr\_json to avoid issues with nose * Properly check for git before getting git dir * Port in git sha changes from 0.10 line @@ -233,7 +277,7 @@ 0.10.5 ------ -* Move write_pbr_json to avoid issues with nose +* Move write\_pbr\_json to avoid issues with nose 0.10.4 ------ @@ -260,7 +304,7 @@ * Add user.name to git config in tests * Honour validly tagged versions * autodoc: allow to exclude modules from auto-generation -* tests: factorize has_opt handling +* tests: factorize has\_opt handling * Support reading versions from wheels * Only consider tags that look like versions * Refactor oneline changelog walking @@ -271,7 +315,7 @@ * Allow for inclusion of authors and changelog when building docs * Work toward Python 3.4 support and testing * Accept capitalized Sem-Ver headers -* use get_boolean_option for warnerrors +* use get\_boolean\_option for warnerrors * Handle more legacy version numbers * Look for and process sem-ver pseudo headers in git * Raise an error if preversion versions are too low @@ -297,7 +341,7 @@ * Restore Monkeypatched Distribution Instance * Register testr as a distutil entry point * Check for git before querying it for a version -* Allow _run_cmd to run commands in any directory +* Allow \_run\_cmd to run commands in any directory * Make setUp fail if sdist fails * Permit pre-release versions with git metadata * Un-nest some sections of code @@ -311,7 +355,7 @@ 0.8.1 ----- -* pbr/testr_command.py: Add logging +* pbr/testr\_command.py: Add logging * Documentation updates * Fixed a typo in the documentation * Make source configurable when using --coverage @@ -322,7 +366,7 @@ 0.8.0 ----- -* Use unicode_literals import instead of u'unicode' notation +* Use unicode\_literals import instead of u'unicode' notation * Add support for nested requirements files * Remove pip version specifier * Make tools/integration.sh take a branch @@ -332,14 +376,14 @@ 0.7.0 ----- -* Factor run_cmd out of the base class -* Return the real class in VersionInfo __repr__ +* Factor run\_cmd out of the base class +* Return the real class in VersionInfo \_\_repr\_\_ * Fix up some docstrings * Init sphinx config values before accessing them * Remove copyright from empty files * Declare support for Python versions in setup.cfg * Updated from global requirements -* Remove unused _parse_mailmap() +* Remove unused \_parse\_mailmap() * Add support for python 3-<3.3 * Remove tox locale overrides * Do not force log verbosity level to info @@ -378,7 +422,7 @@ 0.5.22 ------ -* Move base test case logic out of __init__.py +* Move base test case logic out of \_\_init\_\_.py * Comply with pep440 * Prevent ordereddict installation on 2.7 * Do not pass unicode where byte strings are wanted @@ -386,8 +430,8 @@ * Get rid of PyPI URL override in integration test * Add a test for command registration * Switch away from tearDown for BaseTests -* Fix test_changelog when git isn't globally setup -* Rework run_shell_command +* Fix test\_changelog when git isn't globally setup +* Rework run\_shell\_command * Update tox config to use latest upgrades * Add a hint for users who don't have git installed * Add pypy to tox.ini @@ -403,16 +447,16 @@ 0.5.21 ------ -* Replace setuptools_git with a smarter approach +* Replace setuptools\_git with a smarter approach * Clean up some style warnings * Consume the OpenStack mirror by default * Correct typo * Improve AUTHORS file generation -* Ensure _run_shell_command always returns same type +* Ensure \_run\_shell\_command always returns same type * Hierarchical sphinx API documentation generation * Add support for classmethod console scripts -* Add skip_pip_install to setup.cfg -* Remove missing_reuqires optimization +* Add skip\_pip\_install to setup.cfg +* Remove missing\_reuqires optimization * Use the same logic everywhere for requirements files 0.5.20 @@ -423,14 +467,14 @@ * Install jeepyb and requirements from REPODIR * Stop trying to install old pip and setuptools * Add support for globbing in data files -* Revert include_package_data change -* Also patch easy_install script creation +* Revert include\_package\_data change +* Also patch easy\_install script creation * Loop over test output for better readability * Add more documentation * We force installs via pip, we should declare it * Fix python 3.3 tests -* Replace entry_points console_scripts -* Fix integer_types type under python 3 +* Replace entry\_points console\_scripts +* Fix integer\_types type under python 3 * Remove the need to specify the pbr hook * Move d2to1 more into the source tree * Set defaults directly in option processing @@ -477,7 +521,7 @@ 0.5.15 ------ -* Use pip instead of easy_install for installation +* Use pip instead of easy\_install for installation * Skip git-checkout related tests when .git is missing * Refactor hooks file @@ -489,7 +533,7 @@ 0.5.12 ------ -* Explicitly install install_requires +* Explicitly install install\_requires * More python3 compatibility * python3: Use six everywhere * Add vim and emacs files to .gitignore @@ -502,7 +546,7 @@ * Fix author and changelog skipping * Fix doc autoindexing -* Changed _get_git_directory() to use git itself +* Changed \_get\_git\_directory() to use git itself * python3: Python3.x compatibility * Cosmetic doc fixes * Make parse errors meaningful @@ -529,7 +573,7 @@ 0.5.6 ----- -* Using __file__ was getting the wrong location +* Using \_\_file\_\_ was getting the wrong location * Add support for configuring pbr sphinx options * Add support for warnings=errors * Fix authors generation from co-authored-by @@ -554,7 +598,7 @@ * Put stdout capture in the base test class * Amended README testing instructions * Update README with test running instructions -* Move setup_requires to setup_requires_dist +* Move setup\_requires to setup\_requires\_dist * Move sphinx to test-reuqirements * Deal with Sphinx import ordering * Add a better todo comment @@ -569,7 +613,7 @@ * Fix things up to work with nova * Split out oslo.packaging * Fix two minor style things -* Fixes #20. Make sure the manifest_maker monkeypatch only occurs once and that it gets all its required locals encapsulated. This is why I hate any sort of monkey-patching, but it appears to be the only way to get this feature working +* Fixes #20. Make sure the manifest\_maker monkeypatch only occurs once and that it gets all its required locals encapsulated. This is why I hate any sort of monkey-patching, but it appears to be the only way to get this feature working * Fix 'except as' statements that were breaking things in Python 2.5 * Somehow neglected to include extra-file.txt used in the test for #15. Also moved the info log message that was causing othere tests to fail to only appear when commands are run that actually affect the manifest generation * Yet another Python 2.5 fix; I really ought to just set up my own 2.5 installation @@ -577,9 +621,9 @@ * Adds six.py and makes the necessary tweaks to improve support for using d2to1 natively across Python versions * Fix 'except as' statements that were breaking things in Python 2.5 * Somehow neglected to include extra-file.txt used in the test for #15. Also moved the info log message that was causing othere tests to fail to only appear when commands are run that actually affect the manifest generation -* Adds support for the tests_require keyword from setuptools. Tested by eating our own dogfood -- ./setup.py test now works for d2to1's own setup +* Adds support for the tests\_require keyword from setuptools. Tested by eating our own dogfood -- ./setup.py test now works for d2to1's own setup * support test suite and test tests-require -* Patch manifest_maker to support extra_files--this is really the only way I can see to do this at all sensibly +* Patch manifest\_maker to support extra\_files--this is really the only way I can see to do this at all sensibly * This is a test that should really work to test this feature * openstack.common.setup: fails to get version from git * Use oslo-config-2013.1b3 @@ -590,7 +634,7 @@ * Remove openstack.common.db.common * Add missing DBDuplicateEntry * Import sqlalchemy session/models/utils -* Implements import_group +* Implements import\_group * Fix Pep8 Warning * Fixes "is not", "not in" syntax usage * setup: count revs for revno if there are no tags @@ -599,8 +643,8 @@ * Use revno and git sha for pre-release versioning * Add env var version override for packagers * trivial pep whitespace fix -* Remove write_requirements -* Rolling back to previous version of resolve_name; it's possible this can fail in the presence of a broken namespace package, but I want to make sure that's the case before trying to fix it +* Remove write\_requirements +* Rolling back to previous version of resolve\_name; it's possible this can fail in the presence of a broken namespace package, but I want to make sure that's the case before trying to fix it * Stop using no longer valid -E option for pip * oops - now compatible with python 3 * use regexp to parse the mailmap @@ -621,7 +665,7 @@ * Add deprecated --logfile common opt * Allow nova and others to override some logging defaults * Fixing the trim for ListOp when reading from config file -* Fix set_default() with boolean CLI options +* Fix set\_default() with boolean CLI options * Rename utils.py to strutils.py * Improve cfg's argparse sub-parsers support * Make project pyflakes clean @@ -630,15 +674,15 @@ * Hide the GroupAttr conf and group attributes * Fix broken --help with CommonConfigOpts * updating sphinx documentation -* Don't reference argparse._StoreAction +* Don't reference argparse.\_StoreAction * Fix minor coding style issue * Remove ConfigCliParser class * Add support for positional arguments * Use stock argparse behaviour for optional args * Use stock argparse --usage behaviour * Use stock argparse --version behaviour -* Remove add_option() method -* Completely remove cfg's disable_interspersed_args() +* Remove add\_option() method +* Completely remove cfg's disable\_interspersed\_args() * argparse support for cfg * Remove openstack.common.config and extensions * Fixes setup compatibility issue on Windows @@ -649,41 +693,41 @@ * cfg: fix required if option has a dash * Fix a couple of file handle leaks, using with statements * Ignore the stackforge jenkins email address -* Extracted parse_host_port into network_utils +* Extracted parse\_host\_port into network\_utils * Add the rpc service and delete manager * Some changes I made weeks ago but forgot to commit * Added a method for parsing host:port pairs * Add basic periodic task infrastructure * Move manager.py and service.py into common * cfg: clean up None value handling -* Allow set_default and set_override to use None +* Allow set\_default and set\_override to use None * Tilde expansion for --config-file and --config-dir * Add multiple-driver support to the notifier api * Fix errors reported by pyflakes -* Add import_opt() method to ConfigOpts +* Add import\_opt() method to ConfigOpts * Remove unused imports -* Modifies _is_opt_registered fcn to check for duplicate opts +* Modifies \_is\_opt\_registered fcn to check for duplicate opts * fix bug lp:1019348,update openstack-common to support pep8 1.3 * cfg: allow empty config values -* Add SKIP_GENERATE_AUTHORS option to setup.py -* Add SKIP_WRITE_GIT_CHANGELOG option to setup.py +* Add SKIP\_GENERATE\_AUTHORS option to setup.py +* Add SKIP\_WRITE\_GIT\_CHANGELOG option to setup.py * Fix missing gettextutils in several modules * Fix up pre-versioning based on testing in glance * cfg: Fix typo in documentation * Fix mailmap -* Split read_versioninfo into a method +* Split read\_versioninfo into a method * Add common logging and notification * Add support for tag based versioning * Skip argparse when injecting requirements * Update common code to support pep 1.3. bug 1014216 -* Add autodoc generation to the build_sphinx command +* Add autodoc generation to the build\_sphinx command * Use 'is not None' instead of '!= None' * Adds support for bol and eol spaces to ini files * Add support to include config aliases * Create testutils with skip decorators * cfg: add a global CONF object * cfg: add generators for iterating over all options -* cfg: move constructor args to __call__() args +* cfg: move constructor args to \_\_call\_\_() args * Added support for proper bare URLs * Backslash continuation removal (common folsom-1) * Alphabetize imports in openstack/common/cfg.py @@ -693,26 +737,26 @@ * cfg: use a list comprehension instead of map() * Encapsulate common sdist actions into a cmdclass * Truly handle mailmap entries for all combinations -* New ConfigOpts.find_file() for locating conf files +* New ConfigOpts.find\_file() for locating conf files * Handle authors existed before VCS was around * Support for directory source of config files * Provide file extension when when looking for files * Some refactoring of the cfg cache * Add caching to openstack.common.cfg * Add AUTHORS generation function -* Change behavior in utils.import_object() -* Move auth_str_equal() to a new authutils module +* Change behavior in utils.import\_object() +* Move auth\_str\_equal() to a new authutils module * Create openstack.common.timeutils * Typofix, OptionGroup should be OptGroup * Use absolute import for iniparser * Make 'yes' also a true boolean * Finish implementing MultiStrOpt * Avoid leaking secrets into config logging -* Add auth_str_equal() to common utils +* Add auth\_str\_equal() to common utils * Fix bug 954488 * fix restructuredtext formatting in docstrings -* Add ConfigOpts.print_help() -* Fixes a bug where entry_points in a setup.py are blanked out if there are no entry points defined in setup.cfg +* Add ConfigOpts.print\_help() +* Fixes a bug where entry\_points in a setup.py are blanked out if there are no entry points defined in setup.cfg * Promote more complete support for ISO 8601 time * cfg: fix a small comment typo * Several changes that I accidentally committed to d2to1's old repository. See the changes to the changelog for more details @@ -731,18 +775,18 @@ * Add support to cfg for disabling interspersed args * Add new cfg module * import should not return an instance of the class -* use isinstance and types.* -* make fix_path a real function so it can be mock'd +* use isinstance and types.\* +* make fix\_path a real function so it can be mock'd * remove unused imports * merge in upstream * port execute and utcnow functions from nova -* pull parse_mailmap str_dict_replace from nova +* pull parse\_mailmap str\_dict\_replace from nova * reog from import merge * Rajaram/Vinkesh|Default xmlns for extension serialization can be overriden, added default factory for extension middleware * Rajaram/Vinkesh | Copied tests for wsgi from nova. Added default content/accept types in Request which can be overridden by projects. Copied tests for XML serialization of Extension Controller's action from nova * Rajaram/Vinkesh | Fixed the extension bug where custom collection actions' routes in resource extension were not getting registered * Vinkesh/Rajaram|Added nova's extension framework into common and tests for it -* Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback +* Rajaram|renamed AppBaseException to OpenstackException and app\_config\_dir\_name to config\_dir as per jaypipes' feedback * Rajaram/Vinkesh | Removed references to Glance in code * Adding syslog support * Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/PKG-INFO new/pbr-3.1.1/PKG-INFO --- old/pbr-2.0.0/PKG-INFO 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/PKG-INFO 2017-06-21 11:44:14.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pbr -Version: 2.0.0 +Version: 3.1.1 Summary: Python Build Reasonableness Home-page: http://docs.openstack.org/developer/pbr/ Author: OpenStack @@ -42,6 +42,7 @@ * Documentation: http://docs.openstack.org/developer/pbr * Source: http://git.openstack.org/cgit/openstack-dev/pbr * Bugs: http://bugs.launchpad.net/pbr + * Change Log: https://docs.openstack.org/developer/pbr/history.html .. _d2to1: https://pypi.python.org/pypi/d2to1 .. _distutils2: https://pypi.python.org/pypi/Distutils2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/README.rst new/pbr-3.1.1/README.rst --- old/pbr-2.0.0/README.rst 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/README.rst 2017-06-21 11:41:48.000000000 +0200 @@ -34,6 +34,7 @@ * Documentation: http://docs.openstack.org/developer/pbr * Source: http://git.openstack.org/cgit/openstack-dev/pbr * Bugs: http://bugs.launchpad.net/pbr +* Change Log: https://docs.openstack.org/developer/pbr/history.html .. _d2to1: https://pypi.python.org/pypi/d2to1 .. _distutils2: https://pypi.python.org/pypi/Distutils2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/doc/source/conf.py new/pbr-3.1.1/doc/source/conf.py --- old/pbr-2.0.0/doc/source/conf.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/doc/source/conf.py 2017-06-21 11:41:48.000000000 +0200 @@ -8,8 +8,14 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', - 'oslosphinx'] +extensions = ['sphinx.ext.autodoc'] +# make oslosphinx optional to not increase the needed dependencies +try: + import oslosphinx +except ImportError: + pass +else: + extensions.append('oslosphinx') # autodoc generation is a bit aggressive and a nuisance when doing heavy # text edit cycles. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/doc/source/history.rst new/pbr-3.1.1/doc/source/history.rst --- old/pbr-2.0.0/doc/source/history.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pbr-3.1.1/doc/source/history.rst 2017-06-21 11:41:48.000000000 +0200 @@ -0,0 +1,5 @@ +================= + Release History +================= + +.. include:: ../../ChangeLog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/doc/source/index.rst new/pbr-3.1.1/doc/source/index.rst --- old/pbr-2.0.0/doc/source/index.rst 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/doc/source/index.rst 2017-06-21 11:41:48.000000000 +0200 @@ -201,6 +201,7 @@ keywords = setup distutils + [files] packages = pbr @@ -209,18 +210,19 @@ etc/init = pbr.packaging.conf pbr.version.conf + [entry_points] console_scripts = pbr = pbr.cmd:main pbr.config.drivers = plain = pbr.cfg.driver:Plain -pbr provides its own section in these documents, ostensibly called `pbr`. Most -other sections are provided by setuptools and may influence either the build -itself or the output of various `setuptools commands`__. The remaining sections -are provided by libraries that provide setuptools extensions, such as -`extract_mesages` (provided by `Babel`__) or `sphinx_build` (provided by -`Sphinx`__). Some of these are described below. +`pbr` provides its own section in these documents, ostensibly called ``pbr``, +and provides a custom version of Sphinx's ``build_sphinx`` section. Most other +sections are provided by setuptools and may influence either the build itself +or the output of various `setuptools commands`__. The remaining sections are +provided by libraries that provide setuptools extensions, such as +``extract_mesages`` (provided by `Babel`__). Some of these are described below. __ https://setuptools.readthedocs.io/en/latest/setuptools.html#command-reference __ http://babel.pocoo.org/en/latest/setup.html @@ -248,57 +250,82 @@ using three fundamental keys: ``packages``, ``namespace_packages``, and ``data_files``. -``packages`` is a list of top-level packages that should be installed. The -behavior of packages is similar to ``setuptools.find_packages`` in that it -recurses the python package hierarchy below the given top level and installs -all of it. If ``packages`` is not specified, it defaults to the value of the -``name`` field given in the ``[metadata]`` section. - -``namespace_packages`` is the same, but is a list of packages that provide -namespace packages. - -``data_files`` lists files to be installed. The format is an indented block -that contains key value pairs which specify target directory and source file -to install there. More than one source file for a directory may be indicated -with a further indented list. Source files are stripped of leading directories. -Additionally, `pbr` supports a simple file globbing syntax for installing -entire directory structures, thus:: - - [files] - data_files = - etc/pbr = etc/pbr/* - etc/neutron = - etc/api-paste.ini - etc/dhcp-agent.ini - etc/init.d = neutron.init - -will result in `/etc/neutron` containing `api-paste.ini` and `dhcp-agent.ini`, -both of which pbr will expect to find in the `etc` directory in the root of -the source tree. Additionally, `neutron.init` from that dir will be installed -in `/etc/init.d`. All of the files and directories located under `etc/pbr` in -the source tree will be installed into `/etc/pbr`. - -Note that this behavior is relative to the effective root of the environment -into which the packages are installed, so depending on available permissions -this could be the actual system-wide `/etc` directory or just a top-level `etc` -subdirectory of a virtualenv. +``packages`` + + A list of top-level packages that should be installed. The behavior of + packages is similar to ``setuptools.find_packages`` in that it recurses the + python package hierarchy below the given top level and installs all of it. If + ``packages`` is not specified, it defaults to the value of the ``name`` field + given in the ``[metadata]`` section. + +``namespace_packages`` + + Similar to ``packages``, but is a list of packages that provide namespace + packages. + +``data_files`` + + A list of files to be installed. The format is an indented block that + contains key value pairs which specify target directory and source file to + install there. More than one source file for a directory may be indicated + with a further indented list. Source files are stripped of leading + directories. Additionally, `pbr` supports a simple file globbing syntax for + installing entire directory structures, thus:: + + [files] + data_files = + etc/pbr = etc/pbr/* + etc/neutron = + etc/api-paste.ini + etc/dhcp-agent.ini + etc/init.d = neutron.init + + will result in `/etc/neutron` containing `api-paste.ini` and `dhcp-agent.ini`, + both of which pbr will expect to find in the `etc` directory in the root of + the source tree. Additionally, `neutron.init` from that dir will be installed + in `/etc/init.d`. All of the files and directories located under `etc/pbr` in + the source tree will be installed into `/etc/pbr`. + + Note that this behavior is relative to the effective root of the environment + into which the packages are installed, so depending on available permissions + this could be the actual system-wide `/etc` directory or just a top-level + `etc` subdirectory of a virtualenv. pbr ~~~ -The ``pbr`` section controls pbr specific options and behaviours. +The ``pbr`` section controls `pbr` specific options and behaviours. + +``autodoc_tree_index_modules`` + + A boolean option controlling whether `pbr` should generate an index of + modules using `sphinx-apidoc`. By default, all files except `setup.py` are + included, but this can be overridden using the ``autodoc_tree_excludes`` + option. + +``autodoc_tree_excludes`` + + A list of modules to exclude when building documentation using + `sphinx-apidoc`. Defaults to ``[setup.py]``. Refer to the `sphinx-apidoc man + page`_ for more information. + +``autodoc_index_modules`` + + A boolean option controlling whether `pbr` should itself generates + documentation for Python modules of the project. By default, all found Python + modules are included; some of them can be excluded by listing them in + ``autodoc_exclude_modules``. + +``autodoc_exclude_modules`` -The ``autodoc_tree_index_modules`` is a boolean option controlling whether pbr -should generate an index of modules using ``sphinx-apidoc``. By default, -`setup.py` is excluded. The list of excluded modules can be specified with the -``autodoc_tree_excludes`` option. See the `sphinx-apidoc man page`_ for more -information. - -The ``autodoc_index_modules`` is a boolean option controlling whether `pbr` -should itself generates documentation for Python modules of the project. By -default, all found Python modules are included; some of them can be excluded -by listing them in ``autodoc_exclude_modules``. This list of modules can -contains `fnmatch` style pattern (e.g. `myapp.tests.*`) to exclude some modules. + A list of modules to exclude when building module documentation using `pbr`. + `fnmatch` style pattern (e.g. `myapp.tests.*`) can be used. + +``api_doc_dir`` + + A subdirectory inside the ``build_sphinx.source_dir`` where + auto-generated API documentation should be written, if + ``autodoc_index_modules`` is set to True. Defaults to ``"api"``. .. note:: @@ -310,6 +337,69 @@ set. See the `Sphinx build configuration file`_ documentation for more information on configuring Sphinx. +.. versionchanged:: 2.0 + + The ``pbr`` section used to take a ``warnerrors`` option that would enable + the ``-W`` (Turn warnings into errors.) option when building Sphinx. This + feature was broken in 1.10 and was removed in pbr 2.0 in favour of the + ``[build_sphinx] warning-is-error`` provided in Sphinx 1.5+. + +build_sphinx +~~~~~~~~~~~~ + +The ``build_sphinx`` section is a version of the ``build_sphinx`` setuptools +plugin provided with Sphinx. This plugin extends the original plugin to add the +following: + +- Automatic generation of module documentation using the apidoc__ tool + +- Automatic configuration of the `project`, `version` and `release` settings + using information from `pbr` itself + +- Support for multiple builders using the ``builders`` configuration option + + .. note:: + + Sphinx 1.6 adds support for multiple builders using the default `builder` + option. You should refer to this file for more information. + +The version of ``build_sphinx`` provided by `pbr` provides a single additional +option. + +``builders`` + + A space or comma separated list of builders to run. For example, to build + both HTML and man page documentation, you would define the following in your + `setup.cfg`: + + .. code-block:: ini + + [build_sphinx] + builders = html,man + source-dir = doc/source + build-dir = doc/build + all-files = 1 + +``source_dir`` + + The path to the source directory where the Sphinx documentation tree + is. + +For information on the remaining options, refer to the `Sphinx +documentation`__. In addition, the ``autodoc_index_modules``, +``autodoc_tree_index_modules``, ``autodoc_exclude_modules`` and +``autodoc_tree_excludes`` options in the ``pbr`` section will affect the output +of the automatic module documentation generation. + +.. versionchanged:: 3.0 + + The ``build_sphinx`` plugin used to default to building both HTML and man + page output. This is no longer the case, and you should explicitly set + ``builders`` to ``html man`` if you wish to retain this behavior. + +__ http://www.sphinx-doc.org/en/stable/man/sphinx-apidoc.html +__ http://www.sphinx-doc.org/en/stable/setuptools.html + entry_points ~~~~~~~~~~~~ @@ -390,6 +480,53 @@ testing = quux:python_version=='2.7' + +Testing +------- + +`pbr` overrides the ``setuptools`` hook ``test`` (i.e. ``setup.py test``). The +following sequence is followed: + +#. If a ``.testr.conf`` file exists and `testrepository + <https://pypi.python.org/pypi/testrepository>`__ is installed, `pbr` + will use it as the test runner. See the ``testr`` documentation + for more details. + + .. note:: + + This is separate to ``setup.py testr`` (note the extra ``r``) which + is provided directly by the ``testrepository`` package. Be careful + as there is some overlap of command arguments. + +#. Although deprecated, if ``[nosetests]`` is defined in ``setup.cfg`` + and `nose <http://nose.readthedocs.io/en/latest/>`__ is installed, + the ``nose`` runner will be used. + +#. In other cases no override will be installed and the ``test`` + command will revert to `setuptools + <http://setuptools.readthedocs.io/en/latest/setuptools.html#test-build-package-and-run-a-unittest-suite>`__. + +A typical usage would be in ``tox.ini`` such as:: + + [tox] + minversion = 2.0 + skipsdist = True + envlist = py33,py34,py35,py26,py27,pypy,pep8,docs + + [testenv] + usedevelop = True + setenv = + VIRTUAL_ENV={envdir} + CLIENT_NAME=pbr + deps = . + -r{toxinidir}/test-requirements.txt + commands = + python setup.py test --testr-args='{posargs}' + +The argument ``--coverage`` will set ``PYTHON`` to ``coverage run`` to +produce a coverage report. ``--coverage-package-name`` can be used to +modify or narrow the packages traced. + Additional Docs =============== @@ -401,6 +538,7 @@ testing compatibility api/modules + history Indices and tables ================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/builddoc.py new/pbr-3.1.1/pbr/builddoc.py --- old/pbr-2.0.0/pbr/builddoc.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/builddoc.py 2017-06-21 11:41:48.000000000 +0200 @@ -17,9 +17,7 @@ from distutils import log import fnmatch import os -import pkg_resources import sys -import warnings try: import cStringIO @@ -29,7 +27,6 @@ try: from sphinx import apidoc from sphinx import application - from sphinx import config from sphinx import setup_command except Exception as e: # NOTE(dhellmann): During the installation of docutils, setuptools @@ -66,16 +63,19 @@ class LocalBuildDoc(setup_command.BuildDoc): - builders = ['html', 'man'] + builders = ['html'] command_name = 'build_sphinx' sphinx_initialized = False def _get_source_dir(self): option_dict = self.distribution.get_option_dict('build_sphinx') + pbr_option_dict = self.distribution.get_option_dict('pbr') + _, api_doc_dir = pbr_option_dict.get('api_doc_dir', (None, 'api')) if 'source_dir' in option_dict: - source_dir = os.path.join(option_dict['source_dir'][1], 'api') + source_dir = os.path.join(option_dict['source_dir'][1], + api_doc_dir) else: - source_dir = 'doc/source/api' + source_dir = 'doc/source/' + api_doc_dir if not os.path.exists(source_dir): os.makedirs(source_dir) return source_dir @@ -134,20 +134,12 @@ confoverrides['release'] = self.release if self.today: confoverrides['today'] = self.today - sphinx_config = config.Config(self.config_dir, 'conf.py', {}, []) - sphinx_ver = pkg_resources.parse_version( - pkg_resources.get_distribution("sphinx").version) - if sphinx_ver > pkg_resources.parse_version('1.2.3'): - sphinx_config.init_values(warnings.warn) - else: - sphinx_config.init_values() - if self.builder == 'man' and len( - getattr(sphinx_config, 'man_pages', '')) == 0: - return if self.sphinx_initialized: confoverrides['suppress_warnings'] = [ 'app.add_directive', 'app.add_role', - 'app.add_generic_role', 'app.add_node'] + 'app.add_generic_role', 'app.add_node', + 'image.nonlocal_uri', + ] app = application.Sphinx( self.source_dir, self.config_dir, self.builder_target_dir, self.doctree_dir, @@ -194,6 +186,14 @@ "autodoc_exclude_modules", [None, ""])[1].split())) + # TODO(stephenfin): Deprecate this functionality once we depend on + # Sphinx 1.6, which includes a similar feature, in g-r + # https://github.com/sphinx-doc/sphinx/pull/3476 + self.finalize_options() + if hasattr(self, "builder_target_dirs"): + # Sphinx >= 1.6.1 + return setup_command.BuildDoc.run(self) + # Sphinx < 1.6 for builder in self.builders: self.builder = builder self.finalize_options() @@ -234,8 +234,3 @@ # handle Sphinx < 1.5.0 if not hasattr(self, 'warning_is_error'): self.warning_is_error = False - - -class LocalBuildLatex(LocalBuildDoc): - builders = ['latex'] - command_name = 'build_sphinx_latex' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/git.py new/pbr-3.1.1/pbr/git.py --- old/pbr-2.0.0/pbr/git.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/git.py 2017-06-21 11:41:48.000000000 +0200 @@ -143,6 +143,26 @@ return None +def _clean_changelog_message(msg): + """Cleans any instances of invalid sphinx wording. + + This escapes/removes any instances of invalid characters + that can be interpreted by sphinx as a warning or error + when translating the Changelog into an HTML file for + documentation building within projects. + + * Escapes '_' which is interpreted as a link + * Escapes '*' which is interpreted as a new line + * Escapes '`' which is interpreted as a literal + """ + + msg = msg.replace('*', '\*') + msg = msg.replace('_', '\_') + msg = msg.replace('`', '\`') + + return msg + + def _iter_changelog(changelog): """Convert a oneline log iterator to formatted strings. @@ -166,6 +186,7 @@ if not msg.startswith("Merge "): if msg.endswith("."): msg = msg[:-1] + msg = _clean_changelog_message(msg) yield current_release, "* %(msg)s\n" % dict(msg=msg) first_line = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/hooks/commands.py new/pbr-3.1.1/pbr/hooks/commands.py --- old/pbr-2.0.0/pbr/hooks/commands.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/hooks/commands.py 2017-06-21 11:41:48.000000000 +0200 @@ -49,7 +49,6 @@ if packaging.have_sphinx(): self.add_command('pbr.builddoc.LocalBuildDoc') - self.add_command('pbr.builddoc.LocalBuildLatex') if os.path.exists('.testr.conf') and packaging.have_testr(): # There is a .testr.conf file. We want to use it. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/packaging.py new/pbr-3.1.1/pbr/packaging.py --- old/pbr-2.0.0/pbr/packaging.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/packaging.py 2017-06-21 11:41:49.000000000 +0200 @@ -102,6 +102,10 @@ if (not line.strip()) or line.startswith('#'): continue + # Ignore index URL lines + if re.match(r'^\s*(-i|--index-url|--extra-index-url).*', line): + continue + # Handle nested requirements files such as: # -r other-requirements.txt if line.startswith('-r'): @@ -282,12 +286,15 @@ import wsgiref.simple_server as wss my_ip = socket.gethostbyname(socket.gethostname()) + parser = argparse.ArgumentParser( description=%(import_target)s.__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter, - usage='%%(prog)s [-h] [--port PORT] -- [passed options]') + usage='%%(prog)s [-h] [--port PORT] [--host IP] -- [passed options]') parser.add_argument('--port', '-p', type=int, default=8000, help='TCP port to listen on') + parser.add_argument('--host', '-b', default='', + help='IP to bind the server to') parser.add_argument('args', nargs=argparse.REMAINDER, metavar='-- [passed options]', @@ -301,11 +308,11 @@ else: parser.error("unrecognized arguments: %%s" %% ' '.join(args.args)) sys.argv[1:] = args.args - server = wss.make_server('', args.port, %(invoke_target)s()) + server = wss.make_server(args.host, 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) + url = "http://%%s:%%d/" %% (server.server_name, server.server_port) print("Available at %%s" %% url) print("DANGER! For testing only, do not use in production") print("*" * 80) @@ -536,11 +543,9 @@ # Import the symbols from their new home so the package API stays # compatible. LocalBuildDoc = builddoc.LocalBuildDoc - LocalBuildLatex = builddoc.LocalBuildLatex except ImportError: _have_sphinx = False LocalBuildDoc = None - LocalBuildLatex = None def have_sphinx(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/testr_command.py new/pbr-3.1.1/pbr/testr_command.py --- old/pbr-2.0.0/pbr/testr_command.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/testr_command.py 2017-06-21 11:41:48.000000000 +0200 @@ -26,16 +26,18 @@ # license you chose for the specific language governing permissions and # limitations under that license. -"""setuptools/distutils commands to run testr via setup.py +"""setuptools/distutils command to run testr via setup.py + +PBR will hook in the Testr class to provide "setup.py test" when +.testr.conf is present in the repository (see pbr/hooks/commands.py). + +If we are activated but testrepository is not installed, we provide a +sensible error. + +You can pass --coverage which will also export PYTHON='coverage run +--source <your package>' and automatically combine the coverage from +each testr backend test runner after the run completes. -Currently provides 'testr' which runs tests using testr. You can pass ---coverage which will also export PYTHON='coverage run --source <your package>' -and automatically combine the coverage from each testr backend test runner -after the run completes. - -To use, just use setuptools/distribute and depend on testr, and it should be -picked up automatically (as the commands are exported in the testrepository -package metadata. """ from distutils import cmd @@ -133,6 +135,7 @@ logger.debug("_coverage_after called") os.system("coverage combine") os.system("coverage html -d ./cover %s" % self.omit) + os.system("coverage xml -o ./cover/coverage.xml %s" % self.omit) class TestrFake(cmd.Command): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/tests/test_packaging.py new/pbr-3.1.1/pbr/tests/test_packaging.py --- old/pbr-2.0.0/pbr/tests/test_packaging.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/tests/test_packaging.py 2017-06-21 11:41:48.000000000 +0200 @@ -270,8 +270,8 @@ def setUp(self): super(TestPackagingInGitRepoWithCommit, self).setUp() - repo = self.useFixture(TestRepo(self.package_dir)) - repo.commit() + self.repo = self.useFixture(TestRepo(self.package_dir)) + self.repo.commit() def test_authors(self): self.run_setup('sdist', allow_fail=False) @@ -287,6 +287,29 @@ # One commit, something should be in the ChangeLog list self.assertNotEqual(body, '') + def test_changelog_handles_astrisk(self): + self.repo.commit(message_content="Allow *.openstack.org to work") + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertIn('\*', body) + + def test_changelog_handles_dead_links_in_commit(self): + self.repo.commit(message_content="See os_ for to_do about qemu_.") + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertIn('os\_', body) + self.assertIn('to\_do', body) + self.assertIn('qemu\_', body) + + def test_changelog_handles_backticks(self): + self.repo.commit(message_content="Allow `openstack.org` to `work") + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertIn('\`', body) + def test_manifest_exclude_honoured(self): self.run_setup('sdist', allow_fail=False) with open(os.path.join( @@ -463,6 +486,19 @@ self.assertEqual(False, git._git_is_installed()) +class TestIndexInRequirements(base.BaseTestCase): + + def test_index_in_requirement(self): + tempdir = tempfile.mkdtemp() + requirements = os.path.join(tempdir, 'requirements.txt') + with open(requirements, 'w') as f: + f.write('-i https://myindex.local') + f.write(' --index-url https://myindex.local') + f.write(' --extra-index-url https://myindex.local') + result = packaging.parse_requirements([requirements]) + self.assertEqual([], result) + + class TestNestedRequirements(base.BaseTestCase): def test_nested_requirement(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/tests/test_setup.py new/pbr-3.1.1/pbr/tests/test_setup.py --- old/pbr-2.0.0/pbr/tests/test_setup.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/tests/test_setup.py 2017-06-21 11:41:48.000000000 +0200 @@ -165,7 +165,7 @@ self.assertIn("------", changelog_contents) self.assertIn("Refactor hooks file", changelog_contents) self.assertIn( - "Bug fix: create_stack() fails when waiting", + "Bug fix: create\_stack() fails when waiting", changelog_contents) self.assertNotIn("Refactor hooks file.", changelog_contents) self.assertNotIn("182feb3", changelog_contents) @@ -179,7 +179,7 @@ self.assertNotIn("ev)il", changelog_contents) self.assertNotIn("e(vi)l", changelog_contents) self.assertNotIn('Merge "', changelog_contents) - self.assertNotIn('1_foo.1', changelog_contents) + self.assertNotIn('1\_foo.1', changelog_contents) def test_generate_authors(self): author_old = u"Foo Foo <[email protected]>" @@ -224,17 +224,29 @@ self.assertTrue(co_author in authors) +class _SphinxConfig(object): + man_pages = ['foo'] + + class BaseSphinxTest(base.BaseTestCase): def setUp(self): super(BaseSphinxTest, self).setUp() + # setup_command requires the Sphinx instance to have some + # attributes that aren't set normally with the way we use the + # class (because we replace the constructor). Add default + # values directly to the class definition. + import sphinx.application + sphinx.application.Sphinx.messagelog = [] + sphinx.application.Sphinx.statuscode = 0 + self.useFixture(fixtures.MonkeyPatch( "sphinx.application.Sphinx.__init__", lambda *a, **kw: None)) self.useFixture(fixtures.MonkeyPatch( "sphinx.application.Sphinx.build", lambda *a, **kw: None)) self.useFixture(fixtures.MonkeyPatch( - "sphinx.config.Config.man_pages", ['foo'])) + "sphinx.application.Sphinx.config", _SphinxConfig)) self.useFixture(fixtures.MonkeyPatch( "sphinx.config.Config.init_values", lambda *a: None)) self.useFixture(fixtures.MonkeyPatch( @@ -304,9 +316,8 @@ build_doc = packaging.LocalBuildDoc(self.distr) build_doc.finalize_options() - self.assertEqual(2, len(build_doc.builders)) + self.assertEqual(1, len(build_doc.builders)) self.assertIn('html', build_doc.builders) - self.assertIn('man', build_doc.builders) build_doc = packaging.LocalBuildDoc(self.distr) build_doc.builders = '' @@ -365,6 +376,78 @@ self.assertEqual(["builder1", "builder2"], build_doc.builders) +class APIAutoDocTest(base.BaseTestCase): + + def setUp(self): + super(APIAutoDocTest, self).setUp() + + # setup_command requires the Sphinx instance to have some + # attributes that aren't set normally with the way we use the + # class (because we replace the constructor). Add default + # values directly to the class definition. + import sphinx.application + sphinx.application.Sphinx.messagelog = [] + sphinx.application.Sphinx.statuscode = 0 + + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.__init__", lambda *a, **kw: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.build", lambda *a, **kw: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.config", _SphinxConfig)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.config.Config.init_values", lambda *a: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.config.Config.__init__", lambda *a: None)) + from distutils import dist + self.distr = dist.Distribution() + self.distr.packages = ("fake_package",) + self.distr.command_options["build_sphinx"] = { + "source_dir": ["a", "."]} + self.sphinx_options = self.distr.command_options["build_sphinx"] + pkg_fixture = fixtures.PythonPackage( + "fake_package", [("fake_module.py", b""), + ("another_fake_module_for_testing.py", b""), + ("fake_private_module.py", b"")]) + self.useFixture(pkg_fixture) + self.useFixture(base.DiveDir(pkg_fixture.base)) + self.pbr_options = self.distr.command_options.setdefault('pbr', {}) + self.pbr_options["autodoc_index_modules"] = ('setup.cfg', 'True') + + def test_default_api_build_dir(self): + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.run() + + print('PBR OPTIONS:', self.pbr_options) + print('DISTR OPTIONS:', self.distr.command_options) + + self.assertTrue(os.path.exists("api/autoindex.rst")) + self.assertTrue(os.path.exists("api/fake_package.fake_module.rst")) + self.assertTrue( + os.path.exists( + "api/fake_package.fake_private_module.rst")) + self.assertTrue( + os.path.exists( + "api/fake_package.another_fake_module_for_testing.rst")) + + def test_different_api_build_dir(self): + # Options have to come out of the settings dict as a tuple + # showing the source and the value. + self.pbr_options['api_doc_dir'] = (None, 'contributor/api') + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.run() + + print('PBR OPTIONS:', self.pbr_options) + print('DISTR OPTIONS:', self.distr.command_options) + + self.assertTrue(os.path.exists("contributor/api/autoindex.rst")) + self.assertTrue( + os.path.exists("contributor/api/fake_package.fake_module.rst")) + self.assertTrue( + os.path.exists( + "contributor/api/fake_package.fake_private_module.rst")) + + class ParseRequirementsTestScenarios(base.BaseTestCase): versioned_scenarios = [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr/version.py new/pbr-3.1.1/pbr/version.py --- old/pbr-2.0.0/pbr/version.py 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/pbr/version.py 2017-06-21 11:41:48.000000000 +0200 @@ -22,8 +22,6 @@ import operator import sys -import pkg_resources - def _is_int(string): try: @@ -435,6 +433,9 @@ record associated with the package, and if there is no such record falls back to the logic sdist would use. """ + # Lazy import because pkg_resources is costly to import so defer until + # we absolutely need it. + import pkg_resources try: requirement = pkg_resources.Requirement.parse(self.package) provider = pkg_resources.get_provider(requirement) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr.egg-info/PKG-INFO new/pbr-3.1.1/pbr.egg-info/PKG-INFO --- old/pbr-2.0.0/pbr.egg-info/PKG-INFO 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/pbr.egg-info/PKG-INFO 2017-06-21 11:44:14.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pbr -Version: 2.0.0 +Version: 3.1.1 Summary: Python Build Reasonableness Home-page: http://docs.openstack.org/developer/pbr/ Author: OpenStack @@ -42,6 +42,7 @@ * Documentation: http://docs.openstack.org/developer/pbr * Source: http://git.openstack.org/cgit/openstack-dev/pbr * Bugs: http://bugs.launchpad.net/pbr + * Change Log: https://docs.openstack.org/developer/pbr/history.html .. _d2to1: https://pypi.python.org/pypi/d2to1 .. _distutils2: https://pypi.python.org/pypi/Distutils2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr.egg-info/SOURCES.txt new/pbr-3.1.1/pbr.egg-info/SOURCES.txt --- old/pbr-2.0.0/pbr.egg-info/SOURCES.txt 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/pbr.egg-info/SOURCES.txt 2017-06-21 11:44:14.000000000 +0200 @@ -12,6 +12,7 @@ tox.ini doc/source/compatibility.rst doc/source/conf.py +doc/source/history.rst doc/source/index.rst doc/source/packagers.rst doc/source/semver.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/pbr.egg-info/entry_points.txt new/pbr-3.1.1/pbr.egg-info/entry_points.txt --- old/pbr-2.0.0/pbr.egg-info/entry_points.txt 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/pbr.egg-info/entry_points.txt 2017-06-21 11:44:14.000000000 +0200 @@ -1,9 +1,6 @@ [console_scripts] pbr = pbr.cmd.main:main -[distutils.commands] -testr = pbr.testr_command:Testr - [distutils.setup_keywords] pbr = pbr.core:pbr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/setup.cfg new/pbr-3.1.1/setup.cfg --- old/pbr-2.0.0/setup.cfg 2017-03-01 04:32:42.000000000 +0100 +++ new/pbr-3.1.1/setup.cfg 2017-06-21 11:44:14.000000000 +0200 @@ -41,8 +41,6 @@ [entry_points] distutils.setup_keywords = pbr = pbr.core:pbr -distutils.commands = - testr = pbr.testr_command:Testr egg_info.writers = pbr.json = pbr.pbr_json:write_pbr_json console_scripts = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/test-requirements.txt new/pbr-3.1.1/test-requirements.txt --- old/pbr-2.0.0/test-requirements.txt 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/test-requirements.txt 2017-06-21 11:41:48.000000000 +0200 @@ -1,12 +1,12 @@ # The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -coverage>=4.0 # Apache-2.0 +coverage!=4.4,>=4.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD -hacking<0.11,>=0.10.0 +hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 mock>=2.0 # BSD python-subunit>=0.0.18 # Apache-2.0/BSD -sphinx>=1.5.1 # BSD +sphinx!=1.6.1,>=1.5.1 # BSD oslosphinx>=4.7.0 # Apache-2.0 six>=1.9.0 # MIT testrepository>=0.0.18 # Apache-2.0/BSD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-2.0.0/tox.ini new/pbr-3.1.1/tox.ini --- old/pbr-2.0.0/tox.ini 2017-03-01 04:31:14.000000000 +0100 +++ new/pbr-3.1.1/tox.ini 2017-06-21 11:41:48.000000000 +0200 @@ -11,7 +11,7 @@ CLIENT_NAME=pbr deps = -r{toxinidir}/test-requirements.txt commands = - python setup.py testr --testr-args='{posargs}' + python setup.py test --testr-args='{posargs}' [tox:jenkins] sitepackages = True @@ -24,7 +24,7 @@ [testenv:cover] commands = - python setup.py testr --coverage + python setup.py test --coverage [testenv:venv] commands = {posargs}
