-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PEP 621 implementation (package metadata in pyproject.toml) #377
Comments
This was the option I was thinking of. I still like the other way round from the user perspective - the module name is clear before you get to publishing a project - but I don't think it's worth doing odd things with name for.
Is the idea that For |
I believe |
I'm making a start on this in the pep621 branch. Not ready for testing yet, though. |
This is hopefully ready to try out now - see PR #393. |
The documentation wasn’t updated, right? So people would still use |
Yup, my thinking is that it will be experimental for the 3.2 release - I'll mention it in the release notes, but not in the body of the documentation, so early adopters can try it out and we can make any tweaks if necessary. Then hopefully it will be documented for 3.3. |
Sounds good, I’ll try it when 3.2 comes out then! |
I've added support for generating PEP 621 Flit setup to Scikit-HEP/cookie: scientific-python/cookie#21 - really nice to see two unrelated packages (flit and trampolim) able to read the same input! |
PEP 621 has been provisionally accepted. The provisional phase has been limited to three months, and it would be best if Flit could try it out in the period to figure out if there are any rough edges.
I compared configurations in both Flit and PEP 621, and here’re fields I think may need work to adopt.
version
anddescription
should be marked as dynamic in Flit.name
: Flit by default infersdist-name
frommodule
, so we have two choices here, either strictly use it as the direct replacement ofdist-name
(i.e. continue to recommendmodule
by default and markname
indynamic
), or requirename
and infermodule
from it instead.author
: PEP 621 accepts an array (of objects), butAuthor
andAuthor-email
in Core Metadata are single-use, so some combination logic is needed.home-page
: PEP 621 explicitly omitted this. It’s probably easiest to just not useHome-page
in Core Metadata at all and only generateProject-URL
fields.flit init
can generate aurls = { Homepage = "..." }
instead.readme
: Flit currently always infers content type from file extension, but PEP 621 allows explicitly setting content type, or even including the text directly inpyproject.toml
. This shouldn’t be a problem eventually, but the code to extract the value needs some refactoring.license
: Flit’s currentlicense
field is semantically different from PEP 621. I’m not sure if this would be problematic.The text was updated successfully, but these errors were encountered: