On 8 November 2015 at 17:42, Nathaniel Smith <[email protected]> wrote: > I'm not sure exactly what's at stake in this terminological/ontological > debate, but it certainly is fairly common for developers to have > conversations like "thanks for reporting that issue, I think it's fixed in > master but can't reproduce myself so can you try 'pip install > https://github.com/pydata/patsy/archive/master.zip' and report back whether > it helps?"
Well, reviewing this scenario is probably much more useful than the endless terminology debates that I seem to be forever starting, so thanks for stopping me! It seems to me that in this situation, optimising rebuild times probably isn't too important. The user is likely to only be building once or twice, so reusing object files from a previous build isn't likely to be a killer benefit. However, if the user does as you asked here, they'd likely be pretty surprised (and it'd be a nasty situation for you to debug) if pip didn't install what the user asked. In all honesty, You could argue that this implies that pip should unconditionally install files specified on the command line, but I'd suggest that you should actually be asking the user to run 'pip install --ignore-installed https://github.com/pydata/patsy/archive/master.zip'. That avoids any risk that whatever the user has currently installed could mess things up, and is explicit that it's doing so (and equally, it's explicit that it'll overwrite the currently installed version, which the user might not want to do in his main environment). Maybe you could argue that you want --ignore-installed to be the default (probably only when a file is specified rather than a requirement, assuming that distinguishing between a file and a requirement is practical). But if we did that, we'd still need a --dont-ignore-installed flag to restore the current behaviour. For example, because Christoph Gohlke's builds must be manually downloaded, I find it's quite common to download a wheel from his site and "pip install" it in a number of environments, with the meaning "only if it'd be an upgrade to whatever is currently installed". So this specific example seems to me to be entirely covered by current pip behaviour. Paul _______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
