canonical / sphinx-docs-starter-pack

A documentation starter-pack
https://canonical-starter-pack.readthedocs-hosted.com/
Other
15 stars 37 forks source link

Reduce the number of "required" extensions/dependencies #140

Closed dviererbe closed 7 months ago

dviererbe commented 10 months ago

This is a tracking issue for the discussion in Riga to reduce the number of "required" extensions/dependencies

Reasoning: The Ubuntu packaging guide wants to create a .deb package out of the built html/epub/pdf files so that they can be consumed offline. Therefore every dependencies needs to be packaged.

Vendored dependencies that are included with the source are technically possible, but against the Debian Packaging philosophy/culture and therefore also problematic to get uploaded.

dviererbe commented 9 months ago

The goal for the 24.04 LTS Noble Numbat cycle is to have the Ubuntu Packaging Guide packaged for noble.

After that I would like to also have it in trusty, xenial, bionic, focal, jammy and Debian stable. The problem here is that often enough the packages either do not exist or are ancient. Additionaly, it is unlikely that the SRU team will let us upgarde ancient packages. I think that I am fine with having vendorized dependencies for these packages. New packages should be no problem for the SRU team, but new packages have to be maintained by someone :/

Let's go over the required dependencies (note that I only list Ubuntu LTS series and Debian stable in the summaries):

furo

Summary

pypi.org

Version: 2023.9.10 See: https://pypi.org/project/furo/

Ubuntu

rmadison furo
 furo | 2022.12.07+dfsg-1 | lunar/universe  | source, all
 furo | 2023.07.26+dfsg-1 | mantic/universe | source, all
 furo | 2023.09.10+dfsg-2 | noble/universe  | source, all

See also: https://launchpad.net/ubuntu/+source/furo

Debian

rmadison -u debian furo
furo       | 2022.12.07+dfsg-1 | stable     | source, all
furo       | 2023.09.10+dfsg-2 | testing    | source, all
furo       | 2023.09.10+dfsg-2 | unstable   | source, all

See also: https://tracker.debian.org/pkg/furo

linkify-it-py

Summary

pypi.org

Version: 2.0.2 See: https://pypi.org/project/linkify-it-py/

Ubuntu

rmadison linkify-it-py
linkify-it-py | 2.0.0-1 | lunar/universe  | source
linkify-it-py | 2.0.2-2 | mantic/universe | source
linkify-it-py | 2.0.2-2 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/linkify-it-py

Debian

rmadison -u debian linkify-it-py
linkify-it-py | 2.0.0-1       | stable     | source
linkify-it-py | 2.0.2-2       | testing    | source
linkify-it-py | 2.0.2-2       | unstable   | source

See also: https://tracker.debian.org/pkg/linkify-it-py

lxd-sphinx-extensions

Summary:

pypi.org

Version: 0.0.15 See: https://pypi.org/project/lxd-sphinx-extensions/

Ubuntu

:heavy_exclamation_mark: Not found

Debian

:heavy_exclamation_mark: Not found

myst-parser

Summary

pypi.org

Version: 2.0.0 See: https://pypi.org/project/myst-parser/

Ubuntu

rmadison myst-parser
myst-parser | 0.16.1-3 | jammy/universe  | source
myst-parser | 0.18.1-2 | lunar/universe  | source
myst-parser | 2.0.0-1  | mantic/universe | source
myst-parser | 2.0.0-1  | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/myst-parser

Debian

rmadison -u debian myst-parser
myst-parser | 0.18.1-2      | stable     | source
myst-parser | 2.0.0-1       | testing    | source
myst-parser | 2.0.0-1       | unstable   | source

See also: https://tracker.debian.org/pkg/myst-parser

pyspelling

Summary:

pypi.org

Version: 2.9 See: https://pypi.org/project/pyspelling/

Ubuntu

:heavy_exclamation_mark: Not found

Debian

:heavy_exclamation_mark: Not found

sphinx

Summary

pypi.org

Version: 7.2.6 See: https://pypi.org/project/sphinx/

Ubuntu

rmadison sphinx
 sphinx | 1.2.2+dfsg-1ubuntu1   | trusty         | source
 sphinx | 1.2.2+dfsg-1ubuntu1.1 | trusty-updates | source
 sphinx | 1.3.6-2ubuntu1        | xenial         | source
 sphinx | 1.3.6-2ubuntu1.2      | xenial-updates | source
 sphinx | 1.6.7-1ubuntu1        | bionic         | source
 sphinx | 1.8.5-7ubuntu3        | focal          | source
 sphinx | 4.3.2-1               | jammy          | source
 sphinx | 5.3.0-4               | lunar          | source
 sphinx | 5.3.0-7               | mantic         | source
 sphinx | 7.2.6-2               | noble          | source

See also: https://launchpad.net/ubuntu/+source/sphinx

Debian

rmadison -u debian sphinx
sphinx     | 1.8.4-1       | oldoldstable | source
sphinx     | 3.4.3-2       | oldstable    | source
sphinx     | 5.3.0-4       | stable       | source
sphinx     | 7.2.6-2       | testing      | source
sphinx     | 7.2.6-2       | unstable     | source

See also: https://tracker.debian.org/pkg/sphinx

sphinx-autobuild

Summary

pypi.org

Version: 2021.3.14 See: https://pypi.org/project/sphinx-autobuild/

Ubuntu

rmadison sphinx-autobuild
sphinx-autobuild | 0.7.1-2     | focal/universe  | source
sphinx-autobuild | 2021.3.14-2 | jammy/universe  | source
sphinx-autobuild | 2021.3.14-3 | lunar/universe  | source
sphinx-autobuild | 2021.3.14-3 | mantic/universe | source
sphinx-autobuild | 2021.3.14-3 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinx-autobuild

Debian

rmadison -u debian sphinx-autobuild
sphinx-autobuild | 0.7.1-2       | oldoldstable | source
sphinx-autobuild | 0.7.1-2.1     | oldstable    | source
sphinx-autobuild | 2021.3.14-3   | stable       | source
sphinx-autobuild | 2021.3.14-3   | testing      | source
sphinx-autobuild | 2021.3.14-3   | unstable     | source

See also: https://tracker.debian.org/pkg/sphinx-autobuild

sphinx-copybutton

Summary

pypi.org

Version: 0.5.2 See: https://pypi.org/project/sphinx-copybutton/

Ubuntu

rmadison sphinx-copybutton
sphinx-copybutton | 0.2.5-1.1 | focal/universe  | source
sphinx-copybutton | 0.4.0-3   | jammy/universe  | source
sphinx-copybutton | 0.4.0-4   | lunar/universe  | source
sphinx-copybutton | 0.4.0-4   | mantic/universe | source
sphinx-copybutton | 0.4.0-4   | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinx-copybutton

Debian

rmadison -u debian sphinx-copybutton
sphinx-copybutton | 0.3.1-1       | oldstable  | source
sphinx-copybutton | 0.4.0-4       | stable     | source
sphinx-copybutton | 0.4.0-4       | testing    | source
sphinx-copybutton | 0.4.0-4       | unstable   | source

See also: https://tracker.debian.org/pkg/sphinx-copybutton

sphinx-design

Summary

pypi.org

Version: 0.5.0 See: https://pypi.org/project/sphinx-design/

Ubuntu

rmadison sphinx-design
sphinx-design | 0.3.0-2 | lunar/universe  | source
sphinx-design | 0.5.0-1 | mantic/universe | source
sphinx-design | 0.5.0-1 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinx-design

Debian

rmadison -u debian sphinx-design
sphinx-design | 0.5.0-1       | testing    | source
sphinx-design | 0.5.0-1       | unstable   | source

See also: https://tracker.debian.org/pkg/sphinx-design

sphinx-notfound-page

Summary

pypi.org

Version: 1.0.0 See: https://pypi.org/project/sphinx-notfound-page/

Ubuntu

rmadison sphinx-notfound-page
sphinx-notfound-page | 0.8-1   | jammy/universe  | source
sphinx-notfound-page | 0.8.3-2 | lunar/universe  | source
sphinx-notfound-page | 0.8.3-2 | mantic/universe | source
sphinx-notfound-page | 1.0.0-1 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinx-notfound-page

Debian

rmadison -u debian sphinx-notfound-page
sphinx-notfound-page | 0.8.3-2~bpo11+1 | bullseye-backports | source
sphinx-notfound-page | 0.8.3-2         | stable             | source
sphinx-notfound-page | 1.0.0-1         | testing            | source
sphinx-notfound-page | 1.0.0-1         | unstable           | source

See also: https://tracker.debian.org/pkg/sphinx-notfound-page

sphinx-reredirects

Summary

pypi.org

Version: 0.1.3 See: https://pypi.org/project/sphinx-reredirects/

Ubuntu

rmadison sphinx-reredirects
 sphinx-reredirects | 0.1.1+dfsg1-1 | lunar/universe  | source
 sphinx-reredirects | 0.1.2+dfsg1-2 | mantic/universe | source
 sphinx-reredirects | 0.1.2+dfsg1-2 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinx-reredirects

Debian

rmadison -u debian sphinx-reredirects
sphinx-reredirects | 0.1.1+dfsg1-1~bpo11+1 | bullseye-backports | source
sphinx-reredirects | 0.1.1+dfsg1-1         | stable             | source
sphinx-reredirects | 0.1.2+dfsg1-2         | testing            | source
sphinx-reredirects | 0.1.2+dfsg1-2         | unstable           | source

See also: https://tracker.debian.org/pkg/sphinx-reredirects

sphinx-tabs

Summary

pypi.org

Version: 3.4.4 See: https://pypi.org/project/sphinx-tabs/

Ubuntu

rmadison sphinx-tabs
sphinx-tabs | 3.2.0-3 | jammy/universe  | source
sphinx-tabs | 3.4.1-1 | lunar/universe  | source
sphinx-tabs | 3.4.1-2 | mantic/universe | source
sphinx-tabs | 3.4.4-1 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinx-tabs

Debian

rmadison -u debian sphinx-tabs
sphinx-tabs | 1.3.0+ds-1    | oldstable  | source
sphinx-tabs | 3.4.1-1       | stable     | source
sphinx-tabs | 3.4.4-1       | testing    | source
sphinx-tabs | 3.4.4-1       | unstable   | source

See also: https://tracker.debian.org/pkg/sphinx-tabs

sphinxcontrib-jquery

Summary

pypi.org

Version: 4.1 See: https://pypi.org/project/sphinxcontrib-jquery/

Ubuntu

rmadison sphinxcontrib-jquery
sphinxcontrib-jquery | 4.1-3 | mantic/universe | source
sphinxcontrib-jquery | 4.1-5 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinxcontrib-jquery

Debian

rmadison -u debian sphinxcontrib-jquery
sphinxcontrib-jquery | 4.1-4         | testing         | source
sphinxcontrib-jquery | 4.1-5         | buildd-unstable | source
sphinxcontrib-jquery | 4.1-5         | unstable        | source

See also: https://tracker.debian.org/pkg/sphinxcontrib-jquery

sphinxext-opengraph

Summary

pypi.org

Version: 0.9.0 See: https://pypi.org/project/sphinxext-opengraph/

Ubuntu

rmadison sphinxext-opengraph
sphinxext-opengraph | 0.5.1-1 | jammy/universe  | source
sphinxext-opengraph | 0.7.5-1 | lunar/universe  | source
sphinxext-opengraph | 0.7.5-1 | mantic/universe | source
sphinxext-opengraph | 0.7.5-1 | noble/universe  | source

See also: https://launchpad.net/ubuntu/+source/sphinxext-opengraph

Debian

rmadison -u debian sphinxext-opengraph
sphinxext-opengraph | 0.7.5-1       | stable     | source
sphinxext-opengraph | 0.7.5-1       | testing    | source
sphinxext-opengraph | 0.7.5-1       | unstable   | source

See also: https://tracker.debian.org/pkg/sphinxext-opengraph

dviererbe commented 9 months ago

For better readability, as a table:

dependency pypi.org noble jammy focal bionic xenial trusty stable
furo 2023.9.10 2023.09.10+dfsg-2 N/A N/A N/A N/A N/A 2022.12.07+dfsg-1
linkify-it-py 2.0.2 2.0.2-2 N/A N/A N/A N/A N/A 2.0.0-1
lxd-sphinx-extensions 0.0.15 N/A N/A N/A N/A N/A N/A N/A
myst-parser 2.0.0 2.0.0-1 0.16.1-3 N/A N/A N/A N/A 0.18.1-2
pyspelling 2.9 N/A N/A N/A N/A N/A N/A N/A
sphinx 7.2.6 7.2.6-2 4.3.2-1 1.8.5-7ubuntu3 1.6.7-1ubuntu1 1.3.6-2ubuntu1.2 1.2.2+dfsg-1ubuntu1.1 5.3.0-4
sphinx-autobuild 2021.3.14 2021.3.14-3 2021.3.14-2 0.7.1-2 N/A N/A N/A 2021.3.14-3
sphinx-copybutton 0.5.2 0.4.0-4 0.4.0-3 0.2.5-1.1 N/A N/A N/A 0.4.0-4
sphinx-design 0.5.0 0.5.0-1 N/A N/A N/A N/A N/A N/A
sphinx-notfound-page 1.0.0 1.0.0-1 0.8-1 N/A N/A N/A N/A 0.8.3-2
sphinx-reredirects 0.1.3 0.1.2+dfsg1-2 N/A N/A N/A N/A N/A 0.1.1+dfsg1-1
sphinx-tabs 3.4.4 3.4.4-1 3.2.0-3 N/A N/A N/A N/A 3.4.1-1
sphinxcontrib-jquery 4.1 4.1-5 N/A N/A N/A N/A N/A N/A
sphinxext-opengraph 0.9.0 0.7.5-1 0.5.1-1 N/A N/A N/A N/A 0.7.5-1
dviererbe commented 9 months ago

I propose to make the following extensions optional:

Note: I think we still would enable sphinx-reredirects and sphinxext-opengraph in the repository for ReadTheDocs but disable them in the packaged version.

ru-fu commented 9 months ago

I see why you want to exclude some of the extensions. But as discussed in Riga, we should have three levels for the extensions:

The extensions you are listing should be included by default because we recommend to use them (and, for example, expect to have them available according to our the style guide), but we need a mechanism to be able to exclude them for special cases like yours.

dviererbe commented 7 months ago

Resolved with PR #174