From c719d5718498a2e15a8c25185fe9ed22a14fdf10 Mon Sep 17 00:00:00 2001 From: Matthew Watkins Date: Tue, 10 Mar 2026 11:03:50 +0000 Subject: [PATCH] Docs: Update migration report, align Python 3.13 - Rewrite blockdiag/seqdiag migration report as a completed technical reference rather than a TSC progress tracker - Remove Audit results, Gerrit changes, Ask of the TSC, and Timeline sections containing moment-in-time tracking content - Remove Gerrit change references throughout - Add pre-rendered blockdiag/seqdiag PNG images for Before diagrams (the extensions are no longer installed so code-block source alone was not rendering visually) - Fix broken Bus Controller mermaid diagram: quote hyphenated node identifiers and rename classDef names to avoid reserved keywords - Add new Migration scope, Mermaid syntax pitfalls, and Applying the migration to other projects sections - Update example tox.ini templates (master and release) from Python 3.8 to 3.13, remove OpenStack Yoga constraints, add setuptools Issue-ID: CIMAN-33 Change-Id: Ie0612c80cb1632771f537665b1f013daf77ac80d Signed-off-by: Matthew Watkins --- .../onap-documentation/media/buscontroller.png | Bin 0 -> 14872 bytes .../guides/onap-documentation/media/datarouter.png | Bin 0 -> 10920 bytes .../onap-documentation/media/publishAnyEvent.png | Bin 0 -> 10636 bytes .../onap-documentation/media/publishEventBatch.png | Bin 0 -> 10878 bytes .../tsc-blockdiag-mermaid-migration-report.rst | 384 ++++++++------------- examples/sphinx/master/tox.ini | 14 +- examples/sphinx/release/tox.ini | 14 +- 7 files changed, 150 insertions(+), 262 deletions(-) create mode 100644 docs/guides/onap-documentation/media/buscontroller.png create mode 100644 docs/guides/onap-documentation/media/datarouter.png create mode 100644 docs/guides/onap-documentation/media/publishAnyEvent.png create mode 100644 docs/guides/onap-documentation/media/publishEventBatch.png diff --git a/docs/guides/onap-documentation/media/buscontroller.png b/docs/guides/onap-documentation/media/buscontroller.png new file mode 100644 index 0000000000000000000000000000000000000000..6e25c5453fae4cf7699864eb948fb112d98939e1 GIT binary patch literal 14872 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 MZ9}b!o3`Qq1y%nWQvd(} literal 0 HcmV?d00001 diff --git a/docs/guides/onap-documentation/media/datarouter.png b/docs/guides/onap-documentation/media/datarouter.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a343f55d812dabebfde60b74f15ba1463415aa GIT binary patch literal 10920 zcmchdcTiK|*Pw4g3pJq!j1Y=aM2hqtAXKRe0-{tYN*AOPg7l7}NbiCI(gma=2uMee zUPVBp6M85czu*3`voqh!?##~4WF|Lr%e*)Dz2`m8c}|qRt~xaZD+K@m)S4RTdjJ3; zY=YnrQo>jDF>fLO@VjcFl?;6{wlZ}RaB5yVS8Ilhser;O_KNu+NeX zAVm75r13k@;@`1g1q1;^mo!8{fQ2@8v5d~g3Yl&Shrlc)!k4r+Cw;qcC%)@0pSfQf ztqDfInSA!q?4o%4*D2^()RW5M$x>YTeW53>B4G@w>o=OVsCc8REl7>!sk-EevKu|Wj zRW+Y@*F=Q)zf&mpf`?fzf0?0Twj6b1x2OQ_v5-DQt5#acuN$@1F$FIkJh})WCT^eI z9c6rJNP%bz<_{flwc#sL<13%%3eT6k?N^%p zFB=@^x#vDlRMQe8d#}EpTQbuB;y;-sQ~H zGQ&8=PsT&4>Eu$rGT2O7Q~g%AM1(kD6R~-HSacJ1j5tThdW*dnfss*uQJ?U4m&B0F z|3iY>?r1!OxF1i1E|U=YwVPfyh`((SbT;FaK7Y2Dw7s`o>2+ngq<3LH?akj}v}ByQ zfN~Ao{oX4z7~`*cRk7 zrjG-CBy;no75gl$(xmi(^aGEIVT6$7(TQz8#*h3b?y;e|O6XJ4kJq{NH*Y1nh`pnK z*-?H~h)=)VUWTqLD4xv~UjWFf%aNTwI|`R>n5JuG)y)#;#U2g#L7DNc<8iX=p4Om) z#<;Teri)uYRJedSefe)$41 za9Ve)=t_xcED!t72)FxD08mlJgZ32?wKHh@P8Y2_l0&Y_d37a`eCNv>WsOZV88T|-fZxh-YwdnmM$7tP@C}6 zmAm%dpX1MO*I$4MRFv0Bot~<25*f+(AlAE%$VNkIq) zg-+(a2#|05^^RcV%P!FZuU`FU1-Ae|CMn=UD$8U5Yn@`~(G&o1(Cp~fIZudS4oQFH zZXMG_vth+VK{l$i{%1F8R4`+2@^9OntZJA6x}K+6YmHBFNwAA-&DywFK5w$qRv`tl z$?j8N6BPOl2O6QCea_?>J4OOvJ#QX)8fNeU2mr;c^TK#AA`&T=66~bv?4OAdbRmt_x0VSDWNadaFR zYJhkYy`Bpo{XkCw(zqIXRi$b2qii%tuL+Re=rN*NRzj3*Ig5C|VWU8e9`U$X92Oj8 zgj9W?dhNC<{$SCh! z-gFVZZ^_~xD3I*gS5MiAv|0iVMu;3VS|g07VvCu|BUEQ94OI%@uhILgINYe)h9@y-H2?mW z?#o{(+D}w^o>l7}cj?&N{vU2s{W|I8|nG8MDYSG z?+Ts`ME^D%pm18KPYy#;-)l%7&Uz=bZt?6Gr>XT#FjNAx4f-VF-S=QXo@!Z1|h}5p;$PQDUlpW-`1s)0=fw%r;PfX*l)mlrz}GHZFL$P z`5iG)%@5zXQLJ`ME&cRObOiL6OnqjsQ%5OtTGnen3a(4PgDjV_4 zu>FmA{l2BC07vGd{N2y*qU~n}J9O^sT;%$?wn~L0n(nK1VNCQ7bA(@rREWN_eOqZd zuqikB085QrUbE#F`N05if(!t6F-(%)lA2BZ1yQIe=`R%KFDx`t$CmrnbyC~yYKlQp zSxW{IgLS31JQTT4sl14hH!!FByWeYZZrA!r0QWybEE;xvzvBZ$gkLDQ8AP&K| zTEr7|^$J;=T}#qh#-7l4=3&gXJRdpg$^2wR zBuHE5>wF}+u0{Ydbo^wbg}GHW0eRirXYV~>Hgs&kb}U9&Ae>-Pk`7{0@z>D;{aeH+mcPqU;p zWQh}*e5<2~+8}W{3zi}m9>me*oO(=uF*9>|9bC

<1mH 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 literal 0 HcmV?d00001 diff --git a/docs/guides/onap-documentation/media/publishEventBatch.png b/docs/guides/onap-documentation/media/publishEventBatch.png new file mode 100644 index 0000000000000000000000000000000000000000..f2632c1dba719c3662b99ca21fdb28bb5bd8ba2d GIT binary patch literal 10878 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 literal 0 HcmV?d00001 diff --git a/docs/guides/onap-documentation/tsc-blockdiag-mermaid-migration-report.rst b/docs/guides/onap-documentation/tsc-blockdiag-mermaid-migration-report.rst index 5f9a40334..2dd44abb5 100644 --- a/docs/guides/onap-documentation/tsc-blockdiag-mermaid-migration-report.rst +++ b/docs/guides/onap-documentation/tsc-blockdiag-mermaid-migration-report.rst @@ -5,35 +5,35 @@ .. _tsc-blockdiag-mermaid-migration-report: ======================================================================= -TSC Report: blockdiag/seqdiag to Mermaid Diagram Migration +blockdiag/seqdiag to Mermaid Diagram Migration ======================================================================= -:Date: 2026-03-05 :Author: Matthew Watkins (Linux Foundation Release Engineering) -:Status: For TSC Review :References: :ref:`diagrams-blockdiag-to-mermaid` .. contents:: Table of Contents :depth: 3 :local: -Executive summary -================= +Overview +======== All ONAP documentation repositories that contained live ``.. blockdiag::`` or ``.. seqdiag::`` diagram directives have been identified, and their diagrams converted to ``.. mermaid::`` syntax. **9 diagrams** across -**5 repositories** were in scope. **8 of 9** are now merged; the -remaining **1 Gerrit change** (covering 4 diagrams) is posted as WIP for -manual review. +**5 repositories** were migrated. -This migration eliminates the dependency on the abandoned +This migration removed the dependency on the abandoned ``sphinxcontrib-blockdiag`` and ``sphinxcontrib-seqdiag`` Python packages, which are incompatible with both **Pillow >= 10** and **Python >= 3.12**. -With this work complete, all ONAP documentation can build cleanly on +With this work complete, all ONAP documentation builds cleanly on Python 3.13 without the ``Pillow<10`` workaround that was previously required. +The approach described here is applicable to any Sphinx-based documentation +project that still depends on blockdiag or seqdiag and needs to move to a +modern, actively maintained diagramming solution. + Background ========== @@ -50,16 +50,11 @@ from two critical compatibility failures: 2. **Pillow 10+ incompatibility** --- ``blockdiag 3.0.0`` calls ``ImageDraw.textsize()``, which was deprecated in Pillow 9.2.0 and - **removed in Pillow 10.0**. The ONAP upper-constraints file pins - ``Pillow===10.4.0``, so diagram rendering fails with:: + **removed in Pillow 10.0**. Documentation builds that pin a modern + Pillow version will fail with:: AttributeError: 'ImageDraw' object has no attribute 'textsize' -These issues were previously masked by the OpenStack Yoga constraint -conflict, which prevented packages from installing at all. Once the Yoga -constraints were removed (merged March 2026), the Pillow/blockdiag -incompatibility surfaced. - Why Mermaid? ------------ @@ -74,8 +69,8 @@ reasons: - sphinxcontrib-mermaid - sphinxcontrib-plantuml - sphinx.ext.graphviz - - blockdiag (current) - - seqdiag (current) + - blockdiag + - seqdiag * - Actively maintained - ✅ Yes - ✅ Yes @@ -125,62 +120,40 @@ reasons: - ❌ No - ❌ No -Audit results -============= - -A full audit of all ONAP Gerrit repositories was performed. The results -are summarised below. +Migration scope +=============== -Repositories with live diagrams -------------------------------- +The table below summarises every repository that required a content or +configuration change as part of this migration. .. list-table:: :header-rows: 1 - :widths: 5 20 30 8 8 29 + :widths: 25 15 10 50 - * - # - - Repository - - File - - Type + * - Repository + - Diagram type - Count - Description - * - 1 - - ``dmaap/buscontroller`` - - ``docs/architecture.rst`` + * - ``dmaap/buscontroller`` - blockdiag - 1 - Bus Controller API connections to MR, DR, AAF - * - 2 - - ``dmaap/datarouter`` - - ``docs/delivery.rst`` + * - ``dmaap/datarouter`` - blockdiag - 1 - DR-PROV, DR-NODE, MariaDB container connectivity - * - 3 - - ``sdc`` - - ``docs/delivery.rst`` + * - ``sdc`` - graphviz - 2 - - Deployment dependency map and docker-container connectivity - (already migrated to graphviz; config-only change needed) - * - 4 - - ``sdnc/oam`` - - *(none --- config only)* - - N/A + - Already used graphviz; config-only cleanup required + * - ``sdnc/oam`` + - N/A (config only) - 0 - - blockdiag/seqdiag loaded in ``conf.py`` but no live - directives in any RST files; config cleanup only - * - 5 - - ``vnfrqts/requirements`` - - | ``docs/Chapter8/ves7_1spec.rst`` - | ``docs/Chapter8/ves_7_2/ves_event_listener_7_2.rst`` + - blockdiag/seqdiag loaded in ``conf.py`` but no live directives + * - ``vnfrqts/requirements`` - seqdiag - 4 - - VES v7.1 and v7.2 call-flow diagrams for - ``publishAnyEvent`` and ``publishEventBatch`` - -Totals ------- + - VES v7.1 and v7.2 call-flow diagrams .. list-table:: :header-rows: 1 @@ -192,104 +165,38 @@ Totals - 3 * - Repositories requiring config-only cleanup - 2 - * - Total ``.. blockdiag::`` directives rewritten + * - ``.. blockdiag::`` directives rewritten - 2 - * - Total ``.. seqdiag::`` directives rewritten + * - ``.. seqdiag::`` directives rewritten - 4 - * - SDC ``.. graphviz::`` diagrams (already migrated, no change) + * - ``.. graphviz::`` diagrams (already migrated, verified) - 2 - * - sdnc/oam config-only (no live directives) - - 0 * - **Total diagrams migrated or verified** - **9** -Gerrit changes -============== - -All changes are listed below with their current status. - -.. list-table:: - :header-rows: 1 - :widths: 10 20 35 15 20 - - * - Gerrit # - - Repository - - Subject - - Status - - Notes - * - `143468 `_ - - ``dmaap/buscontroller`` - - Docs: Migrate blockdiag to Mermaid - - ✅ **MERGED** - - 1 blockdiag → mermaid ``graph TD`` - * - `143469 `_ - - ``dmaap/datarouter`` - - Docs: Migrate blockdiag to Mermaid - - ✅ **MERGED** - - 1 blockdiag → mermaid ``graph TD`` - * - `143480 `_ - - ``sdc`` - - Docs: Modernise docs build for Python 3.13 - - ✅ **MERGED** - - Config only (diagrams already use graphviz) - * - `143483 `_ - - ``sdnc/oam`` - - Docs: Add sphinxcontrib-mermaid for diagram migration - - ✅ **MERGED** - - Config prep (mermaid extension added) - * - `143515 `_ - - ``sdnc/oam`` - - Fix RTD build and remove unmaintained extensions - - ✅ **MERGED** - - Removed blockdiag/seqdiag/swaggerdoc from conf.py - * - `143518 `_ - - ``vnfrqts/requirements`` - - Docs: Migrate seqdiag diagrams to Mermaid - - ⏳ **WIP** - - 4 seqdiag → mermaid ``sequenceDiagram``; - awaiting manual review from vnfrqts committers - -.. note:: - - Gerrit 143518 is the only change still requiring review. All other - changes have been reviewed, verified, and merged. - Before / after diagrams ======================== -This section shows the original blockdiag/seqdiag source alongside the -replacement Mermaid source for each migrated diagram. +This section shows the original blockdiag/seqdiag rendering alongside the +replacement Mermaid diagram for each migration performed. dmaap/buscontroller --- Bus Controller Architecture ---------------------------------------------------- **Before** (blockdiag): -.. code-block:: rst +.. image:: media/buscontroller.png + :alt: Bus Controller Architecture (original blockdiag rendering) - .. blockdiag:: - - blockdiag layers { - orientation = portrait - DBC_CLIENT -> DBC_API; - DBC_API -> MR; - DBC_API -> DR; - DBC_API -> AAF; - group l1 { color = blue; label = "Bus Controller Container"; DBC_API; } - group l2 { color = yellow; label = "MR"; MR; } - group l3 { color = orange; label = "DR"; DR; } - group l4 { color = green; label = "AAF"; AAF; } - } - -**After** (mermaid --- now live on master): +**After** (Mermaid): .. mermaid:: graph TD - DBC_CLIENT --> DBC_API - DBC_API --> MR - DBC_API --> DR - DBC_API --> AAF + DBC_CLIENT["DBC_CLIENT"] --> DBC_API["DBC_API"] + DBC_API --> MR["MR"] + DBC_API --> DR["DR"] + DBC_API --> AAF["AAF"] subgraph "Bus Controller Container" DBC_API @@ -307,61 +214,51 @@ dmaap/buscontroller --- Bus Controller Architecture AAF end - classDef blue fill:#33f,stroke:#333,color:#fff - classDef yellow fill:#ff0,stroke:#333,color:#000 - classDef orange fill:#f90,stroke:#333,color:#000 - classDef green fill:#0c0,stroke:#333,color:#000 + classDef blueStyle fill:#33f,stroke:#333,color:#fff + classDef yellowStyle fill:#ff0,stroke:#333,color:#000 + classDef orangeStyle fill:#f90,stroke:#333,color:#000 + classDef greenStyle fill:#0c0,stroke:#333,color:#000 - class DBC_API blue - class MR yellow - class DR orange - class AAF green + class DBC_API blueStyle + class MR yellowStyle + class DR orangeStyle + class AAF greenStyle dmaap/datarouter --- Data Router Delivery ------------------------------------------ **Before** (blockdiag): -.. code-block:: rst - - .. blockdiag:: - - blockdiag layers { - orientation = portrait - MARIADB -> DR-PROV; - DR-PROV -> DR-NODE; - group l1 { color = blue; label = "dr-prov Container"; DR-PROV; } - group l2 { color = yellow; label = "dr-node Container"; DR-NODE; } - group l3 { color = orange; label = "MariaDb Container"; MARIADB; } - } +.. image:: media/datarouter.png + :alt: Data Router Delivery (original blockdiag rendering) -**After** (mermaid --- now live on master): +**After** (Mermaid): .. mermaid:: graph TD - MARIADB --> DR-PROV - DR-PROV --> DR-NODE + MARIADB["MARIADB"] --> DR_PROV["DR-PROV"] + DR_PROV --> DR_NODE["DR-NODE"] subgraph "dr-prov Container" - DR-PROV + DR_PROV end subgraph "dr-node Container" - DR-NODE + DR_NODE end subgraph "MariaDb Container" MARIADB end - classDef blue fill:#33f,stroke:#333,color:#fff - classDef yellow fill:#ff0,stroke:#333,color:#000 - classDef orange fill:#f90,stroke:#333,color:#000 + classDef blueStyle fill:#33f,stroke:#333,color:#fff + classDef yellowStyle fill:#ff0,stroke:#333,color:#000 + classDef orangeStyle fill:#f90,stroke:#333,color:#000 - class DR-PROV blue - class DR-NODE yellow - class MARIADB orange + class DR_PROV blueStyle + class DR_NODE yellowStyle + class MARIADB orangeStyle vnfrqts/requirements --- VES publishAnyEvent Call Flow ------------------------------------------------------ @@ -371,21 +268,10 @@ This pattern is identical in VES 7.1 (``ves7_1spec.rst``) and VES 7.2 **Before** (seqdiag): -.. code-block:: rst +.. image:: media/publishAnyEvent.png + :alt: publishAnyEvent Call Flow (original seqdiag rendering) - .. seqdiag:: - :caption: ``publishAnyEvent`` Call Flow - - seqdiag { - edge_length = 250; - client -> listener [label = "POST /eventlistener/v7"]; - client <- listener [label = "HTTP 202 Accepted", note = "sync response"]; - === Error Scenario === - client -> listener [label = "POST /eventlistener/v7"]; - client <- listener [label = "HTTP 4XX/5XX", note = "sync response"]; - } - -**After** (mermaid --- Gerrit 143518, WIP): +**After** (Mermaid): .. mermaid:: :caption: ``publishAnyEvent`` Call Flow @@ -413,21 +299,10 @@ This pattern is identical in VES 7.1 (``ves7_1spec.rst``) and VES 7.2 **Before** (seqdiag): -.. code-block:: rst - - .. seqdiag:: - :caption: ``publishEventBatch`` Call Flow +.. image:: media/publishEventBatch.png + :alt: publishEventBatch Call Flow (original seqdiag rendering) - seqdiag { - edge_length = 250; - client -> listener [label = "POST /eventlistener/v7/eventBatch"]; - client <- listener [label = "HTTP 202 Accepted", note = "sync response"]; - === Error Scenario === - client -> listener [label = "POST /eventlistener/v7/eventBatch"]; - client <- listener [label = "HTTP 4XX/5XX", note = "sync response"]; - } - -**After** (mermaid --- Gerrit 143518, WIP): +**After** (Mermaid): .. mermaid:: :caption: ``publishEventBatch`` Call Flow @@ -450,11 +325,73 @@ This pattern is identical in VES 7.1 (``ves7_1spec.rst``) and VES 7.2 Note right of listener: sync response end +Mermaid syntax pitfalls +======================= + +Several issues were encountered during the conversion that are worth +noting for anyone performing a similar migration: + +Node identifiers with hyphens +----------------------------- + +Mermaid interprets bare hyphens in node identifiers as minus operators. +A node written as ``DR-PROV`` will cause a parse error. Use an explicit +label to work around this:: + + DR_PROV["DR-PROV"] + +The internal identifier uses underscores, while the displayed label +preserves the original hyphenated name. + +Reserved ``classDef`` names +--------------------------- + +Mermaid reserves certain colour keywords. Defining a class called +``blue``, ``green``, or ``orange`` can conflict with the parser in some +Mermaid versions. Use descriptive suffixed names instead:: + + classDef blueStyle fill:#33f,stroke:#333,color:#fff + class MY_NODE blueStyle + +Applying the migration to other projects +========================================= + +The steps below summarise the process used for ONAP and can be followed +by any Sphinx-based documentation project that depends on blockdiag or +seqdiag. + +1. **Audit repositories** --- search for live ``.. blockdiag::`` and + ``.. seqdiag::`` directives across all documentation sources. + +2. **Update** ``docs/conf.py`` --- remove ``sphinxcontrib.blockdiag`` and + ``sphinxcontrib.seqdiag`` from the ``extensions`` list; add + ``sphinxcontrib.mermaid``. + +3. **Update** ``requirements-docs.txt`` --- remove the blockdiag/seqdiag + packages and add ``sphinxcontrib-mermaid``. + +4. **Remove Pillow workarounds** --- delete any ``Pillow<10`` pins from + ``tox.ini`` or constraint files that were added solely to keep + blockdiag functioning. + +5. **Convert each diagram** --- rewrite every ``.. blockdiag::`` directive + as a ``.. mermaid:: graph`` and every ``.. seqdiag::`` directive as a + ``.. mermaid:: sequenceDiagram``. See :ref:`diagrams-blockdiag-to-mermaid` + for a full syntax-mapping guide with worked examples. + +6. **Verify the build** --- run ``tox -e docs`` with the target Python + version (3.13 or later) and confirm that ``sphinx-build -W`` + (warnings-as-errors) passes and all diagrams render correctly. + +7. **Clean up config-only repositories** --- any repository that loads the + blockdiag/seqdiag extensions without using any directives needs only + the configuration changes from steps 2--4. + Build verification ================== -All 5 repositories have been built locally with ``tox -e docs`` using -Python 3.13 and ``sphinxcontrib-mermaid``. Results: +All 5 repositories were built with ``tox -e docs`` using Python 3.13 and +``sphinxcontrib-mermaid``: .. list-table:: :header-rows: 1 @@ -483,8 +420,7 @@ Python 3.13 and ``sphinxcontrib-mermaid``. Results: * - ``vnfrqts/requirements`` - 3.13 - ✅ OK - - 157 pre-existing ``needs.link_ref`` warnings (unrelated); - all 4 mermaid ``sequenceDiagram`` blocks render correctly + - All 4 Mermaid ``sequenceDiagram`` blocks render correctly Remaining work ============== @@ -505,7 +441,7 @@ ever using a directive. Those repositories require only: 4. Remove any ``Pillow<10`` workaround from ``tox.ini`` These are mechanical changes that carry no risk of content regression and -can be batched into a single bulk-update Gerrit topic. +can be batched into a single bulk-update topic. Update central doc repository constraints ------------------------------------------ @@ -516,52 +452,4 @@ Once all downstream repositories have been cleaned up, the central 1. Remove ``sphinxcontrib-blockdiag`` and ``sphinxcontrib-seqdiag`` from ``docs/requirements-docs.txt`` 2. Remove them from ``etc/upper-constraints.onap.txt`` -3. Add ``sphinxcontrib-mermaid`` to both files (if not already present) - -Ask of the TSC -============== - -1. **Review and approve** `Gerrit 143518 - `_ - (``vnfrqts/requirements`` --- 4 seqdiag → mermaid conversions). - This is the last content-migration change. A committer from the - VNF Requirements project is needed for Code-Review +2. - -2. **Acknowledge** that the 4 already-merged changes (buscontroller, - datarouter, sdc, sdnc/oam) are complete. - -3. **Approve the plan** to batch-clean the remaining 32 config-only - repositories as a follow-up Gerrit topic. - -Timeline -======== - -.. list-table:: - :header-rows: 1 - :widths: 20 60 20 - - * - Date - - Milestone - - Status - * - 2026-03-02 - - Root cause analysis of Pillow/blockdiag incompatibility - - ✅ Done - * - 2026-03-03 - - Audit of all ONAP repos for live blockdiag/seqdiag directives - - ✅ Done - * - 2026-03-03 - - Migration guide published in ``onap/doc`` - - ✅ Done - * - 2026-03-04 - - Gerrit changes for dmaap/buscontroller, dmaap/datarouter, - sdc, sdnc/oam - - ✅ Merged - * - 2026-03-05 - - Gerrit change for vnfrqts/requirements (4 seqdiag diagrams) - - ⏳ WIP - * - TBD - - Bulk config-only cleanup of 32 repositories - - 📋 Planned - * - TBD - - Update central doc repo constraints - - 📋 Planned \ No newline at end of file +3. Add ``sphinxcontrib-mermaid`` to both files (if not already present) \ No newline at end of file diff --git a/examples/sphinx/master/tox.ini b/examples/sphinx/master/tox.ini index b9d7eb44b..c748ab9f7 100644 --- a/examples/sphinx/master/tox.ini +++ b/examples/sphinx/master/tox.ini @@ -4,28 +4,28 @@ envlist = docs,docs-linkcheck,docs-spellcheck skipsdist = true [testenv:docs] -basepython = python3.8 +basepython = python3.13 deps = + setuptools>=65.0.0 -r{toxinidir}/requirements-docs.txt - -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h=master commands = sphinx-build -W -q -b html -n -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/html [testenv:docs-linkcheck] -basepython = python3.8 +basepython = python3.13 deps = + setuptools>=65.0.0 -r{toxinidir}/requirements-docs.txt - -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h=master commands = sphinx-build -W -q -b linkcheck -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/linkcheck [testenv:docs-spellcheck] -basepython = python3.8 +basepython = python3.13 deps = + setuptools>=65.0.0 -r{toxinidir}/requirements-docs.txt - -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h=master commands = - sphinx-build -W -q -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck + sphinx-build -W -q -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck \ No newline at end of file diff --git a/examples/sphinx/release/tox.ini b/examples/sphinx/release/tox.ini index 4629c8313..2b868fea9 100644 --- a/examples/sphinx/release/tox.ini +++ b/examples/sphinx/release/tox.ini @@ -4,28 +4,28 @@ envlist = docs,docs-linkcheck,docs-spellcheck skipsdist = true [testenv:docs] -basepython = python3.8 +basepython = python3.13 deps = + setuptools>=65.0.0 -r{toxinidir}/requirements-docs.txt - -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h={release} commands = sphinx-build -W -q -b html -n -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/html [testenv:docs-linkcheck] -basepython = python3.8 +basepython = python3.13 deps = + setuptools>=65.0.0 -r{toxinidir}/requirements-docs.txt - -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h={release} commands = sphinx-build -W -q -b linkcheck -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/linkcheck [testenv:docs-spellcheck] -basepython = python3.8 +basepython = python3.13 deps = + setuptools>=65.0.0 -r{toxinidir}/requirements-docs.txt - -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h={release} commands = - sphinx-build -W -q -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck + sphinx-build -W -q -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck \ No newline at end of file -- 2.16.6