<div dir="ltr"><div style="font-size:12.8px">> It looks like a lot of trouble for a feature that is designed to solve a problem for a very thin intersection of the Venn diagram of people who:</div><div><br></div><div>For the record, I don't agree at all that <span style="font-size:12.8px">build_wheel_incremental should be specified here. The suggestion is simply a compromise that I can tolerate because it's optional.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">> </span><span style="font-size:12.8px">For better or worse, editable installs exist and don't need to be defined by PEP 517 just to handle this case. I'm not convinced it's worth the additional complexity of the spec just for that.</span></div><span class="gmail-im" style="font-size:12.8px"></span><div><br></div><div>The editable installs in my opinion should have been specified in this PEP because people are clearly trying to work around a lack of consensus on that issue so that they don't have to wait for the next PEP and waste their time waiting for uncached builds. I can't say I disagree with this but it's trying to fit a square peg into a round hole.</div><div><br></div><div>> <span style="font-size:12.8px">Is there any backend doing this "caching elsewhere" today? Is any backend planning to?</span></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Yes. Distutils caches in the build folder. It's very useful when working on complex projects with Extensions.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">> <span style="font-size:12.8px">Can we arrive at some more concrete examples of how that would work? Like how would pip be invoked, how would the backend react.</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">The reason that I'm willing to live with a separate optional function is that I don't think it will ever be implemented. It will be a note in Python history until install_editable is specified.</span></div><span class="gmail-im" style="font-size:12.8px"></span></div><div class="gmail_extra"><br><div class="gmail_quote">2017-08-24 13:30 GMT-05:00 Leonardo Rochael Almeida <span dir="ltr"><<a href="mailto:leorochael@gmail.com" target="_blank">leorochael@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On 24 August 2017 at 15:13, Thomas Kluyver <span dir="ltr"><<a href="mailto:thomas@kluyver.me.uk" target="_blank">thomas@kluyver.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>




<div><span><div>On Thu, Aug 24, 2017, at 06:20 PM, Daniel Holth wrote:<br></div>
</span><blockquote type="cite"><div dir="ltr"><div><span><div dir="ltr">On Thu, Aug 24, 2017 at 12:34 PM Thomas Kluyver <<a href="mailto:thomas@kluyver.me.uk" target="_blank">thomas@kluyver.me.uk</a>> wrote:<br></div>
</span><span><blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div>Is there a reason to ask for an 'unclean' build, though? There may be a performance optimisation from reusing cached data,<br></div>
</div>
</blockquote><div><div><br></div>
<div>For the same reason you would ever ask for incremental builds, to more quickly iterate while hacking, imagining that you are using the PEP 517 interface to develop, perhaps to have a uniform interface to patch something when you are not familiar with exactly the build system it uses.<br></div>
</div></span> </div></div></blockquote></div></blockquote></span><div>It looks like a lot of trouble for a feature that is designed to solve a problem for a very thin intersection of the Venn diagram of people who:</div><div><br></div><div> a. wants to quickly iterate while hacking a package</div><div><br></div><div> b. doesn't want to bother learning how to trigger the incremental build system of that package or how to install it in editable mode.<br></div><div><br></div><div>For better or worse, editable installs exist and don't need to be defined by PEP 517 just to handle this case. I'm not convinced it's worth the additional complexity of the spec just for that.<br></div><span class=""><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div>
<div>Yup, this is what I meant about using cached data for performance. But I don't think this requires builds to modify the source directory. The build system can cache data elsewhere on the filesystem, whether or not it's given an explicit build_directory.<br></div></div></blockquote><div><br></div></span><div>Is there any backend doing this "caching elsewhere" today? Is any backend planning to?<br></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div>
<div></div>
<div>I think we can specify one kind of build that is both 'clean' (doesn't modify the source directory) and incremental (can use cached data to speed up the build). If that's workable, it seems like it would save a lot of headaches rather than trying to specify them as two different options.<br></div>
<div><br></div>
<div>We have explicitly excluded editable installs (i.e. inplace builds) from this PEP, though we can add a hook for that in a later PEP. I agree with you that this PEP should allow for fast incremental (but non-inplace) builds if possible, though.<span class="m_-7926194374086338094HOEnZb"><font color="#888888"><br></font></span></div><span class="m_-7926194374086338094HOEnZb"><font color="#888888">
</font></span></div></blockquote><div><br></div></span><div>Can we arrive at some more concrete examples of how that would work? Like how would pip be invoked, how would the backend react. And how (and for whom) this would be better than either doing an editable install or straight clean install?<br></div><div><br></div><div>I fear we're complicating the spec for something that will be hard to happen in practice.</div></div></div></div>
<br>______________________________<wbr>_________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/distutils-sig</a><br>
<br></blockquote></div><br></div>