Skip to content

ci: install the docs toolchain from a hash-pinned requirements file#1361

Merged
markuslf merged 1 commit into
mainfrom
ci/hash-pin-docs-deps
Jul 10, 2026
Merged

ci: install the docs toolchain from a hash-pinned requirements file#1361
markuslf merged 1 commit into
mainfrom
ci/hash-pin-docs-deps

Conversation

@markuslf

Copy link
Copy Markdown
Member

Closes the last unpinned pip install in this repository (Scorecard PinnedDependenciesID, dismissed alert #67).

docs.yml ran pip install mkdocs mkdocs-material with no version pin at all, so every documentation build resolved whatever was newest on PyPI at that moment.

Why the existing dismissal no longer applies

Alert #67 was dismissed with:

Conscious tradeoff: --require-hashes blocks Dependabot from maintaining hashes automatically, so pip packages are pinned by version only.

That is no longer true, and this repository already contradicts it: pre-commit-autoupdate.yml installs with pip install --require-hashes --requirement .github/pre-commit/requirements.txt, and Dependabot maintains that hash-pinned file (see #1094). The second dismissed PinnedDependenciesID alert, #56, points at exactly that workflow and is stale.

This change applies the same mechanism to the docs toolchain and adds a /.github/docs watchpoint to dependabot.yml, matching what Linuxfabrik/mcp-server-icinga#31 just did.

Verification

Under UBI9/python-312, against a clean checkout:

  • pip install --require-hashes --requirement .github/docs/requirements.txt - exit 0
  • python3 tools/build-docs - exit 0, generates mkdocs.yml
  • mkdocs build --strict - exit 0

actionlint is clean.

`docs.yml` ran `pip install mkdocs mkdocs-material` with no pin at all.
Scorecard flags it as PinnedDependenciesID (dismissed alert #67).

That dismissal reads "--require-hashes blocks Dependabot from maintaining
hashes automatically", which no longer holds: `pre-commit-autoupdate.yml`
in this repo already installs with `--require-hashes` from
`.github/pre-commit/requirements.txt`, and Dependabot keeps that file
current (#1094). The same mechanism now covers the docs toolchain, with a
watchpoint for `/.github/docs`.

Verified under UBI9/python-312: `--require-hashes` install, then
`tools/build-docs` and `mkdocs build --strict`, all exit 0.
@markuslf markuslf merged commit d0934c5 into main Jul 10, 2026
6 checks passed
@markuslf markuslf deleted the ci/hash-pin-docs-deps branch July 10, 2026 14:56
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.

1 participant