Partially dynamic project metadata proposal (pre-PEP)

The metadata is static from the perspective of any build frontend. Unfortunately a naive build frontend produces binaries that can be used locally but must be “repaired” to be suitable for PyPI. The fact that PyPI can distribute binaries at all depends in large part on tools like auditwheel that do this.

Plenty of people still build/install from sdist. It just requires installing the non-Python dependencies and toolchain first. Also every redistributor like conda builds from the sdist but they don’t do the bundling which is only needed for PyPI. From their perspective the metadata is static.

The question is whether static vs dynamic refers to the wheel that pops out of a PEP 517 build or to the relationship between the sdist and the wheels on PyPI. Those two things are not the same because of e.g. auditwheel.

5 Likes