<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On 16 July 2013 20:21, Vinay Sajip <span dir="ltr"><<a href="mailto:vinay_sajip@yahoo.co.uk" target="_blank">vinay_sajip@yahoo.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">> defined in exports; it should be a five-minute job to ensure that scripts in<br>
> exports are excluded from this, when building wheels.<br>
<br>
</div>It was a quick job, but thinking about it, I should probably update the<br>
Wheel.install API to take an optional process_exports=True argument, so that<br>
the exported-script processing can be done during installation from wheels<br>
in a standardised way.</blockquote></div><br>I'm not 100% sure what your proposal is here - I'm confused about the precise roles of <a href="http://setup.py/setuptools">setup.py/setuptools</a> as "builder" vs distil as "builder" vs distlib as "wheel builder" vs distlib as "wheel installer". I'll try to get some time in the next day or so to review the code and make sure we're not talking at cross purposes here. Bear with me.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I understood that distlib simply built wheels from whatever is in the directories supplied. I'm not clear where it would get the "exports" metadata to store in the wheel. Assuming that's sorted, though, then whether or not distlib processes the exports on install is not an issue to me (I think it always should). What is more of an issue is what "the thing that puts stuff into the directories" does. If that's a setuptools-based build, it will process the exports data *itself* and put wrappers into the scripts directory. That is what I think we should be trapping and suppressing. But we have to be careful, as if setuptools is used to install directly, *not* going via a wheel, it has to generate wrappers itself somehow.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Using distil to do the build is a whole other route.</div><div class="gmail_extra"><br></div><div class="gmail_extra">My main concern here is keeping a reasonable level of backward compatibility/interoperability with all the assorted tools around. And in particular with pip managing (but technically not *doing*) the builds and installs.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I'll have a think, and do some code reviews, and try not get sucked into sending more emails until I know the facts a bit more clearly :-)</div><div class="gmail_extra">
<br></div><div class="gmail_extra">Paul</div></div>