Skip to content

chore(ci): stop Dependabot reproposing the guarded setuptools ceiling - #94

Merged
karlwaldman merged 1 commit into
mainfrom
chore/dependabot-ignore-setuptools
Aug 22, 2026
Merged

chore(ci): stop Dependabot reproposing the guarded setuptools ceiling#94
karlwaldman merged 1 commit into
mainfrom
chore/dependabot-ignore-setuptools

Conversation

@karlwaldman

Copy link
Copy Markdown
Member

Follow-up to #93, which was closed rather than merged.

What

Adds ignore: setuptools to the pip ecosystem in .github/dependabot.yml.

Why

The setuptools>=70.1,<77 build requirement is capped on purpose, and the
cap is asserted by a guard test:

tests/test_release_readiness.py:222-230

def test_packaging_configuration_remains_compatible_with_supported_python() -> None:
    project = (ROOT / "pyproject.toml").read_text()
    # Python 3.8 resolves a setuptools release whose schema does not yet accept
    # the PEP 639 string form. Keep the PEP 621 table while 3.8 is supported.
    assert 'requires = ["setuptools>=70.1,<77", "wheel"]' in project
    assert 'license = {file = "LICENSE"}' in project
    assert 'requires-python = ">=3.8"' in project

We still ship requires-python = ">=3.8" with the legacy PEP 621
license = {file = "LICENSE"} table. setuptools 77+ deprecates that table in
favour of the PEP 639 string form, which the setuptools release resolvable on
Python 3.8 cannot parse.

Verified 2026-08-22: PR #93 proposed raising the ceiling to <85 and went
red on all five Python jobs (3.8/3.9/3.10/3.11/3.12) in
run 32056298358
with exactly that assertion. Any future bump lands the same way, so the weekly
pip run can only ever produce a red PR here.

Remove this ignore when Python 3.8 support is dropped — that, not raising the
ceiling, is what unblocks the cap.

Verification

.github/dependabot.yml parses and carries the ignore:

$ python3 -c "import yaml; d=yaml.safe_load(open(\"\.github/dependabot.yml\")); print(d[\"updates\"][0][\"ignore\"])"
[{'dependency-name': 'setuptools'}]

Config-only change; no runtime or packaging surface touched.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JKAExynd9zoKwt6rYA66EA

The setuptools build requirement is capped at <77 deliberately, and the cap
is asserted by tests/test_release_readiness.py::
test_packaging_configuration_remains_compatible_with_supported_python.

We ship requires-python = ">=3.8" with the legacy PEP 621
license = {file = "LICENSE"} table. setuptools 77+ deprecates that table in
favour of the PEP 639 string form, which the setuptools release resolvable on
Python 3.8 cannot parse — so raising the ceiling breaks the sdist build on the
oldest Python we support. PR #93 proposed <85 and went red on all five Python
jobs for exactly this reason; it was closed rather than merged.

Ignoring setuptools here keeps the weekly pip run from reopening a PR that can
only ever land red. Remove the ignore when Python 3.8 support is dropped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JKAExynd9zoKwt6rYA66EA
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4bc6de34-31c8-422f-843f-6c67b8b0a2fb


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@karlwaldman
karlwaldman merged commit 93aead3 into main Aug 22, 2026
7 checks passed
@karlwaldman
karlwaldman deleted the chore/dependabot-ignore-setuptools branch August 22, 2026 11:59
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