On Mon, Sep 4, 2017 at 5:51 PM, xoviat <xoviat@gmail.com> wrote:
The only reason I can think of that setuptools would need a dist_info command would be to implement the PEP 517 prepare_wheel_metadata hook.
Yes. That is absolutely correct.
But this hook is optional and in fact provides no value right now, so it can't be a blocker for anything.
The simplest way to start on this issue is to replace egg_info in pip with prepare_metadata_for_build_wheel. It is absolutely a historical artifact but I need to work on one issue at a time. The next issue will be replacing egg_info in pip with prepare_metadata_for_build_wheel.
This still doesn't make sense to me. To support PEP 517, pip HAS to support backends that don't provide prepare_metadata_for_build_wheel. You will have to handle this before PEP 517 support can ship. So what's your plan for after you replace egg_info with prepare_metadata_for_build_wheel? Turning around and deleting the code you just wrote? -n
2017-09-04 19:34 GMT-05:00 Nathaniel Smith <njs@pobox.com>:
On Mon, Sep 4, 2017 at 5:09 PM, xoviat <xoviat@gmail.com> wrote:
Nathaniel:
Pip requires egg_info to discover dependencies of source distributions so that it can build wheels all at once after downloading the requirements. I need to move pip off of egg_info as soon as possible and dist_info is required to do that.
"Requires" is a strong word -- AFAIK this is just a historical artifact. I don't really know what you're talking about in the second sentence.
The only reason I can think of that setuptools would need a dist_info command would be to implement the PEP 517 prepare_wheel_metadata hook. But this hook is optional and in fact provides no value right now, so it can't be a blocker for anything. (In fact I can't see any reason why pip would ever call it before the resolver lands.) So either (a) there's some other reason you want a dist_info command, (b) there's some reason I'm missing why prepare_wheel_metadata matters, or (c) one of us is misunderstanding something :-).
-n
2017-09-03 21:00 GMT-05:00 Nathaniel Smith <njs@pobox.com>:
On Sun, Sep 3, 2017 at 11:14 AM, xoviat <xoviat@gmail.com> wrote:
Just an update for everyone here:
1. We're currently waiting on the implementation of the 'dist_info" command in the wheel project. 2. Once that is done we can switch pip over to reading dist-info rather than egg_info. 3. Then we can move the backend over to setuptools. Because Jacob has a much more efficient release system than pip, I anticipate having a release of setuptools first and then we can switch pip over to requiring a newer setuptools via PEP 518.
I don't think pip actually has any use for the PEP 517 prepare_wheel_metadata hook right now though? Historically 'setup.py egg-info' was needed to kluge around unwanted behavior in 'setup.py install', but with a PEP 517 backend that's irrelevant because 'setup.py install' is never used. And in the future when pip has a real resolver, then prepare_wheel_metadata should allow some optimizations. But right now, prepare_wheel_metadata is completely useless AFAIK.
So why is 'setup.py dist_info' a blocker for things?
-n
-- Nathaniel J. Smith -- https://vorpus.org
-- Nathaniel J. Smith -- https://vorpus.org
-- Nathaniel J. Smith -- https://vorpus.org