What precisely do you mean by “Metadata 2.0”? There was a spec with that name but it got withdrawn. If you mean 2.2 (PEP 643) then it’s blocked on implementation by PyPI - the PR is Metadata 2.2 and 2.3 by konstin · Pull Request #13606 · pypi/warehouse · GitHub. As far as I know, that’s only waiting on reviewers from the Warehouse team, so it’s blocked on them.
As far as accelerating it is concerned, that’s just the well known issue of “how do we get more resource for PyPI?” and I don’t know the answer to that one.
That’s basically it, I think. I guess it’s possible that PyPI will publish the metadata for sdists as separate files so that consumers can avoid downloading the full sdist, but I’m not sure how important that is (sdists are typically a lot smaller than wheels, aren’t they?)
I don’t know that there’s any sort of “roadmap” as such. It’s more about dependencies - backends can’t produce metadata 2.2 until PyPI allows it to be uploaded, and it’s pointless for installers to add support for it until there’s some on PyPI to justify doing so. Individual projects will work on support once it’s possible for them to do so, and when they have resources to do the work.
If PEP 643 was accepted in Oct/Nov 2020 (~3 years ago) and the PyPI PR was started in May 2023 (~1 year ago), it doesn’t seem like any installers will be in a rush to implement anything ahead of time.
For my own clarity, since you mentioned hatchling and not hatch, am I understand you to mean from the Build Backend perspective? Not from the Installer perspective right?
I’ve uploaded a test package using metadata 2.3, pyo3-mixed 2.1.5, to both testpypi and pypi: PKG-INFO. The next maturin release should write fully static metadata 2.3 for all source distributions and wheels (PyO3/maturin#1965).
I’m not sure if any indexes other than PyPI actually read the metadata version and reject versions they don’t know about. If they do, then yes, they should have been updated to allow version 2.2+. I’d hope that they’ve done this by now, though - the delays for PyPI are pretty unusual. And if they haven’t, they probably won’t until users start reporting that valid packages are getting rejected
Hmmm… it’s a bit of a race now isn’t it? If installers/resolvers like pip, poetry, uv etc don’t install or understand the newer Metadata, projects won’t want to publish the newer Metadata…