On 03/22/2018 05:43 AM, Stephen Finucane wrote:
On Wed, 2018-03-21 at 09:57 -0500, Sean McGinnis wrote:
On Wed, Mar 21, 2018 at 10:49:02AM +0000, Stephen Finucane wrote:
tl;dr: Make sure you stop using pbr's autodoc feature before converting
them to the new PTI for docs.

[snip]

I've gone through and proposed a couple of reverts to fix projects
we've already broken. However, going forward, there are two things
people should do to prevent issues like this popping up.

Unfortunately this will not work to just revert the changes. That may fix
things locally, but they will not pass in gate by going back to the old way.

Any cases of this will have to actually be updated to not use the unsupported
pieces you point out. But the doc builds will still need to be done the way
they are now, as that is what the PTI requires at this point.

That's unfortunate. What we really need is a migration path from the
'pbr' way of doing things to something else. I see three possible
avenues at this point in time:

    1. Start using 'sphinx.ext.autosummary'. Apparently this can do similar
       things to 'sphinx-apidoc' but it takes the form of an extension.
       From my brief experiments, the output generated from this is
       radically different and far less comprehensive than what 'sphinx-
       apidoc' generates. However, it supports templating so we could
       probably configure this somehow and add our own special directive
       somewhere like 'openstackdocstheme'
    2. Push for the 'sphinx.ext.apidoc' extension I proposed some time back
       against upstream Sphinx [1]. This essentially does what the PBR
       extension does but moves configuration into 'conf.py'. However, this
       is currently held up as I can't adequately explain the differences
       between this and 'sphinx.ext.autosummary' (there's definite overlap
       but I don't understand 'autosummary' well enough to compare them).
    3. Modify the upstream jobs that detect the pbr integration and have
       them run 'sphinx-apidoc' before 'sphinx-build'. This is the least
       technically appealing approach as it still leaves us unable to build
       stuff locally and adds yet more "magic" to the gate, but it does let
       us progress.

I'd suggest a #4:

Take the sphinx.ext.apidoc extension and make it a standalone extension people can add to doc/requirements.txt and conf.py. That way we don't have to convince the sphinx folks to land it.

I'd been thinking for a while "we should just write a sphinx extension with the pbr logic in it" - but hadn't gotten around to doing anything about it. If you've already written that extension - I think we're in potentially great shape!

Try as I may, I don't really have the bandwidth to work on this for
another few weeks so I'd appreciate help from anyone with sufficient
Sphinx-fu to come up with a long-term solution to this issue.



Cheers,
Stephen

[1] https://github.com/sphinx-doc/sphinx/pull/4101/files

  * Firstly, you should remove the '[build_sphinx]' and '[pbr]' sections
    from 'setup.cfg' in any patches that aim to convert a project to use
    the new PTI. This will ensure the gate catches any potential
    issues.
  * In addition, if your project uses the pbr autodoc feature, you
    should either (a) remove these docs from your documentation tree or
    (b) migrate to something else like the 'sphinx.ext.autosummary'
    extension [5]. I aim to post instructions on the latter shortly.

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to