Accepting request 507246 from devel:languages:python

1

OBS-URL: https://build.opensuse.org/request/show/507246
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pbr?expand=0&rev=29
This commit is contained in:
Dominique Leuenberger 2017-07-04 09:56:33 +00:00 committed by Git OBS Bridge
commit 58e34b978f
8 changed files with 56 additions and 150 deletions

View File

@ -1,101 +0,0 @@
From 2d7c0045f402b31d6223437ba25423eeb32278e1 Mon Sep 17 00:00:00 2001
From: Alfredo Moralejo <amoralej@redhat.com>
Date: Wed, 22 Mar 2017 04:56:56 -0400
Subject: [PATCH] Initialize sphinx config using application instead of config
Currently sphinx config is initialized using sphinx.config,
however in recent versions of Sphinx, plugin specific parameters
as man_pages for man builder has been moved to the extension
and is not initialized from sphinx.config but using sphinx.application.
This is making man_pages to be empty when using sphinx 1.5 and man
builder is not properly called.
This patch initializes sphinx config using sphinx.application which
works fine with both old and new Sphinx versions.
Closes-Bug: #1674795
Depends-On: I7bde8fc1f2a7db5bd73635aa197377bf5ac614d2
Change-Id: Ib7c1a6fe8fbb5acfcfcfac61d0b53f080ff2b1e4
---
pbr/builddoc.py | 17 ++++-------------
pbr/tests/test_setup.py | 6 +++++-
2 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/pbr/builddoc.py b/pbr/builddoc.py
index f51b283..4f05673 100644
--- a/pbr/builddoc.py
+++ b/pbr/builddoc.py
@@ -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 @@ except ImportError:
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
@@ -134,16 +131,6 @@ class LocalBuildDoc(setup_command.BuildDoc):
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',
@@ -153,6 +140,10 @@ class LocalBuildDoc(setup_command.BuildDoc):
self.builder_target_dir, self.doctree_dir,
self.builder, confoverrides, status_stream,
freshenv=self.fresh_env, warningiserror=self.warning_is_error)
+ sphinx_config = app.config
+ if self.builder == 'man' and len(
+ getattr(sphinx_config, 'man_pages', '')) == 0:
+ return
self.sphinx_initialized = True
try:
diff --git a/pbr/tests/test_setup.py b/pbr/tests/test_setup.py
index 0754a8d..0930e35 100644
--- a/pbr/tests/test_setup.py
+++ b/pbr/tests/test_setup.py
@@ -224,6 +224,10 @@ class GitLogsTest(base.BaseTestCase):
self.assertTrue(co_author in authors)
+class _SphinxConfig(object):
+ man_pages = ['foo']
+
+
class BaseSphinxTest(base.BaseTestCase):
def setUp(self):
@@ -234,7 +238,7 @@ class BaseSphinxTest(base.BaseTestCase):
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(
--
2.12.0

View File

@ -1,37 +0,0 @@
From ebd9ae850a18b26f37738a67b7e528896b249e40 Mon Sep 17 00:00:00 2001
From: Thomas Bechtold <tbechtold@suse.com>
Date: Thu, 9 Mar 2017 11:29:48 +0100
Subject: [PATCH] Make oslosphinx optional
Avoid cyclic dependencies between pbr and oslosphinx. So if oslosphinx is not
available, continue to be able to generate the documentation.
Change-Id: I4c1f8ea5cded268388dab29931055223f8999c8a
---
doc/source/conf.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 31003c1..f0a78ec 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -8,8 +8,14 @@ sys.path.insert(0, os.path.abspath('../..'))
# 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.
--
1.9.1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ccd2db529afd070df815b1521f01401d43de03941170f8a800e7531faba265d
size 98568

3
pbr-3.1.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:05f61c71aaefc02d8e37c0a3eeb9815ff526ea28b3b76324769e6158d7f95be1
size 102665

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Thu Jun 29 16:16:36 UTC 2017 - tbechtold@suse.com
- 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 - jmatejek@suse.com
- drop upstreamed make_oslosphinx_optional.patch
-------------------------------------------------------------------
Wed Mar 29 11:59:55 UTC 2017 - tbechtold@suse.com

View File

@ -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 @@ Group: Development/Languages/Python
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 @@ This package contains documentation files for python-pbr
%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

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Thu Jun 29 16:16:36 UTC 2017 - tbechtold@suse.com
- 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 - dmueller@suse.com
- 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
-------------------------------------------------------------------
Mon Apr 3 05:05:43 UTC 2017 - tbechtold@suse.com

View File

@ -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 @@ Group: Development/Languages/Python
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 @@ BuildRequires: python-rpm-macros
%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 @@ information.
%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