Repository navigation
Audit Cross-Checks No Python Dependabot Ecosystem, and KiCadLibrary's requirements-dev.txt Is Untracked #2286
Description
Measured
A read-only sweep on 2026-10-02 covered all 22 active registry repositories. It read each repository's .github/dependabot.yml on main and develop, plus its full git tree, checking that no tree was truncated.
Python manifests that no pip or uv entry tracks:
| Repository | Manifest | What it declares | Entry needed |
|---|---|---|---|
| KiCadLibrary | requirements-dev.txt |
four dependencies with floors (pymupdf, pikepdf, Pillow, pytest) |
pip, directory /, for both main and develop |
Every other Python manifest is either tracked or has nothing to track:
- Tracked. aiopurpleair and Financial-Modeling use
uv /, homeassistant-purpleair usespip /, HomeAutomation-ConfigCloudInitusesuv, and Blogscriptsusespip. ESPHome-Config'seasystart/pythonis a uv workspace member, so the rootuv.lockand theuv /entry already cover it. - Config-only, nothing to track. These are the Scripts profile, with no
[project], no dependencies, and no lock: this hub's rootpyproject.toml, PlexCleanerRegressionTests, HomeAutomation-Config'sCloudflare,MutationSweep, andNotify, and Blogchecks.
Devcontainers no devcontainers entry tracks: only ESPHome-NonRoot, which #1609 already records. homeassistant-purpleair and ESPHome-Config declare devcontainers /. This hub's catalog/snippets/devcontainer/* files are templates, not a live devcontainer.
Also measured:
- Every declared ecosystem is dual-targeted at
mainanddevelop, and the file is byte-identical on both branches in all 18 repositories that have one. - EspDinIoT, DevKitCIoT, AudioCleaner, and HolidayLights carry no
.github/dependabot.ymlat all, as Dependabot: Five Private Repositories Still Stalled, and ESPHome-NonRoot Misses the devcontainers Ecosystem #1609 records. - PlexCleaner pins
uvx ruff@0.15.22anduvx mypy@2.3.0invalidate-task.yml, which no Dependabot ecosystem can update. The other uvx users run@latest. - Not verified: whether
devcontainers /in ESPHome-Config also scans.devcontainer/python/devcontainer.json.
The Gap Behind It
spec/audit.py asserts only the github-actions and devcontainers ecosystems a tree implies. Its own comment says that language ecosystems such as nuget, uv, and npm are directory-scoped and "not yet cross-checked". So setup.dependabot.ecosystems in spec/project-types.json is an intent the audit does not measure for Python, and a missing pip entry passes every audit.
Proposal
-
KiCadLibrary. Add
pipfor/, targeting bothmainanddevelop. KiCadLibrary is one of the seven repositories whose rulesets were deliberately left un-applied on 2026-10-02 pending a resync, so this can ride with that resync. -
spec/audit.py. Cross-check Python directories againstpip/uventries, using the profile rule this sweep applied by hand:- a directory carrying
uv.lockimpliesuv requirements*.txtimpliespip- a
pyproject.tomlwith[project]dependencies and no lock impliespiporuv, unless it is a member of a uv workspace whose root lock is tracked - a config-only
pyproject.tomlimplies nothing
Report a missing entry the way the github-actions and devcontainers checks already do.
- a directory carrying
-
Record in
AUDIT.mdthat auvx tool@versionpin in a workflow is invisible to Dependabot. Pin with@latest, or track the version through a manifest Dependabot reads.
Activity
Add a Pip Ecosystem to the Carried Dependabot Snippet (#3103)