State of the wheel spec (Was: How to handle launcher script importability?)
On 21 August 2013 13:01, Paul Moore <p.f.moore@gmail.com> wrote:
If you want to say distlib won't support pre-Metadata 2.0 specifications of script metadata, then that's your choice - it's not contrary to the standards but I'd view it as a quality of implementation choice. I view the underspecification in the Wheel 1.0 spec as similarly a quality of detail issue, and I'd expect to fix it in either an update to Wheel 1.0, or a Wheel 1.1 which does not make the jump to pure Metadata 2.0.
Ignore this (to an extent). I've just seen your comments on the distlib issue. For those not following along, both wheel and distlib currently process a pydist.json file in the wheel dist-info directory. The wheel project doesn't put entry-points.txt data in there yet, but distlib expects to find script metadata there. So the incompatibility here is merely one of two implementations being out of sync - no big deal. BUT, this means that there is no spec of the current behaviour, and no implementation of the Wheel 1.0 spec anywhere. Either there is movement behind the scenes that I'm not aware of, and I'm jumping the gun in trying to make sense of the current state of play, or the wheel spec needs a review reasonably soon. Whichever is the case, I don't think that my current investigations are adding anything productive here. So I'm going to take a step back from all of this for a week or two and see what develops. Paul
Paul Moore <p.f.moore <at> gmail.com> writes:
BUT, this means that there is no spec of the current behaviour, and no implementation of the Wheel 1.0 spec anywhere. [snip] or the wheel spec needs a review reasonably soon.
I think it's this. I'm not sure to what extent wheels are being used in anger out there, but it would make sense to review the spec in light of PEP 426 developments and release a 1.1. Regards, Vinay Sajip
On 21 Aug 2013 22:42, "Vinay Sajip" <vinay_sajip@yahoo.co.uk> wrote:
Paul Moore <p.f.moore <at> gmail.com> writes:
BUT, this means that there is no spec of the current behaviour, and no implementation of the Wheel 1.0 spec anywhere. [snip] or the wheel spec needs a review reasonably soon.
I think it's this. I'm not sure to what extent wheels are being used in anger out there, but it would make sense to review the spec in light of
PEP
426 developments and release a 1.1.
Um, the current wheel spec uses PEP 345 + setuptools metadata only. If distlib is expecting PEP 426 metadata in wheel files, it is not compliant with the spec. There won't be a new version of the wheel spec until after PEP 426 is done, and that's likely months away. Cheers, Nick.
Regards,
Vinay Sajip
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig
On 21 August 2013 21:40, Nick Coghlan <ncoghlan@gmail.com> wrote:
Um, the current wheel spec uses PEP 345 + setuptools metadata only. If distlib is expecting PEP 426 metadata in wheel files, it is not compliant with the spec.
There won't be a new version of the wheel spec until after PEP 426 is done, and that's likely months away.
OK, thanks. That's pretty clear. Paul.
Um, the current wheel spec uses PEP 345 + setuptools metadata only. If distlib is expecting PEP 426 metadata in wheel files, it is not compliant with
Nick Coghlan <ncoghlan <at> gmail.com> writes: the spec. I can certainly rectify that - I was possibly confused by the fact that the latest wheel implementation writes pydist.json to the wheel (though the Wheel- Version in WHEEL is still 1.0). Regards, Vinay Sajip
On 22 August 2013 08:20, Vinay Sajip <vinay_sajip@yahoo.co.uk> wrote:
Nick Coghlan <ncoghlan <at> gmail.com> writes:
Um, the current wheel spec uses PEP 345 + setuptools metadata only. If distlib is expecting PEP 426 metadata in wheel files, it is not compliant with the spec.
I can certainly rectify that - I was possibly confused by the fact that the latest wheel implementation writes pydist.json to the wheel (though the Wheel- Version in WHEEL is still 1.0).
Yeah, they were certainly coupled together originally - that's why PEPs 425, 426 and 427 all happened around the same time. However, Daniel tweaked the wheel format spec in PEP 427 to remove the dependency on the new metadata spec once he realised that most of the features that wheels really needed already existed in the setuptools metadata, and the metadata spec was going to take a *lot* longer to stabilise than he originally thought. However, the pydist.json that wheel currently writes is in the category of "arbitrary additional metadata in the dist-info directory", since the metadata 2.0 spec is still far from stable. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia
Nick Coghlan <ncoghlan <at> gmail.com> writes:
However, the pydist.json that wheel currently writes is in the category of "arbitrary additional metadata in the dist-info directory", since the metadata 2.0 spec is still far from stable.
You can perhaps see why that could cause confusion - was that mentioned somewhere on this list? It certainly seems odd to add a pydist.json there if it's not needed; the natural thing to do is to assume that if it's there, it's usable. Unfortunately, the pydist.json that it currently writes is not conformant to the latest version of the PEP (though it passes schema validation) :-( Regards, Vinay Sajip
On 21 August 2013 23:20, Vinay Sajip <vinay_sajip@yahoo.co.uk> wrote:
Nick Coghlan <ncoghlan <at> gmail.com> writes:
Um, the current wheel spec uses PEP 345 + setuptools metadata only. If distlib is expecting PEP 426 metadata in wheel files, it is not compliant with the spec.
I can certainly rectify that - I was possibly confused by the fact that the latest wheel implementation writes pydist.json to the wheel (though the Wheel- Version in WHEEL is still 1.0).
Conversely, of course, there's no mention in the wheel spec that setuptools metadata (specifically entry-points.txt) should be present. Which is why I mentioned that the wheel spec might need a review/update to clarify this (if we want to ensure that any necessary script metadata is guaranteed to be present in compliant wheels). Paul
On Thu, Aug 22, 2013 at 4:24 AM, Paul Moore <p.f.moore@gmail.com> wrote:
On 21 August 2013 23:20, Vinay Sajip <vinay_sajip@yahoo.co.uk> wrote:
Nick Coghlan <ncoghlan <at> gmail.com> writes:
Um, the current wheel spec uses PEP 345 + setuptools metadata only. If distlib is expecting PEP 426 metadata in wheel files, it is not compliant with the spec.
I can certainly rectify that - I was possibly confused by the fact that the latest wheel implementation writes pydist.json to the wheel (though the Wheel- Version in WHEEL is still 1.0).
Conversely, of course, there's no mention in the wheel spec that setuptools metadata (specifically entry-points.txt) should be present. Which is why I mentioned that the wheel spec might need a review/update to clarify this (if we want to ensure that any necessary script metadata is guaranteed to be present in compliant wheels).
pydist.json is in there in order to have an implementation / old metadata converter to inform PEP 426 development. I added the "generator" tag to PEP 426 to deal with the problem of detecting pydist.json that conform to obsolete drafts of the spec. In the meantime the stable metadata is what setuptools supports inside .dist-info directories which is similar to old-draft key/value PEP 426, including Provides-Extra: etc. Apart from the upcoming wrapper scripts generation, the basic wheel install step shouldn't need to read any of the setuptools/PEP 345/426 metadata at all.
participants (4)
-
Daniel Holth
-
Nick Coghlan
-
Paul Moore
-
Vinay Sajip