Sdists (again): Metadata standardisation incremental update

In the case of pip specifically, pip ignores sdist metadata (because it’s unreliable).

If there is a tool using existing sdist metadata, then (a) it’s probably broken anyway, and (b) it should still work as well as it ever did, it just won’t know that some fields are potentially more reliable than they used to be. That’s assuming it ignores the Dynamic field as it’s not aware of it. If it fails on an unknown field, then it’ll fail with metadata version 2.2, but it would do so with any new metadata version that introduced a new field.

Thank you!

So, “dynamic” means “computed property computed at [sdist] build time”?

… But we don’t record the provenance of the computed property: who/what/agent and when.

The proposed PEP suggests that the metadata schema specify which metadata properties are expected to be (re?) computed at build time.

But reification in order to track what and when each computed property was computed is not a part of the proposed PEP.

https://en.wikipedia.org/wiki/Reification_(computer_science)#On_Semantic_Web

https://patterns.dataincubator.org/book/reified-statement.html

RDF* extends RDF into a property graph such that reification of the relation in order to track arbitrary provenance metadata is trivial.

I mention this to teach interested parties; recognizing that this is a bit OT but an important long term metadata consideration.

Correct. The PEP is purely about ensuring that tools know when they can safely read a metadata field from a sdist, and use the value of that field directly without needing to invoke the PEP 517 mechanisms to take into account the build target.

Provenance and anything relating to a property graph is (IMO) offtopic for this proposal, as you say. If you want to discuss RDF, JSON-LD, or other aspects of wider metadata management, could you please do so in a new topic?

So far, this discussion has kept very focused (which is an encouraging departure from the way sdist discussions have gone historically :slightly_smiling_face:) so I’d like to keep it that way if I can.

3 Likes