Skip to content

doc: Remove sphinxcontrib-seqdiag Python package from RTD builds#66787

Merged
bluikko merged 1 commit into
ceph:mainfrom
bluikko:wip-doc-remove-pip-sphinxcontrib-seqdiag
Jan 5, 2026
Merged

doc: Remove sphinxcontrib-seqdiag Python package from RTD builds#66787
bluikko merged 1 commit into
ceph:mainfrom
bluikko:wip-doc-remove-pip-sphinxcontrib-seqdiag

Conversation

@bluikko

@bluikko bluikko commented Jan 5, 2026

Copy link
Copy Markdown
Contributor

This is a proactive PR to avoid breaking docs builds when Setuptools 81 starts to be used in the RTD builds process.

The sphnixcontrib-seqdiag Python package is not compatible with Setuptools 81 or later due to use of pkg_resources: https://setuptools.pypa.io/en/latest/pkg_resources.html. Warning in RTD build due to use of deprecated pkg_resources:

/home/docs/checkouts/readthedocs.org/user_builds/ceph/envs/66783/lib/python3.9/site-packages/sphinxcontrib/seqdiag.py:19: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.

Setuptools 81 release should be imminent, with the Python deprecation warning stating pkg_resources "removal as early as 2025-11-30".

Seqdiag seems to be unmaintained with the latest update at Pypi in the year 2021 and also no updates since in the git repo.

There are no seqdiag directives left in the docs after last seqdiags were removed in PR #52308.

Two other options would exist for fixing the situation but this seems to be the suitable one:

  • Pin setuptools<81: this could have adverse effects later if we'd be stuck forever in an old Setuptools version.
  • Fix seqdiag code: this does not seem to be worthwhile when the functionality of the package is not even used.

This PR also removes following Python packages that were dependencies of only sphinxcontrib-seqdiag:

  • blockdiag: discussion about this exists in https://docs.ceph.com/en/latest/dev/documenting/#blockdiag and I believe it is written in this way because it is simply out of date. In fact the whole blockdiag functionality was never configured in Sphinx; only the seqdiag (which seems to be a part of the "blockdiag suite") was configured.
  • seqdiag
  • Pillow
  • webcolors
Collecting blockdiag>=1.5.0 (from sphinxcontrib-seqdiag->-r admin/doc-requirements.txt (line 18))
  Downloading blockdiag-3.0.0-py3-none-any.whl.metadata (4.6 kB)
Collecting seqdiag>=0.9.3 (from sphinxcontrib-seqdiag->-r admin/doc-requirements.txt (line 18))
  Downloading seqdiag-3.0.0-py3-none-any.whl.metadata (3.4 kB)
Collecting Pillow>3.0 (from blockdiag>=1.5.0->sphinxcontrib-seqdiag->-r admin/doc-requirements.txt (line 18))
  Downloading pillow-11.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.0 kB)
Collecting webcolors (from blockdiag>=1.5.0->sphinxcontrib-seqdiag->-r admin/doc-requirements.txt (line 18))
  Downloading webcolors-24.11.1-py3-none-any.whl.metadata (2.2 kB)

Contribution Guidelines

  • To sign and title your commits, please refer to Submitting Patches to Ceph.

  • If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.

  • When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

You must only issue one Jenkins command per-comment. Jenkins does not understand
comments with more than one command.

This is a proactive PR to avoid breaking docs builds when Setuptools 81
starts to be used in the RTD builds process.

The sphnixcontrib-seqdiag Python package is not compatible with
Setuptools 81 or later due to use of pkg_resources:
https://setuptools.pypa.io/en/latest/pkg_resources.html

Setuptools 81 release should be imminent, with the Python deprecation
warning stating pkg_resources "removal as early as 2025-11-30".

Seqdiag seems to be unmaintained with the latest update at Pypi in
the year 2021 and also no updates to the seqdiag git repo.

There are no seqdiag directives left in the docs after last seqdiags
were removed in PR ceph#52308.

Two other options would exist for fixing the situation (see PR for
discussion) but this seems to be the suitable one.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
@bluikko bluikko force-pushed the wip-doc-remove-pip-sphinxcontrib-seqdiag branch from e4b950c to 15481e5 Compare January 5, 2026 06:31
@bluikko

bluikko commented Jan 5, 2026

Copy link
Copy Markdown
Contributor Author

The RTD build succeeds without any additional warnings/errors/etc. and the warning about pkg_resources deprecation is gone.

This PR is ready for review.

@bluikko bluikko marked this pull request as ready for review January 5, 2026 06:40
@bluikko bluikko requested a review from a team as a code owner January 5, 2026 06:40
@anthonyeleven

Copy link
Copy Markdown
Contributor

Makes sense to me, great job giving context to support the removal.

Might I request a followup PR to:

  1. Improve the language, s/mgr/Manager/ s/mon/Monitor/, other capitalization, North American English, etc.

  2. Insert the missing diagrams as graphics files: "The following diagrams outline the involved parties and how the interact when the clients
    query for the reports:" Say, via https://www.planttext.com/ or https://www.eraser.io/ai/plantuml-editor ?

Yes, generating these from DSL is more elegant, but as this PR shows, that comes with baggage. I'm kind of astounded that Ditaa still works, but that's a rabbithole for another day.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants