Skip to content

Let pip-compile own the lock files; run upgrade-dependencies quarterly - #1124

Merged
rkingsbury merged 1 commit into
materialsproject:mainfrom
rkingsbury:dependabot-config-cleanup
Jul 8, 2026
Merged

Let pip-compile own the lock files; run upgrade-dependencies quarterly#1124
rkingsbury merged 1 commit into
materialsproject:mainfrom
rkingsbury:dependabot-config-cleanup

Conversation

@rkingsbury

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #1122, which had to be hand-fixed because Dependabot produced internally inconsistent pip lock files.

The requirements/*.txt lock files are already generated by the upgrade-dependencies workflow using pip-compile --resolver=backtracking, which keeps every pinned (direct and transitive) dependency mutually consistent. Dependabot's pip ecosystem manages the same files but bumps individual pinned lines without a full resolver pass, so it can emit locks that don't actually install — e.g. in #1122 it set pydantic-core==2.47.0 next to pydantic==2.13.4 (which pins pydantic-core==2.46.4), and mpmath==1.4.1 next to sympy==1.14.0 (needs mpmath<1.4), both ResolutionImpossible.

Changes

  • .github/dependabot.yml — remove the pip ecosystem block so Dependabot no longer edits the lock files; the pip-compile workflow is now the single source of truth. GitHub Actions updates are unchanged. (Security updates are unaffected — they're configured in repo Settings > Security, not here.)
  • .github/workflows/upgrade-dependencies.yml — reduce the schedule from weekly (0 8 * * 1) to quarterly (0 8 1 1,4,7,10 *, i.e. 08:00 UTC on the 1st of Jan/Apr/Jul/Oct). The workflow can still be triggered on demand via workflow_dispatch.

Both files validated with yaml.safe_load.

🤖 Generated with Claude Code

The requirements/*.txt lock files are generated with pip-compile (backtracking
resolver) by the upgrade-dependencies workflow, which keeps them mutually
consistent. Dependabot's pip ecosystem instead bumps individual pinned lines
without a full resolve, which can produce internally inconsistent locks (e.g.
pydantic-core pinned to a version pydantic does not allow, as seen in materialsproject#1122).

- Remove the pip ecosystem from .github/dependabot.yml (keep github-actions) so
  the pip-compile workflow is the single source of truth for the lock files.
- Reduce the upgrade-dependencies schedule from weekly to quarterly (08:00 UTC
  on the 1st of Jan/Apr/Jul/Oct).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@rkingsbury rkingsbury added the github_actions Pull requests that update Github_actions code label Jul 8, 2026
@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.53%. Comparing base (ffd72fa) to head (4d680c1).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1124   +/-   ##
=======================================
  Coverage   69.53%   69.53%           
=======================================
  Files          47       47           
  Lines        4103     4103           
=======================================
  Hits         2853     2853           
  Misses       1250     1250           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@rkingsbury
rkingsbury merged commit cf97834 into materialsproject:main Jul 8, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update Github_actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant