Skip to content

Maintenance#119

Merged
carlos-jenkins merged 8 commits intomasterfrom
maintenance
Apr 6, 2026
Merged

Maintenance#119
carlos-jenkins merged 8 commits intomasterfrom
maintenance

Conversation

@carlos-jenkins
Copy link
Copy Markdown
Contributor

No description provided.

@carlos-jenkins carlos-jenkins requested a review from dajose March 14, 2026 00:12
@carlos-jenkins carlos-jenkins self-assigned this Mar 14, 2026
@carlos-jenkins carlos-jenkins marked this pull request as draft March 14, 2026 00:13
Comment thread pyproject.toml Outdated
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
requires-python = ">=3.9"
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.

does it not work on py3.7?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

No, the lowest I can get it to work is what packagedata supports, so 3.8

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Older version would need to use older package versions. No change on their part.

@carlos-jenkins carlos-jenkins marked this pull request as ready for review March 27, 2026 16:57
dajose
dajose previously approved these changes Mar 27, 2026
Python 3.8 and 3.9 are capped at setuptools<=75.x, which predates
PEP 639 support. PEP 639 introduced a plain SPDX string as the
preferred format for the `license` field in pyproject.toml
(e.g. `license = "Apache-2.0"`). Support for this format was added
in setuptools 77.0.0, but that release raised the minimum Python
requirement to Python>=3.9 (confirmed on PyPI).

This creates an impasse:

- Using the PEP 639 format causes a build error on Python 3.8:
  "project.license must be valid exactly by one definition"

- Reverting to the old TOML table format (license = {text = "Apache-2.0"})
  is not just a deprecation warning — setuptools explicitly states that
  builds using the old format will break after 2027-02-18:

    SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated
    Please use a simple string containing a SPDX expression for
    `project.license`. [...] By 2027-Feb-18, you need to update your
    project and remove deprecated calls or your builds will no longer
    be supported.

The resolution is to keep the modern PEP 639 format in pyproject.toml
as the source of truth (used by all current Python versions in the
`test` job), and add a sed patch step in the `test-legacy` job that
rewrites the field to the old table format before invoking tox. This
keeps the main configuration clean and forward-looking while
unblocking CI for legacy Python versions without maintaining a
separate pyproject file.
@carlos-jenkins carlos-jenkins merged commit cd47f01 into master Apr 6, 2026
9 checks passed
@carlos-jenkins carlos-jenkins deleted the maintenance branch April 6, 2026 21:25
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