You and @pfmoore are right. I need to research the different VCSs to get the forms of the different revision identifiers.
I was more thinking along the lines of that I read version = '> 3.2' as āa valid version is greater than 3.2ā, and versions = '> 3.2' as āvalid versions are greater than 3.2ā. This is more an idea I wanted to make sure is out there and argued against, and I donāt have a preference.
This format needs to be a consensus, but like the version key, I want the idea to be considered. Iām not sure thereās a benefit, when itās so easy to split and strip the version string, and brackets add to clutter.
I had thought about that: if we did that, the format would get more complicated. Weād have to come up with a TOML replacement for the logical operators allowed in the environment markers (even if theyāre not likely common in the real-world). In addition, weād lose the concise and familiar Pythonic syntax of environment markers, and probably some extensibility.
I need to put this in the rationale.
I like the idea of explicitly stating the VCS in the requirement, so a reader can know exactly which to install to use the package. Iām not a fan of using the key to specify which VCS, as it can (highly unlikely) conflict with a future key and the fact that itās a VCS-type requirement becomes more implicit, but it does make sense from a readability and ease-of-use standpoint.
Again, I have to reach other VCSās revision identifiers, but Iād rather keep the revision in the same string, as that seems most common in the wider industry.
This makes sense, however remember that the optional dependencies are currently used to define dependencies for each of the projectās extras, so rather than optional = true, it would have to specify which extra it is for, eg for-extra = 'accelerated'.
Thanks for the feedback, Iāll update the PEP tonight.