Thanks, this is a very helpful clarifying wall of text But it has genuinely clarified things. In particular, I hadnāt realised that the rules for pyproject.toml were different from core metadata.
FWIW, the core metadata rules make sense to me, and do indeed function in the way Iād like (for the most part, though I now donāt trust my belief that unspecified fields are meant to error, rather than being used at your own risk). The pyproject.toml rules are overly strict, IMHO, but people do like getting to reject userās code rather than deal with itā¦
My only real interest here is in not adding more pointless restrictions on build backends (and I do really like the idea of making wheel dependencies stricter than the sdist, since it would allow us conda-like behaviour in PyPI packages, solving a whole lot of compatibility issues quite conveniently). It doesnāt seem like new restrictions are likely though, so Iāll bow out.
If you mean e.g. defining project.dependenciesanddynamic = ["Requires-Dist"], I donāt recall if that was suggested. Best I can think of is it waters down the static data as itās accurate but incomplete. Since thatās currently not allowed I could see that working around the issue of breaking pre-existing pyproject.toml files.
Sorry for the wall of text. Iām way too concerned about adding confusion, so I end up adding qualifiers. And I always default to ātoo much textā anyway, as you well know Glad it helped anyway.
I agree on both counts.
To alleviate your fear,
Fields defined in the following specification should be considered valid, complete and not subject to change.
the ācompleteā in this says that unspecified fields should not be present.
I agree it would be useful to solve this issue, I think itās something that would be genuinely useful to have. Whether it happens largely depends on whether we can get an acceptable proposal, though (hence my insistence on clarity and precisionā¦)
No, because I donāt know how Requires-Dist-Dynamic is meant to work. Can you state your new proposal (including whatever needs to change in pyproject.toml, and any associated core metadata changes needed to include Requires-Dist-Dynamic)? If you do that, Iāll try to restate my example in terms of that proposal.
Well, dynamic = ["dependencies"], but otherwise yes. Weāre all doing it now
I think thatās the most reasonable possibility we have for moving forward, but @FFY00 isnāt willing to go that way.