Repository navigation
fix: pin the docs extra back to its audited versions (1.0.1) - #44
Merged
Merged
Conversation
Automation bumped griffe, mkdocstrings-python, mkdocs-gen-files, mkdocs-literate-nav and mkdocs-section-index past the boundary the comments beside them describe, and the comments were left behind saying the opposite: the file simultaneously pinned griffe==2.3.0 and explained that 1.15.0 was the newest release verified clean. Checked rather than assumed. Every one of the five bumped releases depends on the package its comment warns about: griffe 2.3.0 pulls griffelib and griffecli, mkdocstrings-python 2.0.8 pulls griffelib, and the three mkdocs plugins pull properdocs, which hijacks the mkdocs import namespace through a sys.meta_path hook. The audited versions build the documentation with mkdocs --strict unchanged, so nothing depended on the newer ones. Only "pip install cmakeless[docs]" and this project's own documentation build were ever affected. The package itself still has exactly one runtime dependency. dependabot.yml now ignores all five. They are pinned for supply-chain reasons rather than compatibility, and that is not a distinction an automated version bump is able to make.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restores the
docsextra's five pinned packages to their audited versions,and stops Dependabot from moving them again. Releases as 1.0.1.
The pins and the comments beside them had come apart.
pyproject.tomlsimultaneously said:
Checked rather than assumed, straight from PyPI metadata. Every one of the
five bumped releases depends on the package its own comment warns about:
griffe2.3.0griffelib==2.3.0,griffecli==2.3.01.15.0mkdocstrings-python2.0.8griffelib>=2.02.0.2mkdocs-gen-files0.6.1properdocs>=1.6.50.6.0mkdocs-literate-nav0.6.3properdocs>=1.6.50.6.2mkdocs-section-index0.3.12properdocs>=1.6.50.3.10properdocshijacks themkdocsimport namespace through asys.meta_pathhook;
griffelibreplaces the realgriffeunder a new name.Blast radius
Limited, but the published v1.0.0 metadata carries it permanently:
pip install cmakelesswas never affected. The package has exactly oneruntime dependency, Typer.
docsis an optional extra.pip install cmakeless[docs], and this repository's own docs CIjob, which installs
.[docs]on every run.mkdocs build --strictpasses unchanged on the audited versions, so nothingactually depended on the newer ones.
Preventing a repeat
.github/dependabot.ymlnow ignores all five. They are pinned forsupply-chain reasons rather than compatibility, which is not a distinction an
automated version bump can make, so the pins move only when a human
re-audits the newer release and updates the comment along with it.
Checklist
metadata, and the docs build is the thing that exercises it.
CHANGELOG.mdupdated under[1.0.1].ruff check .,ruff format --check .andmypy srcpass locally.mkdocs build --strictpasses on the restored pins.Notes for reviewers
The honest part: this rode into v1.0.0 through the merge. I reviewed my own
diff carefully and never diffed
main's incoming commits, so two Dependabotbumps that had landed on
mainwhile I worked went unexamined. Diffing whatis being merged in, not only what is being merged out, is the lesson.