Docs: Replace blockdiag/seqdiag with Mermaid 55/143455/1
authorMatthew Watkins <mwatkins@linuxfoundation.org>
Wed, 4 Mar 2026 16:29:57 +0000 (16:29 +0000)
committerMatthew Watkins <mwatkins@linuxfoundation.org>
Wed, 4 Mar 2026 16:29:57 +0000 (16:29 +0000)
Remove sphinxcontrib-blockdiag and sphinxcontrib-seqdiag from all
configuration files, requirements, and constraints. Add
sphinxcontrib-mermaid as the replacement.

Changes across docs/conf.py, example templates, and constraints:
- Replace blockdiag/seqdiag extensions with sphinxcontrib.mermaid
- Remove Pillow dependency (only needed for blockdiag rendering)
- Drop setuptools<82 cap (only needed for blockdiag pkg_resources)
- Remove blockdiag family from OS constraints (blockdiag, seqdiag,
  actdiag, nwdiag, funcparserlib, and their sphinxcontrib wrappers)
- Bump tox.ini basepython to 3.13 (matches .readthedocs.yaml)

Verified: pip install succeeds on Python 3.13 with zero
blockdiag/seqdiag/Pillow packages. sphinx-build completes
with no errors or warnings using -W flag.

Issue-ID: CIMAN-33
Co-Authored-By: Claude <noreply@anthropic.com>
Change-Id: If9f3aafb387972d057d98f60cfb6d79b5136000c
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
docs/conf.py
docs/requirements-docs.txt
docs/tox.ini
etc/upper-constraints.onap.txt
etc/upper-constraints.os.txt
examples/sphinx/master/conf.py
examples/sphinx/master/requirements-docs.txt
examples/sphinx/release/conf.py
examples/sphinx/release/requirements-docs.txt

index a626f4b..19be6f2 100644 (file)
@@ -39,10 +39,9 @@ html_show_sphinx = False
 extensions = [
     'sphinx.ext.intersphinx',
     'sphinx.ext.graphviz',
-    'sphinxcontrib.blockdiag',
+    'sphinxcontrib.mermaid',
     'sphinxcontrib.plantuml',
-    'sphinxcontrib.seqdiag',
-    'sphinxcontrib.spelling' ,
+    'sphinxcontrib.spelling',
     'sphinxcontrib.openapi',
     'sphinx_toolbox.collapse'
 ]
index c159b59..b3583a1 100644 (file)
@@ -1,14 +1,12 @@
 # Compatibility
-setuptools>=65.0.0,<82
-Pillow>=10.1.0
+setuptools>=65.0.0
 
 # Core Sphinx
 sphinx>=7.1.2
 sphinx-rtd-theme>=2.0.0
 
 # Diagram extensions
-sphinxcontrib-blockdiag>=3.0.0
-sphinxcontrib-seqdiag>=3.0.0
+sphinxcontrib-mermaid>=1.0.0
 sphinxcontrib-plantuml>=0.27
 
 # API documentation
index 34f7dd2..8ea46be 100644 (file)
@@ -4,7 +4,7 @@ envlist = docs,docs-linkcheck,docs-spellcheck
 skipsdist = true
 
 [testenv:docs]
-basepython = python3.12
+basepython = python3.13
 deps =
      setuptools>=65.0.0
     -r{toxinidir}/requirements-docs.txt
@@ -16,7 +16,7 @@ allowlist_externals =
     sh
 
 [testenv:docs-linkcheck]
-basepython = python3.12
+basepython = python3.13
 deps =
      setuptools>=65.0.0
     -r{toxinidir}/requirements-docs.txt
@@ -24,7 +24,7 @@ deps =
 commands = sphinx-build -W -q -b linkcheck -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/linkcheck
 
 [testenv:docs-spellcheck]
-basepython = python3.12
+basepython = python3.13
 deps =
      setuptools>=65.0.0
     -r{toxinidir}/requirements-docs.txt
index 2be9f18..c5974b0 100644 (file)
@@ -1,14 +1,12 @@
 # Compatibility
 setuptools===69.0.3
-Pillow===10.4.0
 
 # Core Sphinx
 sphinx===7.1.2
 sphinx-rtd-theme===2.0.0
 
 # Diagram extensions
-sphinxcontrib-blockdiag===3.0.0
-sphinxcontrib-seqdiag===3.0.0
+sphinxcontrib-mermaid===2.0.0
 sphinxcontrib-plantuml===0.29
 
 # API documentation
index 1b1fbe8..5676466 100644 (file)
@@ -17,8 +17,7 @@ smmap===5.0.0
 confget===4.1.0
 XStatic-Angular-Bootstrap===2.5.0.0
 WebOb===1.8.7
-sphinxcontrib-actdiag===2.0.0;python_version=='3.6'
-sphinxcontrib-actdiag===3.0.0;python_version=='3.8'
+
 pecan===1.4.1
 ryu===4.34
 os-api-ref===2.3.0
@@ -39,7 +38,7 @@ python-slugify===6.1.0
 cursive===0.2.2
 oslo.service===2.8.0
 django-appconf===1.0.5
-sphinxcontrib-nwdiag===2.0.0
+
 rbd-iscsi-client===0.1.8
 requests-aws===0.1.8
 alabaster===0.7.12
@@ -143,8 +142,7 @@ jsonpointer===2.2
 defusedxml===0.7.1
 netaddr===0.8.0
 pyghmi===1.5.34
-sphinxcontrib-blockdiag===2.0.0;python_version=='3.6'
-sphinxcontrib-blockdiag===3.0.0;python_version=='3.8'
+
 thrift===0.15.0
 gnocchiclient===7.0.7
 wcwidth===0.2.5
@@ -258,8 +256,7 @@ tinyrpc===1.1.4
 google-auth-httplib2===0.1.0
 daiquiri===3.0.1
 influxdb===5.3.1
-# differs from https://github.com/openstack/requirements/blob/stable/yoga/upper-constraints.txt
-funcparserlib===1.0.0a0
+
 passlib===1.7.4
 dib-utils===0.0.11
 cliff===3.10.1
@@ -293,8 +290,7 @@ pyperclip===1.8.2
 cassandra-driver===3.25.0
 XStatic-Angular-Schema-Form===0.8.13.0
 gabbi===2.4.0
-nwdiag===2.0.0;python_version=='3.6'
-nwdiag===3.0.0;python_version=='3.8'
+
 XStatic-bootswatch===3.3.7.0
 pytest-xdist===2.5.0
 XStatic-JS-Yaml===3.8.1.0
@@ -321,8 +317,7 @@ dogtag-pki===10.7.4.1
 types-ipaddress===1.0.8
 XStatic-Angular-UUID===0.0.4.0
 purestorage===1.19.0
-sphinxcontrib-seqdiag===2.0.0;python_version=='3.6'
-sphinxcontrib-seqdiag===3.0.0;python_version=='3.8'
+
 os-win===5.6.0
 capacity===1.3.14
 retrying===1.3.3
@@ -373,8 +368,7 @@ asgiref===3.5.0;python_version=='3.8'
 XStatic-JQuery.TableSorter===2.14.5.2
 pifpaf===3.1.5
 pysmi===0.3.4
-blockdiag===2.0.1;python_version=='3.6'
-blockdiag===3.0.0;python_version=='3.8'
+
 testtools===2.5.0
 infi.dtypes.iqn===0.4.0
 XStatic-tv4===1.2.7.0
@@ -419,8 +413,7 @@ PyNaCl===1.5.0
 osc-lib===2.5.0
 async-generator===1.10;python_version=='3.6'
 python-consul===1.1.0
-seqdiag===2.0.0;python_version=='3.6'
-seqdiag===3.0.0;python_version=='3.8'
+
 numpy===1.19.5;python_version=='3.6'
 numpy===1.22.2;python_version=='3.8'
 msgpack===1.0.3
@@ -633,8 +626,7 @@ ironic-lib===5.2.0
 pytz===2021.3
 pytest-forked===1.4.0
 XStatic-D3===3.5.17.0
-actdiag===2.0.0;python_version=='3.6'
-actdiag===3.0.0;python_version=='3.8'
+
 sysv-ipc===1.1.0
 sphinxcontrib-applehelp===1.0.2
 scikit-learn===0.24.2;python_version=='3.6'
index a9c42b6..18a3cdd 100644 (file)
@@ -19,9 +19,7 @@ html_show_sphinx = False
 extensions = [
     'sphinx.ext.intersphinx',
     'sphinx.ext.graphviz',
-    'sphinxcontrib.blockdiag',
-    'sphinxcontrib.seqdiag',
-    'sphinxcontrib.swaggerdoc',
+    'sphinxcontrib.mermaid',
     'sphinxcontrib.plantuml'
 ]
 
index 299a413..00f4c87 100644 (file)
@@ -1,8 +1,7 @@
-setuptools>=65.0.0,<82  # MIT; pinned <82 to retain pkg_resources for blockdiag/seqdiag
+setuptools>=65.0.0  # MIT
 sphinx>=4.2.0  # BSD
 sphinx-rtd-theme>=1.0.0  # MIT
-sphinxcontrib-blockdiag  # BSD
-sphinxcontrib-seqdiag # BSD
+sphinxcontrib-mermaid  # BSD
 sphinxcontrib-swaggerdoc
 sphinxcontrib-spelling
 sphinxcontrib-plantuml
index e13e051..28b2fa1 100644 (file)
@@ -19,9 +19,7 @@ html_show_sphinx = False
 extensions = [
     'sphinx.ext.intersphinx',
     'sphinx.ext.graphviz',
-    'sphinxcontrib.blockdiag',
-    'sphinxcontrib.seqdiag',
-    'sphinxcontrib.swaggerdoc',
+    'sphinxcontrib.mermaid',
     'sphinxcontrib.plantuml'
 ]
 
index 299a413..00f4c87 100644 (file)
@@ -1,8 +1,7 @@
-setuptools>=65.0.0,<82  # MIT; pinned <82 to retain pkg_resources for blockdiag/seqdiag
+setuptools>=65.0.0  # MIT
 sphinx>=4.2.0  # BSD
 sphinx-rtd-theme>=1.0.0  # MIT
-sphinxcontrib-blockdiag  # BSD
-sphinxcontrib-seqdiag # BSD
+sphinxcontrib-mermaid  # BSD
 sphinxcontrib-swaggerdoc
 sphinxcontrib-spelling
 sphinxcontrib-plantuml