/srv/irclogs.ubuntu.com/2015/08/21/#launchpad-dev.txt

wgrantcjwatson: That seems too easy.00:16
wgrantWhere does the other 30 seconds go, though?00:17
SpadsMars.00:17
Spadshttp://www.thirtysecondstomars.com/ <-- Proof.00:17
wgrantHeh00:20
cjwatsonwgrant: it spends a fair bit of time in _find_all_versions for each requirement (i.e. the "Collecting" steps)09:09
cjwatsonI would like a way to say "don't use setuptools.file_finders no matter what" in LP's setup.py09:16
cjwatsonbecause we care not about the sdist and having to patch setuptools-git is a ridiculous distraction09:17
cjwatsonwgrant: But once the virtualenv is populated, it's 3.5 seconds to rerun, which I guess is actually more analogous to buildout's behaviour with a symlink to a populated eggs directory.12:18
cjwatsonOh, indeed, without the eggs symlink, buildout takes 155 seconds vs. the current figure I have for a full virtualenv build with pip of 52 seconds (my previous figure was badly measured, I missed a bit at the start)12:23
cjwatsonSo performance is not an issue any more and I just need to sort out the large pile of details12:24
cjwatsonThe pip figure is actually cheating because I had cached wheels; without those it's 164 seconds.  But that's sufficiently close to the comparable buildout run that I don't care12:31
cjwatsonI found a reasonably horrible but just about tolerable way to cut setuptools-git out of the loop in our setup.py12:35
cjwatsonlifeless: How would I go about debugging 'pip install "zope.security[untrustedpython]"' not actually installing the untrustedpython extra in my in-progress pip conversion of LP?20:45
cjwatson(this is, hope you understand, several layers deep in a rabbit hole, but it's where I've got to thus far ...)20:45
lifelesspdb ?20:47
lifelesstry pip install -v ... first20:47
lifelessif that doesn't enlighten20:48
lifelessshow me a pastebin20:48
cjwatsonhttp://paste.ubuntu.com/12144491/20:48
cjwatsonI was hoping for an answer other than pdb, but I guess I can give that a try ;-)20:49
cjwatsonshould be installing RestrictedPython, but isn't; works fine if I explicitly request RestrictedPython20:50
cjwatsonzope.security's metadata.json looks right, contains {"requires": ["RestrictedPython"], "extra": "untrustedpython"}20:51
cjwatsonso if this isn't just something that plain doesn't work yet in pip, I can certainly attack with pdb, just wanted to check first since that's likely to take me a while20:52
cjwatsonI know you've been working on various corners of pip's requirement handling20:52
lifelessI'm not at all sure that metadata.json is consuled20:52
lifelessI'd need to check the embedded pkgresources - I think it may still be reading METADATA20:53
cjwatsonMETADATA has20:53
cjwatsonProvides-Extra: untrustedpython20:53
cjwatsonRequires-Dist: RestrictedPython; extra == 'untrustedpython'20:53
lifelessso it works for me :)20:54
lifelessSuccessfully installed RestrictedPython-3.6.0 zope.component-4.2.2 zope.event-4.0.3 zope.i18nmessageid-4.0.3 zope.interface-4.1.2 zope.location-4.0.3 zope.proxy-4.1.6 zope.schema-4.4.2 zope.security-4.0.3 zope.untrustedpython-4.0.020:54
lifelesshmm, I wasn't using a constraints file20:56
lifelesswhats in your constraints file ?20:56
cjwatsonzope.security 4.x goes through a different chain, but it does seem to work with a fresh virtualenv, let's see20:56
cjwatsonhttp://paste.ubuntu.com/12144571/20:57
cjwatsonoh and also an initial run before that with http://paste.ubuntu.com/12144573/ as -r20:58
lifelesscjwatson: are you capturing both stderr and stdout ?20:58
cjwatsonyes20:58
lifelesshmm20:58
lifelessI'm not seeing 'collecting'20:58
cjwatsonthat was in an env that already had lp installed20:59
lifeless-at all-20:59
lifelessyeah, its the constraints file21:00
lifelessworkaround - put the [] in the constraints file21:00
lifelessI'll file a bug now21:00
lifeless[I wrote the constraints support for pip :), so was a very good choice to ask]21:01
cjwatsonaha, the constraints implies a null set of extras?21:01
lifelessno21:01
lifelessits worse21:01
cjwatsonbrilliant, thanks - I thought you might be21:01
lifelesspip doesn't merge together extras references from different places in the dependency graph21:01
lifelesswhich is a subset of the 'does not do resolving at all'21:01
lifelessproblem21:02
cjwatsonI'm using 7.1.0 FWIW but 7.1.1's changelog doesn't look different here21:02
cjwatsonand confirmed that adding the [] in the constraints file fixes it, thanks21:04
lifelesshttps://github.com/pypa/pip/issues/304621:06
lifelessyw21:07
cjwatsonnow I wonder how to grep for what extras *should* be installed - I guess just compare with the buildout-installed package list21:08
lifelesswell, they'll be getting in the dependency list somehow21:08
lifelessso I think a two-phase thing21:09
lifelessphase 1, any extras you define21:10
lifelessphase 2, interrogate the dist-requires of all the things you depend on, transitively21:10
lifelessyou could automate phase2 by runnign 'pip install' of each thing you directly dep on separately, and looking in the output:21:10
lifelessperhaps21:11
* lifeless shrugs ;)21:11
cjwatsonI just did the stupid thing and did bin/buildout -vc buildout.cfg, mangled output into roughly compatible form, compared with pip list21:14
cjwatsonsome noise from buildout 1's semi-isolation vs. virtualenv --system-site-packages just allowing everything21:14
lifelessauditing the final output is probably sufficient21:15
lifelessyou might end up there coincidentally and be missing a extra for the future21:15
cjwatsonyeah, I really only have to do this once21:15
cjwatsontrue21:15
lifelessbut, we're going to get that bug fixed21:15
lifelessso its a time limited window21:15
cjwatsononce we're on virtualenv/pip, it's a lot easier to upgrade21:15

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!