<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>actually editable installs can be made uninstallable trivially<br>
</p>
<p>in gumby-elf i would create a fake wheel with files inside to
facilitate the path building for namespaces,<br>
and a local version number (so pip would create my exe files and
uninstall clean)</p>
<p><br>
</p>
-- Ronny<br>
<div class="moz-cite-prefix">On 24.11.2016 01:23, Daniel Holth
wrote:<br>
</div>
<blockquote
cite="mid:CAG8k2+5NnrEDz7BZMpAuWye5Z=5xJvav=u01k2WaK93MHSkGuQ@mail.gmail.com"
type="cite">
<p dir="ltr">I wouldn't be afraid of editable installs. They are
trivial and involve building the package in place and putting a
.pth file where it will be noticed. Specify editable packages
can't necessarily be uninstalled in a standard way and you are
done.</p>
<p dir="ltr">The bespoke build tool tells pip where the package
root is (where .dist-info will be written), usually . or ./src,
then pip does .pth.</p>
<br>
<div class="gmail_quote">
<div dir="ltr">On Wed, Nov 23, 2016, 17:16 Chris Barker <<a
moz-do-not-send="true" href="mailto:chris.barker@noaa.gov">chris.barker@noaa.gov</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg">
<div class="gmail_quote gmail_msg">On Wed, Nov 23, 2016 at
6:35 AM, Thomas Kluyver <span dir="ltr"
class="gmail_msg"><<a moz-do-not-send="true"
href="mailto:thomas@kluyver.me.uk" class="gmail_msg"
target="_blank">thomas@kluyver.me.uk</a>></span>
wrote:<br class="gmail_msg">
<div class="gmail_msg"> </div>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg">
<div class="gmail_quote gmail_msg">
<blockquote class="gmail_quote gmail_msg"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Questions:<br
class="gmail_msg">
1. Editable installs. The PEP currenly specifies a
hook to do an<br class="gmail_msg">
editable install (like 'pip install -e' or 'setup.py
develop') into a<br class="gmail_msg">
given prefix. I don't think that specifying a prefix
is sufficient to<br class="gmail_msg">
cover '--user' installation, which uses a different
install scheme,<br class="gmail_msg">
especially on Windows and OSX framework builds. We
can:<br class="gmail_msg">
a. Add an extra parameter 'user' to the hook, to
override the prefix and<br class="gmail_msg">
do a user install.<br class="gmail_msg">
b. Leave it as is, and do not support editable user
installation (which<br class="gmail_msg">
would make me sad, as I do editable user installs
regularly)<br class="gmail_msg">
</blockquote>
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg">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 class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">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 class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">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>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">
<blockquote class="gmail_quote gmail_msg"
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 class="gmail_msg">
leave it to users to invoke a tool directly to do an
editable install.<br class="gmail_msg">
</blockquote>
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg">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 class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">setup.py develop if you had
setuptools as your build system, and <br
class="gmail_msg">
<br class="gmail_msg">
some_other_command if you had some other build tool?</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">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 class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">On the other hand:</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">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 class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">Should it even be possible to
build and install a package from source with pip?</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">But if it is, then it might as
well support editable installs as well.</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">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 class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">However, I see from PEP 517:</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<br class="gmail_msg">
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 class="gmail_msg">
<br class="gmail_msg">
<font class="gmail_msg" face="monospace, monospace">def
get_build_requires(config_settings):<br
class="gmail_msg">
...<br class="gmail_msg">
</font><br class="gmail_msg">
<br class="gmail_msg">
So I guess we can count on a Python front end, at least,
so 1(a) should be doable.
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">In fact, is the user-install
issue any different for editable installs than regular
ones?</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">-CHB</div>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"> </div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"> </div>
<blockquote class="gmail_quote gmail_msg"
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 class="gmail_msg">
uses a dash: [build-system], but the key added by PEP
517 uses an<br class="gmail_msg">
underscore: build_backend. This seems a bit messy. I
propose that we<br class="gmail_msg">
change build_backend to build-backend for consistency.
Dashes and<br class="gmail_msg">
underscores can both be used in a TOML key without
needing quoting.<br class="gmail_msg">
<br class="gmail_msg">
Thanks,<br class="gmail_msg">
Thomas<br class="gmail_msg">
_______________________________________________<br
class="gmail_msg">
Distutils-SIG maillist - <a moz-do-not-send="true"
href="mailto:Distutils-SIG@python.org"
class="gmail_msg" target="_blank">Distutils-SIG@python.org</a><br
class="gmail_msg">
<a moz-do-not-send="true"
href="https://mail.python.org/mailman/listinfo/distutils-sig"
rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br
class="gmail_msg">
</blockquote>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_extra gmail_msg"><br class="gmail_msg">
<br class="gmail_msg" clear="all">
<div class="gmail_msg"><br class="gmail_msg">
</div>
-- <br class="gmail_msg">
<div class="m_-5867620219916391724gmail_signature
gmail_msg"><br class="gmail_msg">
Christopher Barker, Ph.D.<br class="gmail_msg">
Oceanographer<br class="gmail_msg">
<br class="gmail_msg">
Emergency Response Division<br class="gmail_msg">
NOAA/NOS/OR&R (206) 526-6959 voice<br
class="gmail_msg">
7600 Sand Point Way NE (206) 526-6329 fax<br
class="gmail_msg">
Seattle, WA 98115 (206) 526-6317 main reception<br
class="gmail_msg">
<br class="gmail_msg">
<a moz-do-not-send="true"
href="mailto:Chris.Barker@noaa.gov" class="gmail_msg"
target="_blank">Chris.Barker@noaa.gov</a></div>
</div>
</div>
_______________________________________________<br
class="gmail_msg">
Distutils-SIG maillist - <a moz-do-not-send="true"
href="mailto:Distutils-SIG@python.org" class="gmail_msg"
target="_blank">Distutils-SIG@python.org</a><br
class="gmail_msg">
<a moz-do-not-send="true"
href="https://mail.python.org/mailman/listinfo/distutils-sig"
rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br
class="gmail_msg">
</blockquote>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Distutils-SIG maillist - <a class="moz-txt-link-abbreviated" href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a>
<a class="moz-txt-link-freetext" href="https://mail.python.org/mailman/listinfo/distutils-sig">https://mail.python.org/mailman/listinfo/distutils-sig</a>
</pre>
</blockquote>
<br>
</body>
</html>