From a1d559f22436fc6617ed3edf041c2d72e445814b Mon Sep 17 00:00:00 2001 From: Jens Vagelpohl Date: Thu, 8 Aug 2024 06:51:43 +0000 Subject: [PATCH] Change Sphinx theme used for Zope documentation (#1221) * - update all compatible dependencies without Sphinx theme change * - more non-Sphinx-related dependency updates * - switch to "furo" Sphinx theme as suggested by Steve Piercy * - Sphinx <8 requires docutils <0.21 * - downgrade zope.interface due to https://github.com/zopefoundation/zope.interface/issues/315 * - ignore additional build artifacts created by the furo Sphinx theme * - Sphinx 8 requires Python 3.10, adding pins for Python 3.9 * - correct zope.interface version pin spelling --- .meta.toml | 2 ++ constraints.txt | 22 ++++++++-------- docs/INSTALL.rst | 3 --- docs/conf.py | 4 +-- docs/maintenance.rst | 1 - docs/migrations/zope4/code.rst | 3 --- docs/migrations/zope4/zodb.rst | 3 --- docs/news.rst | 4 --- docs/operation.rst | 3 --- docs/requirements.txt | 3 +-- requirements-full.txt | 22 ++++++++-------- setup.cfg | 2 ++ setup.py | 2 +- versions-prod.cfg | 22 ++++++++-------- versions.cfg | 47 ++++++++++++++++++++-------------- 15 files changed, 69 insertions(+), 74 deletions(-) diff --git a/.meta.toml b/.meta.toml index 78591f6c03..ef6de0de65 100644 --- a/.meta.toml +++ b/.meta.toml @@ -140,6 +140,8 @@ additional-ignores = [ "docs/_build/html/_sources/zopebook/includes/*", "docs/_build/html/_static/*", "docs/_build/html/_static/css/*", + "docs/_build/html/_static/scripts/*", + "docs/_build/html/_static/styles/*", ] ignore-bad-ideas = [ "src/Products/Five/tests/locales/de/LC_MESSAGES/fivetest.mo", diff --git a/constraints.txt b/constraints.txt index f1417a392d..8df0a2970e 100644 --- a/constraints.txt +++ b/constraints.txt @@ -11,11 +11,11 @@ MultiMapping==5.0 Paste==3.10.1 PasteDeploy==3.1.0 Persistence==5.0 -RestrictedPython==7.1; python_version == '3.10' -RestrictedPython==7.1; python_version == '3.11' -RestrictedPython==7.1; python_version == '3.12' -RestrictedPython==7.1; python_version == '3.8' -RestrictedPython==7.1; python_version == '3.9' +RestrictedPython==7.2; python_version == '3.10' +RestrictedPython==7.2; python_version == '3.11' +RestrictedPython==7.2; python_version == '3.12' +RestrictedPython==7.2; python_version == '3.8' +RestrictedPython==7.2; python_version == '3.9' RestrictedPython==7.2a1.dev0; python_version > '3.12' WSGIProxy2==0.5.1 WebOb==1.8.7 @@ -24,8 +24,8 @@ ZConfig==4.1 ZODB==6.0 Zope2==4.0 beautifulsoup4==4.12.3 -cffi==1.17.0rc1 -multipart==0.2.4 +cffi==1.17.0 +multipart==0.2.5 persistent==6.0 pycparser==2.22 python-gettext==5.0 @@ -35,7 +35,7 @@ six==1.16.0 soupsieve==2.5 transaction==4.0 waitress==3.0.0 -z3c.pt==4.3 +z3c.pt==4.4 zExceptions==5.0 zc.lockfile==3.0.post1 zc.recipe.egg==2.0.7 @@ -49,14 +49,14 @@ zope.cachedescriptors==5.0 zope.component==6.0 zope.configuration==5.0.1 zope.container==6.0 -zope.contentprovider==5.0 +zope.contentprovider==6.0 zope.contenttype==5.1 zope.datetime==5.0.0 zope.deferredimport==5.0 zope.deprecation==5.0 zope.dottedname==6.0 zope.event==5.0 -zope.exceptions==5.0.1 +zope.exceptions==5.1 zope.filerepresentation==6.0 zope.globalrequest==2.0 zope.hookable==6.0 @@ -67,7 +67,7 @@ zope.lifecycleevent==5.0 zope.location==5.0 zope.pagetemplate==5.1 zope.processlifetime==3.0 -zope.proxy==5.2 +zope.proxy==5.3 zope.ptresource==5.0 zope.publisher==7.0 zope.schema==7.0.1 diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst index 2b0457f4f3..510c6c3b17 100644 --- a/docs/INSTALL.rst +++ b/docs/INSTALL.rst @@ -4,9 +4,6 @@ This document describes installing Zope with `zc.buildout `_ (the **recommended** method) or via ``pip``. -.. contents:: - :local: - Prerequisites ------------- diff --git a/docs/conf.py b/docs/conf.py index 9b89e60b4e..8f73534f7c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -56,7 +56,7 @@ # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = {'.rst': 'restructuredtext'} # The master toctree document. master_doc = 'index' @@ -82,7 +82,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +html_theme = 'furo' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/docs/maintenance.rst b/docs/maintenance.rst index 17eeae225c..053d1ccdf3 100644 --- a/docs/maintenance.rst +++ b/docs/maintenance.rst @@ -6,7 +6,6 @@ Maintainer information This is internal documentation, mostly for Zope maintainers who manage software releases and the documentation -.. contents:: Release process --------------- diff --git a/docs/migrations/zope4/code.rst b/docs/migrations/zope4/code.rst index e8f862bed9..c8258dc202 100644 --- a/docs/migrations/zope4/code.rst +++ b/docs/migrations/zope4/code.rst @@ -5,9 +5,6 @@ Migrating Zope product code The following list shows a few common migration issues independent of the Python version used. -.. contents:: - :local: - Changed import paths -------------------- diff --git a/docs/migrations/zope4/zodb.rst b/docs/migrations/zope4/zodb.rst index ba8d5dcbf5..12599dad47 100644 --- a/docs/migrations/zope4/zodb.rst +++ b/docs/migrations/zope4/zodb.rst @@ -14,9 +14,6 @@ into a Zope 4 environment. The migration example steps have been tested on a on a copy of your ZODB so you retain a working copy for Zope 2 if you need to go back. -.. contents:: - :local: - Pre-migration steps on Zope 2 ----------------------------- diff --git a/docs/news.rst b/docs/news.rst index 8fb7668e5b..08decd704c 100644 --- a/docs/news.rst +++ b/docs/news.rst @@ -15,10 +15,6 @@ supported and for how long. :ref:`zope4migration` documentation -.. contents:: - :local: - - What's new in Zope 5 -------------------- diff --git a/docs/operation.rst b/docs/operation.rst index 1e62b655bf..96e2767f4a 100644 --- a/docs/operation.rst +++ b/docs/operation.rst @@ -11,9 +11,6 @@ Whichever method you used to install Zope and create a server instance (see slightly. You can immediately skip down to `Running Zope (plone.recipe.zope2instance install)`. -.. contents:: - :local: - Creating a Zope instance ------------------------ diff --git a/docs/requirements.txt b/docs/requirements.txt index a9ec71e8ee..03a81de7c9 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,4 @@ Sphinx -sphinx_rtd_theme>1 -docutils<0.19 +furo ZConfig tempstorage diff --git a/requirements-full.txt b/requirements-full.txt index 2d254b4c4b..69220da131 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -12,11 +12,11 @@ MultiMapping==5.0 Paste==3.10.1 PasteDeploy==3.1.0 Persistence==5.0 -RestrictedPython==7.1; python_version == '3.10' -RestrictedPython==7.1; python_version == '3.11' -RestrictedPython==7.1; python_version == '3.12' -RestrictedPython==7.1; python_version == '3.8' -RestrictedPython==7.1; python_version == '3.9' +RestrictedPython==7.2; python_version == '3.10' +RestrictedPython==7.2; python_version == '3.11' +RestrictedPython==7.2; python_version == '3.12' +RestrictedPython==7.2; python_version == '3.8' +RestrictedPython==7.2; python_version == '3.9' RestrictedPython==7.2a1.dev0; python_version > '3.12' WSGIProxy2==0.5.1 WebOb==1.8.7 @@ -25,8 +25,8 @@ ZConfig==4.1 ZODB==6.0 Zope2==4.0 beautifulsoup4==4.12.3 -cffi==1.17.0rc1 -multipart==0.2.4 +cffi==1.17.0 +multipart==0.2.5 persistent==6.0 pycparser==2.22 python-gettext==5.0 @@ -36,7 +36,7 @@ six==1.16.0 soupsieve==2.5 transaction==4.0 waitress==3.0.0 -z3c.pt==4.3 +z3c.pt==4.4 zExceptions==5.0 zc.lockfile==3.0.post1 zc.recipe.egg==2.0.7 @@ -50,14 +50,14 @@ zope.cachedescriptors==5.0 zope.component==6.0 zope.configuration==5.0.1 zope.container==6.0 -zope.contentprovider==5.0 +zope.contentprovider==6.0 zope.contenttype==5.1 zope.datetime==5.0.0 zope.deferredimport==5.0 zope.deprecation==5.0 zope.dottedname==6.0 zope.event==5.0 -zope.exceptions==5.0.1 +zope.exceptions==5.1 zope.filerepresentation==6.0 zope.globalrequest==2.0 zope.hookable==6.0 @@ -68,7 +68,7 @@ zope.lifecycleevent==5.0 zope.location==5.0 zope.pagetemplate==5.1 zope.processlifetime==3.0 -zope.proxy==5.2 +zope.proxy==5.3 zope.ptresource==5.0 zope.publisher==7.0 zope.schema==7.0.1 diff --git a/setup.cfg b/setup.cfg index 74a640c271..90aaceee4b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -22,6 +22,8 @@ ignore = docs/_build/html/_sources/zopebook/includes/* docs/_build/html/_static/* docs/_build/html/_static/css/* + docs/_build/html/_static/scripts/* + docs/_build/html/_static/styles/* ignore-bad-ideas = src/Products/Five/tests/locales/de/LC_MESSAGES/fivetest.mo src/Products/Five/tests/locales/en/LC_MESSAGES/fivetest.mo diff --git a/setup.py b/setup.py index c16f60dc47..f254e257b0 100644 --- a/setup.py +++ b/setup.py @@ -128,7 +128,7 @@ def _read_file(filename): extras_require={ 'docs': [ 'Sphinx', - 'sphinx_rtd_theme', + 'furo', 'tempstorage', ], 'wsgi': [ diff --git a/versions-prod.cfg b/versions-prod.cfg index c0470a0f92..491a165f9f 100644 --- a/versions-prod.cfg +++ b/versions-prod.cfg @@ -23,8 +23,8 @@ WebOb = 1.8.7 ZConfig = 4.1 ZODB = 6.0 beautifulsoup4 = 4.12.3 -cffi = 1.17.0rc1 -multipart = 0.2.4 +cffi = 1.17.0 +multipart = 0.2.5 persistent = 6.0 pycparser = 2.22 python-gettext = 5.0 @@ -34,7 +34,7 @@ roman = 4.2 soupsieve = 2.5 transaction = 4.0 waitress = 3.0.0 -z3c.pt = 4.3 +z3c.pt = 4.4 zExceptions = 5.0 zc.lockfile = 3.0.post1 zc.recipe.egg = 2.0.7 @@ -48,14 +48,14 @@ zope.cachedescriptors = 5.0 zope.component = 6.0 zope.configuration = 5.0.1 zope.container = 6.0 -zope.contentprovider = 5.0 +zope.contentprovider = 6.0 zope.contenttype = 5.1 zope.datetime = 5.0.0 zope.deferredimport = 5.0 zope.deprecation = 5.0 zope.dottedname = 6.0 zope.event = 5.0 -zope.exceptions = 5.0.1 +zope.exceptions = 5.1 zope.filerepresentation = 6.0 zope.globalrequest = 2.0 zope.hookable = 6.0 @@ -66,7 +66,7 @@ zope.lifecycleevent = 5.0 zope.location = 5.0 zope.pagetemplate = 5.1 zope.processlifetime = 3.0 -zope.proxy = 5.2 +zope.proxy = 5.3 zope.ptresource = 5.0 zope.publisher = 7.0 zope.schema = 7.0.1 @@ -86,20 +86,20 @@ zope.viewlet = 5.0 # Chameleon >= 4.5 requires Python 3.9 Chameleon = 4.4.4 # Use newest final release -RestrictedPython = 7.1 +RestrictedPython = 7.2 [versions:python39] # Use newest final release -RestrictedPython = 7.1 +RestrictedPython = 7.2 [versions:python310] # Use newest final release -RestrictedPython = 7.1 +RestrictedPython = 7.2 [versions:python311] # Use newest final release -RestrictedPython = 7.1 +RestrictedPython = 7.2 [versions:python312] # Use newest final release -RestrictedPython = 7.1 +RestrictedPython = 7.2 diff --git a/versions.cfg b/versions.cfg index f987e61097..f5c30ce236 100644 --- a/versions.cfg +++ b/versions.cfg @@ -13,44 +13,53 @@ Products.BTreeFolder2 = 5.1 Products.ZCatalog = 7.1 Pygments = 2.18.0 Record = 4.1 -Sphinx = 7.3.7 -alabaster = 0.7.16 -certifi = 2024.2.2 +Sphinx = 8.0.2 +alabaster = 1.0.0 +certifi = 2024.7.4 charset-normalizer = 3.3.2 collective.recipe.template = 2.2 colorama = 0.4.6 -# sphinx-rtd-theme 2.0.0 requires docutils <21 -docutils = 0.20.1 +docutils = 0.21.2 five.localsitemanager = 4.0 +furo = 2024.8.6 idna = 3.7 imagesize = 1.4.1 -importlib-metadata = 7.1.0 +importlib-metadata = 8.2.0 # Required by zope.testbrowser on Python 3.13 because WebOb still uses cgi. -legacy-cgi = 2.6 +legacy-cgi = 2.6.1 mr.developer = 2.0.2 -packaging = 24.0 +packaging = 24.1 plone.recipe.command = 1.1 -requests = 2.31.0 +requests = 2.32.3 snowballstemmer = 2.2.0 -sphinx-rtd-theme = 2.0.0 -sphinxcontrib-applehelp = 1.0.8 -sphinxcontrib-devhelp = 1.0.6 -sphinxcontrib-htmlhelp = 2.0.5 -sphinxcontrib-jquery = 4.1 +sphinx-basic-ng = 1.0.0b2 +sphinxcontrib-applehelp = 2.0.0 +sphinxcontrib-devhelp = 2.0.0 +sphinxcontrib-htmlhelp = 2.1.0 sphinxcontrib-jsmath = 1.0.1 -sphinxcontrib-qthelp = 1.0.7 -sphinxcontrib-serializinghtml = 1.1.10 +sphinxcontrib-qthelp = 2.0.0 +sphinxcontrib-serializinghtml = 2.0.0 tempstorage = 6.0 tomli = 2.0.1 -urllib3 = 2.2.1 +urllib3 = 2.2.2 z3c.checkversions = 2.1 zc.recipe.testrunner = 3.0 -zipp = 3.18.2 -zope.testrunner = 6.4 +zipp = 3.19.2 +zope.testrunner = 6.5 + +[versions:python39] +# Sphinx <8 requires alabaster <1 +alabaster = 0.7.14 +# Sphinx <8 requires docutils <0.21 +docutils = 0.20.1 +# Sphinx >=8 requires Python 3.10 +Sphinx = 7.4.7 [versions:python38] # alabaster >= 0.7.14 requires Python 3.9 alabaster = 0.7.13 +# Sphinx <8 requires docutils <0.21 +docutils = 0.20.1 # Required dependency on Python 3.8 only importlib-resources = 6.4.0 # Sphinx >= 7.2 requires Python 3.9+