Skip to content

PEP 639 license metadata #2696

@dgw

Description

@dgw

We were thinking about this 3 years ago (as of tomorrow), in 2022:

Put a pin in PEP 639 (deprecates/replaces License and the license-related classifiers) for later.

I tried directly using the license = "EFLv2" format, but it's not supported yet. So we'll have to take another modernization pass at the metadata once the deprecations and their replacements actually take effect I guess. (Attempt to future-proof rejected!) This is also why I haven't removed the license classifiers.

Originally posted by @dgw in #2328 (comment)

PEP 639 is supported as of setuptools 77. The holdup now is that setuptools 75.4 removed support for Python 3.8, and I'm not aware of a workaround to use PEP 639 style before a supporting setuptools version.

I believe we can create a distribution with newer Python and the modern metadata style, then install it on py3.8 as long as pip is new enough. Plugin repos that don't run tests on py3.8 haven't run into this problem when updating their TOML. The problem here is that the test suite covers py3.8, but you can't build the package on py3.8. (I'll remark that sopel-irc/sopel-remind#15 currently fails to run its tests on py3.8 for the same reason; it can't install a new enough setuptools.)

There are upload-artifact/download-artifact workflows that could help with this, but then the "installed" sopel would no longer point to the source tree—and that doesn't sound great.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BuildHousekeepingCode cleanup, removal of deprecated stuff, etc.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions