Skip to content

Fix four security alerts, and the click/typer break that fails the docs build in #41 - #42

Open
hakonhagland wants to merge 6 commits into
OPM:masterfrom
hakonhagland:dependabot_nov2026
Open

hakonhagland wants to merge 6 commits into
OPM:masterfrom
hakonhagland:dependabot_nov2026

Conversation

@hakonhagland

Copy link
Copy Markdown
Collaborator

This takes the part of the Dependabot group update #41 that does not change the look of the documentation, fixes the reason #41 (and #32 before it) fails the docs build, and adds the fixes for the four open Dependabot security alerts. One commit per package. Only poetry.lock and one line of pyproject.toml change.

The rest of #41 — sphinx 7.3.7, sphinx-rtd-theme 3.1.0 and sphinx-versioned-docs 1.4 — changes the page layout and is left for a separate PR, where the rendered site can be reviewed on its own.

Bump urllib3 to 2.8.0 (commit 1)

Bump setuptools to 84.2.1 (commit 2)

  • Fixes Dependabot alert #58: GHSA-xmj3-9gf7-h52w. The fix is in 84.1.0; 84.2.1 is the latest 84.x release.

Bump click to 8.5.0 together with typer 0.27.3 (commit 3)

  • Why Bump the python-dependencies group across 1 directory with 7 updates #41 fails: sphinx-versioned builds its command line with typer, which is built on click. typer 0.9.0 gives click an option with a --no-... flag that is not a boolean flag, and click 8.2 and later reject that. With click 8.5.0 and typer 0.9.0, sphinx-versioned fails before doing anything, even for --help: TypeError: Secondary flag is not valid for non-boolean flag.
  • Why Dependabot left typer behind: it is only a transitive dependency. sphinx-versioned-docs asks for typer >= 0.9.0, and typer 0.9.0 accepts any click below 9, so nothing forced it forward.
  • The fix: move typer to 0.27.3, and add typer = ">=0.27.3,<1.0" to pyproject.toml, so the next group update cannot combine a new click with an old typer again.
  • typer 0.27.3 also brings rich 15.0.0 and the new small packages shellingham and annotated-doc, and no longer needs typing-extensions.

Bump coverage, pytest and pytest-mock (commits 4–6)

Testing

  • poetry run pytest tests passes on Python 3.11.
  • The full versioned docs build was run locally the same way the workflow does, in a fresh clone of this repository: sphinx-versioned -m master -b "$BRANCHES" --force --git-root ../../, with the branch list from get_doc_branches.sh. It builds master, release-2025.04, release-2025.10, release-2026.04 and the PR branch.
  • The output is the same as the live site. All 29 HTML pages of the four published versions, and the top-level index.html, were compared with the current gh-pages branch. The only difference is the extra version-menu entry for the PR branch itself, which every branch build adds.

Note on the lock file diff

One line in poetry.lock is not a version change: the markers line of colorama lists its two conditions (sys_platform == "win32" and platform_system == "Windows", joined by or) in the other order. Poetry 2.5.1 writes it this way when run locally, and Dependabot's run for #38 wrote it the other way. The meaning is the same.

After this is merged, #41 can be closed; the remaining theme upgrade will come as its own PR.

hakonhagland and others added 6 commits November 2, 2026 10:47
Fixes dependabot alerts #50, #52 and #53:
- GHSA-vxq7-64xx-v4gw (CVE-2026-97689): HTTPResponse.stream() and
  read_chunked() buffer an unbounded chunk-size line into memory
- GHSA-8988-9cw3-xx77 (CVE-2026-97687): the TLS configuration of an
  HTTPS proxy may be ignored or overridden
- GHSA-gh4c-6fx4-qh6g (CVE-2026-97688): chunked Deflate streaming can
  enter an infinite loop

urllib3 is a transitive dependency of requests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes dependabot alert #58:
- GHSA-xmj3-9gf7-h52w: Windows path escape through
  namespace_packages.txt during legacy wheel installation

The fix landed in 84.1.0; 84.2.1 is the latest 84.x release.
setuptools is a transitive runtime dependency pulled in by
sphinx-versioned-docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sphinx-versioned command of sphinx-versioned-docs builds its command
line with typer, which is built on click. typer 0.9.0 passes click an
option with a secondary (--no-...) flag that is not a boolean flag.
click 8.2 and later reject that, so with click 8.5.0 and typer 0.9.0
sphinx-versioned fails before doing anything, even for --help:

  TypeError: Secondary flag is not valid for non-boolean flag.

This is why the docs build fails in the Dependabot group updates OPM#32
and OPM#41. typer was left at 0.9.0 there because it is only a transitive
dependency: sphinx-versioned-docs asks for typer >= 0.9.0 and typer
0.9.0 accepts any click below 9.

Move typer to 0.27.3, which works with click 8.5.0, and add it to
pyproject.toml with that version as the lower bound, so a future group
update cannot combine a new click with an old typer again. The new
typer also brings rich 15.0.0, shellingham and annotated-doc, and no
longer needs typing-extensions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Taken from the Dependabot group update OPM#41. coverage is a dev
dependency; the lock file entry grows because 7.16.2 ships wheels for
more Python versions and platforms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Taken from the Dependabot group update OPM#41. pytest 9.2.0 also brings
packaging 26.3 and pluggy 1.7.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Taken from the Dependabot group update OPM#41.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are blocking the documentation dependency updates.

No open issues 🎉

What changed in this PR

Updates the documentation build dependencies to address four security alerts and resolve the Click/Typer incompatibility behind the failed builds in #41 and #32, while deferring layout-changing Sphinx upgrades.

Changes:

  • Updates urllib3 and setuptools to address the reported security alerts.
  • Upgrades Click and Typer together and adds a minimum Typer version constraint.
  • Refreshes coverage, pytest, pytest-mock, and related dependencies without changing the Sphinx or theme versions.
File Description
python/​sphinx_docs/​pyproject.toml Adds the Typer version constraint to prevent the incompatible dependency combination.
python/​sphinx_docs/​poetry.lock Records security, command-line compatibility, and test-tool dependency updates.

Review effort: Balanced

@hakonhagland
hakonhagland requested a review from akva2 November 2, 2026 10:28

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants