[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