[openstack-dev] [requirements][FFE] oslosphinx

Tony Breeds tony at bakeyournoodle.com
Mon Sep 5 03:56:18 UTC 2016


On Sat, Sep 03, 2016 at 05:12:27PM +0200, Ondrej Novy wrote:
> Hi,
> 
> https://review.openstack.org/365253
> 
> released newton version of python-swiftclient 3.1.0 requires newer version
> of oslosphinx. Without it, docs can't be built.
> 
> So i prepared fix:
> https://review.openstack.org/#/c/365239/1
> 
> But gating says: no, you should update global requirements first. So I'm
> doing it.
> 
> Please consider granting an exception. Thanks.

I think we need a little more detail.

As I understand it the issue is that projects which set 'show_other_versions' in
html_theme_options will fail to build if it gets oslosphinx < 4.7.0.  A quick
look at [1] shows that this is only python-swiftclient.

More generally however the docs *are* building because we always get
oslosphinx 4.7.0 [2] So this review is about correctness rather than fixing a
breakage.

Please correct any of the above if I have it wrong.

I'll outline our options on the assumption that I'm reasonably close in my
problem analysis.

From my POV we have a few options:

1) Grant the FFE
   Here are some stats about oslosphinx:
        Package    : oslosphinx [oslosphinx!=3.4.0,>=2.5.0] (used by 223 projects)
   Taking review 365253 would force a minor semver bump a release of 76
   projects + and deeper dependencies in libraries.  Server/service projects
   will get the requirements bump in RC1.  This has a pretty major impact on
   the release team at a time they're trying to stabilise things.

2) Fix it on master when the freeze is lifted
   As I said the docs are building for python-swiftclient, so we could
   acknowledge that we have a problem and fix it for master.  Newton will always
   be broken but I think we've missed the boat on raising the minimum here due
   to the scale of the impact.  We can't fix it on stable/newton as that's
   against the stable-policy.

3) Add a hack to python-swiftclient work around the problem.
   This is a terrible and I admit it's papering over an issue with out
tools/process but we could do something like:
---
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 5af77b2..f72b8d5 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -111,7 +111,14 @@ pygments_style = 'sphinx'
 # documentation.
 # html_theme_options = {}
 
-html_theme_options = {'show_other_versions': True}
+from pkg_resources import get_distribution, parse_version
+
+oslosphinx_installed = parse_version(get_distribution('oslosphinx').version)
+
+if oslosphinx_installed >= parse_version('4.7.0'):
+    html_theme_options = {'show_other_versions': True}
+else:
+    html_theme_options = {}
---

My opinion is that option 2 is the least worst, taking option 3 will be up to
the swift and oslo teams.


Yours Tony.

[1] http://codesearch.openstack.org/?q=show_other_versions&i=nope&files=&repos=
[2] Because:
    1) The projects supports constraints and gets 4.7.0 ; or
    2) The projects is unconstrained and pip picks the latest (4.7.0)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160905/0941aa8a/attachment.pgp>


More information about the OpenStack-dev mailing list