<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Nov 23, 2016 at 6:35 AM, Thomas Kluyver <span dir="ltr"><<a href="mailto:thomas@kluyver.me.uk" target="_blank">thomas@kluyver.me.uk</a>></span> wrote:<br><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Questions:<br>
1. Editable installs. The PEP currenly specifies a hook to do an<br>
editable install (like 'pip install -e' or 'setup.py develop') into a<br>
given prefix. I don't think that specifying a prefix is sufficient to<br>
cover '--user' installation, which uses a different install scheme,<br>
especially on Windows and OSX framework builds. We can:<br>
a. Add an extra parameter 'user' to the hook, to override the prefix and<br>
do a user install.<br>
b. Leave it as is, and do not support editable user installation (which<br>
would make me sad, as I do editable user installs regularly)<br></blockquote><div><br></div><div>Please, please, let's figure SOMETHING our here - editable installs (or "develop" installs) are a critical tool. Frankly, I don't know how anyone can develop a package without them.</div><div><br></div><div>Back in the day I struggle mightily with kludging sys.path, and, relative imports that never really worked right, and on and on -- it SUCKED.</div><div><br></div><div>Then I discovered setuptools develop mode -- yeah! IN fact, I don't think I'd ever use setuptools at all if I didn't need it to get develop mode!</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">c. Decide that editable installs are too fiddly to standardise, and<br>leave it to users to invoke a tool directly to do an editable install.<br></blockquote></div><div><br></div><div>Not sure what that means -- does that mean that you couldn't get an editable isntall with pip? but rather you would do:</div><div><br></div><div>setup.py develop   if you had setuptools as your build system, and <br><br>some_other_command  if you had some other build tool?</div><div><br></div><div>Not too bad, but why not have a standard way to invoke develop mode? If the tool can support it, why not have a way for pip to tell an arbitrary build system to "please install this package in develop mode"</div><div><br></div><div>On the other hand:</div><div><br></div><div>I've always thought we were moving toward proper separation of concerns, in which case, pip should be focused on resolving dependencies and finding and installing packages. </div><div><br></div><div>Should it even be possible to build and install a package from source with pip?</div><div><br></div><div>But if it is, then it might as well support editable installs as well.</div><div><br></div><div>The complication I see here is that a tool can't know how to install in editable mode unless it knows about the python environment it it running in -- which is easy for a tool built with python, but a problem for a tool written some other way.</div><div><br></div><div>However, I see from PEP 517:</div><div><br></div><br>The build backend object is expected to have attributes which provide some or all of the following hooks. The commonconfig_settings argument is described after the individual hooks:<br><br><font face="monospace, monospace">def get_build_requires(config_settings):<br>    ...<br></font><br><br>So I guess we can count on a Python front end, at least, so 1(a) should be doable.<div><br></div><div>In fact, is the user-install issue any different for editable installs than regular ones?</div><div><br></div><div>-CHB</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
2. Dash vs. underscore, bikeshed reloaded! Currently,  the table name<br>
uses a dash: [build-system], but the key added by PEP 517 uses an<br>
underscore: build_backend. This seems a bit messy. I propose that we<br>
change build_backend to build-backend for consistency. Dashes and<br>
underscores can both be used in a TOML key without needing quoting.<br>
<br>
Thanks,<br>
Thomas<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>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>