On 15 July 2017 at 20:54, Paul Moore <p.f.mo...@gmail.com> wrote: > Based on the current discussion, however, I now have concerns that either > > a) Backend developers might not understand what build_directory is > requesting, or > b) The PEP doesn't define the semantics of build_directory in a way > that delivers the results I'm suggesting here > > Having had this discussion, and re-read the current draft of the PEP, > I do in fact think that (b) is the case. That worries me, because I > don't think it's just me that had made that mistake. Nick has just > posted a message saying > >> Requesting an out-of-tree wheel build is then just a way for a >> frontend to say to the backend "Hey, please build the wheel *as if* >> you'd exported an sdist and then built that, even if you can't >> actually export an sdist right now". > > which is exactly what I'd expected. But the PEP doesn't say that. > Specifically, in the PEP: > >> When a build_directory is provided, the backend should not create or modify >> any files in the source directory (the working directory where the hook is >> called). If the backend cannot reliably avoid modifying the directory it >> builds from, it should copy any files it needs to build_directory and >> perform the build there. > > The statement "it should copy any files it needs" is correct (but more > subtle than it looks - it doesn't emphasise that the backend must not > copy files it *doesn't* need, i.e., the developer clutter I'm > concerned about). But the statement about "If the backend cannot > reliably avoid modifying the directory it builds from" is misleading - > the reason has *nothing* to do with whether backends can modify the > source directory, and everything to do with whether backends can > reasonably guarantee that there's nothing that would cause > inconsistencies.
This is a fair concern, so I've updated that section in the PR where I'm working on bringing the example into line with the current specification: https://github.com/python/peps/pull/310/commits/49968595aa97c4ba8d621204a35794d74c930f42 That commit also includes a fix to get the example to correctly handle repeated use of a common build directory by removing any previously extracted files. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig