Skip to content

Resolve the open dependency updates and stop the recurring failures - #55

Merged
michael-L-i merged 3 commits into
mainfrom
agent/dependency-hygiene
Aug 15, 2026
Merged

michael-L-i merged 3 commits into
mainfrom
agent/dependency-hygiene

Conversation

@michael-L-i

Copy link
Copy Markdown
Owner

Supersedes #49, #50, #51 and #52, all four of which were failing CI for
structural reasons rather than because the underlying updates were wrong.

Why every Dependabot PR was failing

#51 and #52 (codeql-action). CodeQL requires all github/codeql-action
steps to run the same version. Dependabot opened init and analyze as two
separate PRs, so each one left codeql.yml mismatched and the run failed:

Not all workflow steps that use github/codeql-action actions use the same
version. Please ensure that all such steps use the same version to avoid
compatibility issues.

Neither PR could ever pass alone. Bumping both together to v4.37.6 does.

#49 (cryptography) and #50 (spaCy). CI verifies that requirements.lock
matches uv export. Dependabot updates pyproject.toml and uv.lock but
cannot regenerate requirements.lock, so the export check failed on every
job in the matrix. This affects every Python update, not just these two.

What this does

  1. codeql-action to v4.37.6 in both steps. SHA 5595ccaf verified against
    the upstream v4.37.6 tag, matching what Dependabot proposed.
  2. cryptography to 50.0.0, with uv.lock and requirements.lock
    regenerated using the exact command CI checks.
  3. Dependabot config reworked so these classes of failure stop recurring:
    • actions/* and github/* are grouped into one PR, so paired steps like
      codeql init and analyze can never be split again.
    • hashgraph-online/ai-plugin-scanner-action is deliberately left
      ungrouped. It is the only third-party action the repository Actions
      policy allows, so each bump should arrive as its own reviewable PR.
    • spaCy is ignored at >=3.8.14.

Why spaCy is ignored rather than merged

pyproject.toml pins spacy>=3.8.9,<3.8.14 with this note:

spaCy 3.8.14 omitted CPython 3.14 macOS ARM wheels. Keep the Python 3.14
compatible 3.8.9-3.8.13 range until upstream publishes a fixed release.

That is still true. Checking PyPI directly, both 3.8.14 and 3.8.15 publish 30
wheels each and zero are cp314, for macOS ARM or any other platform. #50
would have widened the range into exactly the versions that break the macOS
Python 3.14 jobs. Without an ignore entry, Dependabot reopens it every week.

Drop the ignore entry and widen the pyproject constraint together, once
upstream ships cp314 wheels.

Verification

  • uv lock --check and the diff -u requirements.lock export check pass locally.
  • Full unit suite green, 101 tests.

CodeQL requires every github/codeql-action step to run the same version.
Dependabot opened init and analyze as separate PRs (#51, #52), so each one
left the workflow mismatched and Analyze Python failed with 'Not all
workflow steps that use github/codeql-action actions use the same
version'. Bumping both together is the only form that passes.
Transitive dependency via pyjwt[crypto]. Dependabot (#49) updated uv.lock
without regenerating requirements.lock, so the production dependency
export check failed on every job. Both lockfiles are regenerated here with
the same command CI verifies.
Groups actions/* and github/* into one pull request so related steps such
as codeql-action init and analyze can never be bumped apart again. The HOL
scanner action stays ungrouped because it is the only third-party action
the Actions policy allows and each bump deserves its own review.

spaCy is ignored at 3.8.14 and above: those releases still ship no CPython
3.14 wheels, so Dependabot was reopening a change every week that would
break the macOS Python 3.14 jobs and contradict the pyproject constraint.
@michael-L-i
michael-L-i merged commit a6347b3 into main Aug 15, 2026
18 checks passed
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