[01:53:16] <lifeless> dstufft: so how are we looking for 7.0?
[02:09:18] <dstufft> lifeless: Um, not sure offhand. I suppose it's about time to take a look at the open issues and see if anything stands out as something to address
[02:09:43] <dstufft> lifeless: tomprince did notice the other day (I forget if I opened an issue..) that the develop branch breaks ``pip install .`` reinstalling itself always
[05:12:23] <agronholm> dstufft: did you get jython up and running?
[09:26:11] <ronny> lifeless, dstufft : btw, any plans to integrate between devpi caching and pip caching/wheel chaching (i for example notice that using devpi with different indexes spams my pip cache with identical files from different locations)
[11:49:40] <iElectric> could someone take a look at https://github.com/pypa/pip/pull/1473
[11:49:52] <iElectric> it's a common cause for python3 packages to fail to install
[19:22:44] <ronny> jaraco: im wondering if using wheels as zip unsafe eggs and a base package for optimizing toplevel imports for the norma setup could help with setuptools issue 229 (devendored deps)
[19:24:11] <ronny> jaraco: so basically all pip/setuptools requirements would always land in $SITE_PACKAGES/$name-$version-....whl/
[19:24:47] <ronny> then it would be more reasonably to split it up into tightly pinned versions of setuptools, pkg_ressources, packaging and so on
[19:25:12] <ronny> (the installer would bascialyl inpack the wheels into wheel folders and enable putting the right versions at the beginning of sys.path
[19:25:46] <jaraco> That sounds very similar to what easy_install --multi-version does now.
[19:25:51] <jaraco> (except with wheels instead of eggs)
[19:26:19] <ronny> jaraco: well yes, its kind of necessary for anything where upgrades/downgrades break the world
[19:26:21] <jaraco> One issue with that approach is if something else (pip, easy_install, other) has already installed a conflicting version into sys.path, you're still in trouble.
[19:26:57] <ronny> jaraco: thats why setuptools scripts invoke that heavy pkg_ressources machinery instead of
[19:27:41] <ronny> so the idea would be that the script ask for the exact versions, those set up the importer, then the tools can run with the correct lib versions right at the start of sys.path
[19:28:44] <ronny> an optimization could be to feed some informations about the base setup wrt versions into the scripts (to get inexpensive toplevels)
[19:29:02] <DanielHolth> I'd love to see an installer that extracts each package into its own versioned directory like buildout.
[19:29:35] <DanielHolth> Then its console wrapper scripts edit sys.path and they work reliably.
[19:29:40] <dstufft> for the record, I'm like, -100 on pip ever not bundling it's dependencies
[19:29:41] <ronny> DanielHolth: i have a plan for that actually, doing it with wheels instead of eggs, just just couldnt do the sprint on it
[19:29:42] <DanielHolth> Someone wrote an installer for applications that is like that.
[19:30:14] <DanielHolth> To reduce confusion just don't call them wheels after they are unzipped. You could call them dists
[19:30:17] <ronny> dstufft: with a setup like im describing, pip could just ship the unzipped wheels and add them to site
[19:31:41] <ronny> dstufft: bascailyl once pkg_ressources/setuptoops support a layout with unpacked wheels as "multiversion" packages, pip will no longer need to vender specific versions since its installation can just put them in place and the pip script will use them
[19:32:28] <DanielHolth> I think pip has the right idea, but your installer (a similar one someone else has written, but I forget the name) will be a great alternative to virtualenvs when you just want to use some app.
[19:32:42] <DanielHolth> Vendoring is best for pip itself.
[19:33:05] <DanielHolth> pip in an executable zip file would be pretty sweet too.
[19:33:24] <ronny> DanielHolth: now, there actually is a standard for those by now
[19:33:54] <DanielHolth> node's npm and ruby's gem keep each package in its own folder.
[19:34:13] <dstufft> ronny: I don't think the additonal complexity is worth it for pip *shrug*
[19:34:15] <ronny> dstufft: easy-install does too, but sys.path crufting is hell
[19:34:44] <ronny> dstufft: i suspect should the layout work out, it wont make pip any more complex
[19:34:53] <ronny> whops, te first one was at DanielHolth
[19:35:34] <ronny> jaraco: but yeah, as first step, i'd like to suppport downloading and unpacking/caching wheels for details like setup_requires
[19:35:48] <DanielHolth> I thought pkg_resources had a public API for grabbing arbitrary files out of any package's .egg-info folder
[19:36:37] <ronny> DanielHolth: eggs are per efault installed as eggs within site-packages/custom folders, and a pth file prepends them to sys.path
[19:37:29] <ronny> DanielHolth: buildout is workign on top of that just unpakcing them all and constructing a own workingset
[19:38:50] <ronny> jaraco: one "feature" of pkg_resources is that it can hide a package in sys.path behind a package in a egg by putting the egg first in sys.path
[19:39:18] <ronny> jaraco: however there are some detail issues wrt package paths in workingsets when a non-egg installed version of something is required
[19:39:29] <jaraco> ronny: Have you seen the mechanism where pkg_resources will look at __main__.__requires__ and make sure those requirements are present?
[19:39:51] <DanielHolth> So I think the reason buildout works a little better is that the individual scripts for applications set the sys.path they needed, and then when you install anything else the existing scripts continue to work the same.
[19:40:13] <DanielHolth> Instead of the old "I need this package" on the top of the script, which would re-run dependency analysis for whatever you had installed just then.
[19:40:28] <ronny> DanielHolth: however as far as i understood that breaks plugin systems based on entrypoints
[19:40:39] <ronny> jaraco: a moment please, i'll check
[19:40:54] <DanielHolth> Yes, the plugins would need special consideration in that system.
[19:41:22] <DanielHolth> Basically the first egg use case was as a file you'd drop into some plugin folder.
[19:43:04] <ronny> jaraco: i see what you mean, i'd completely do away with the easy_install.pth for something that also includes information about toplevels
[19:43:27] <ronny> jaraco: because one of the main issues with eggs is, that having quite a few of them makes import ______slow______ and a mess
[19:44:10] <dstufft> easy_install.pth was only added if I recall becasue people wanted to have default versions available when they did ``python``
[19:44:37] <dstufft> and easy_install didn't have an option to install things as pip installs them that didn't also turn off dependency resolution completely
[19:44:38] <DanielHolth> I bet with ssds, python 3 caches etc. the slow problem is much better.
[19:47:46] <ronny> basically there is need for some kind of meta importer that makes sys.path lean and instead dispatches straight into the toplevels of requested distributions
[19:48:18] <ronny> so that if there is like 300 packages in the workingset it will still only have to open one file
[19:51:56] <DanielHolth> So I'm looking at what I might have to do to write the per-package install scheme used into its .egg-info directory, and then pull it back out again at runtime. However it's annoying to figure out how to determine whether egg-info is being generated as part of a develop or regular install, or as building a bdist/sdist. https://bitbucket.org/dholth/wheel/commits/72eff6db19f918294154c2bfecf28493e4352bd7
[19:53:27] <ronny> dstufft: im writing something that will generate wheels commpletely without setuptools
[19:54:34] <DanielHolth> you and flit and this wscript https://bitbucket.org/dholth/wheel/src/tip/wscript?at=default and the old Bento patch I did that I never updated :)
[19:57:12] <ronny> DanielHolth: its called gumby_elf , atm im adding requirements writing, then i will add normal wheels and sdists
[19:57:28] <dstufft> I'm wowrking mostly on warehouse atm
[19:57:45] <dstufft> now that I'm at HP I get to do like, twice as many packaging things
[19:57:45] <ronny> (currently i only support "develop mode wheels" which basically generates a wheel with a bootstraper to import from the source tree)
[19:58:54] <DanielHolth> dstufft are you doing an OpenStack circuit
[19:59:56] <dstufft> DanielHolth: my new job doesn't really involve any openstack, other than in the sense they are a major consumer of python packaging (though I'm techincally on the cloud team, but that's mostly for the aforementioned reason)
[20:10:04] <ronny> DanielHolth: DanielHolth what exactly is wscript?
[20:11:09] <DanielHolth> It is for the waf build system
[20:52:56] <jaraco> Daniel discovered it was broken, and it was fixed in a prior version, but a new issue had emerged with the latest pymongo, so I had to fix that.
[22:40:12] <lifeless> dstufft: don't suppose you've had a chance to eyeball my 988 WIP ?
[22:40:33] <dstufft> lifeless: no, I forgot. Will take a look after I sort out this health insurance crap