Skip to content

ci: Dependabot watches Python dependencies, not only GitHub Actions - #1652

Merged
dimitri-yatsenko merged 3 commits into
masterfrom
ci/dependabot-pip
Nov 10, 2026
Merged

dimitri-yatsenko merged 3 commits into
masterfrom
ci/dependabot-pip

Conversation

@dimitri-yatsenko

@dimitri-yatsenko dimitri-yatsenko commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Summary

.github/dependabot.yml covers only the github-actions ecosystem, so Dependabot never proposes version updates for the Python dependencies in pyproject.toml. This adds a pip entry.

  • versioning-strategy: increase-if-necessary: datajoint is a library, and its requirements are minimum versions (>=). A requirement that already admits a new release is left alone, so routine releases of numpy, pandas, etc. do not raise datajoint's minimums. In practice, version-update PRs appear only when an upper bound (<) excludes a new release.
  • Version updates are one PR per package: each one raises an upper bound and gets its own test run and review.
  • deepdiff majors are ignored: deepdiff<9; python_version >= '3.15' is deliberate (deepdiff 9 requires cachebox<6, which has no 3.15 wheels), so Dependabot does not propose widening it.
  • Security update PRs are grouped into one PR per run (applies-to: security-updates). The alerts and security updates themselves come from the dependency graph and the repository's Dependabot security-updates setting, not from this file; this entry only groups the resulting PRs.
  • Weekly schedule, Wednesday 09:00 Central.

Related

Adds a pip entry for pyproject.toml alongside the github-actions one.
increase-if-necessary keeps minimum-version requirements unchanged when
they already admit a new release; security updates are grouped.

@MilagrosMarin MilagrosMarin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @dimitri-yatsenko, this looks good, and increase-if-necessary is the right strategy for a library.

One thing to handle before merging:

  • deepdiff cap: pyproject.toml deliberately keeps deepdiff<9; python_version >= '3.15' (cachebox has no 3.15 wheels). With increase-if-necessary, Dependabot widens upper bounds to admit new majors, so I'd expect a weekly PR bumping it to <10. Suggest ignoring that:

        ignore:
          - dependency-name: "deepdiff"
            update-types: ["version-update:semver-major"]

Minor:

  • Version updates aren't grouped (only applies-to: security-updates is), so the remaining < caps, extras and the test dependency group will arrive as one PR per package. Fine if that's intended.
  • Small wording note for the description: security alerts and fixes come from the dependency graph and the repo setting rather than this file, so the new entry mainly adds version updates and groups the security PRs.

Confirmed it merges cleanly with #1651 in either order. Let me know what you think!

pyproject.toml keeps deepdiff<9 for Python 3.15 on purpose: deepdiff 9
requires cachebox<6, which has no 3.15 wheels. With increase-if-necessary,
Dependabot would propose widening that cap at every new deepdiff major, so
ignore semver-major updates for deepdiff.

Also state that version updates stay one PR per package, since each raises
an upper bound and deserves its own test run and review.
@dimitri-yatsenko

Copy link
Copy Markdown
Member Author

Thanks @MilagrosMarin.

  • deepdiff cap: Fixed in 550bd8f: the pip entry now ignores version-update:semver-major for deepdiff, with a comment pointing at the 3.15 cap in pyproject.toml.
  • Grouping: I'm keeping version updates one PR per package. With increase-if-necessary they only appear when an upper bound excludes a new release, and each such bump deserves its own CI run and review. 550bd8f says so in a comment.
  • Description: Updated. It now says the alerts and security updates come from the dependency graph and the repository setting, and that this file adds version updates and groups the security PRs.

MilagrosMarin
MilagrosMarin previously approved these changes Nov 6, 2026

@MilagrosMarin MilagrosMarin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @dimitri-yatsenko, all addressed in 550bd8f:

✅ deepdiff majors ignored, with the pointer to the 3.15 cap in pyproject.toml
✅ One PR per package for version updates makes sense with increase-if-necessary, and the comment explains it
✅ Description now separates the dependency graph and repo setting from what this file adds

The failing .github/dependabot.yml check should clear once #1651 merges (time: "9:00" on master). LGTM!

Dependabot rejects time "9:00" (must match ^\d\d:\d\d$), so the
config failed to parse and no GitHub Actions updates were scheduled.

(cherry picked from commit 247125c)
@dimitri-yatsenko

Copy link
Copy Markdown
Member Author

The failing .github/dependabot.yml check came from time: "9:00" in the existing github-actions entry, which this branch inherits from master. I cherry-picked the fix from #1651 (9:00 → 09:00), so this PR passes on its own. Both PRs make the identical change and still merge cleanly in either order. The file also validates against the SchemaStore Dependabot schema.

@MilagrosMarin, could you take another look? The only change since your approval is this one line.

@MilagrosMarin MilagrosMarin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @dimitri-yatsenko! Re-reviewed c9e65d9:

✅ Only change since my last review is time: "9:00" → "09:00" in the github-actions entry
✅ .github/dependabot.yml check now passes
✅ Identical to the #1651 fix, so the two merge cleanly in either order

LGTM!

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.

2 participants