Repository navigation
Say the licence once, so anything can be built at all - #9
Merged
Merged
Conversation
Every CI job on main is failing, and so would every release job, on a repository nobody had changed. setuptools 77 implemented PEP 639: a project may state its licence as an SPDX expression or as a classifier, and stating it both ways is now an error rather than a redundancy. pyproject.toml did both. The classifier goes; the expression stays, because it is the one that is not deprecated. The build-system floor moves from setuptools 68 to 77 at the same time, for the other half of the same problem: below 77 that same line is read as the legacy licence field, which wants a table and not a string, and the build fails from the other direction. Pinning the floor makes which of the two happens a decision rather than a property of whichever setuptools a runner happened to cache. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every CI job on
mainis failing, and every release job would fail the sameway, on a repository nobody had changed. This is a two-line fix and it blocks
the v1.1.0 release.
What happened
setuptools 77 implemented PEP 639: a
project may state its licence as an SPDX expression or as a trove
classifier, and stating it both ways is now an error rather than a redundancy.
pyproject.tomldid both:Nothing in the repository changed to cause it — the runners' setuptools did. The
failure is in
pip install -e, so it takes out every test job on every platformand both packaging jobs with it.
The fix
The classifier goes and the expression stays, that being the one which is not
deprecated.
The build-system floor moves from
setuptools>=68to>=77at the same time,for the other half of the same problem: below 77 that same
licenseline isread as the legacy licence field, which wants a table rather than a string,
and the build fails from the other direction. Pinning the floor makes which of
the two happens a decision rather than a property of whichever setuptools a
runner happened to cache.
Checked
pip install -e .succeeds locally against setuptools 80.would only have produced a red build. Once this merges the tag goes back on
and the release builds for real.
🤖 Generated with Claude Code