PMXBOT Log file Viewer

Help | Karma | Search:

#pypa logs for Monday the 29th of December, 2014

(Back to #pypa overview) (Back to channel listing) (Animate logs)
[07:11:42] <ncoghlan> dstufft: sorry, I think I just broke your PR by renaming the file out from underneath you
[07:18:15] <dstufft> ncoghlan: it's not a big deal, rebase will fix it
[07:20:48] <dstufft> didn't even prompt me about it ;)
[07:22:11] <ncoghlan> dstufft: yeah, git's rebasing heuristics are one of those cases where the guessing is good enough that it helps more often than it hinders :)
[07:31:45] <dstufft> ncoghlan: I <3 me some git commit --amend and git rebase -i
[07:36:21] <ncoghlan> dstufft: there's a reason I always run my Mercurial clones with history editing enabled :)
[07:36:54] <dstufft> ncoghlan: I try to avoid learning too much about Hg :/ I can't handle remembering too many things at once
[07:37:01] <dstufft> I get confused easily
[07:37:15] <dstufft> even switching between hg and git projects I start typing the wrong commands
[07:37:55] <ncoghlan> to be honest, the main difference between the two is the existence of prescriptive workflows
[07:38:21] <ncoghlan> learning just-enough-git to work with the PR model or the Gerrit review model is pretty easy
[07:38:38] <dstufft> I don't really mean difference in abilities, just difference in what things I need to type to make a thing do a thing
[07:38:48] <dstufft> that's mostly why my branch workflow for hg involves hg diff and the patch command
[07:38:56] <ncoghlan> so all the complexity that's there to support the Linux kernel model can be ignored
[07:38:56] <dstufft> because hg diff works mostly the same as git diff :D
[07:40:03] <ncoghlan> that's what I mean though, hg lacks a similarly simple and prescriptive "this is a really good local workflow" model
[07:40:16] <dstufft> oic
[07:40:30] <dstufft> I think I probably treat a lot of my branches like patch queues
[07:40:38] <dstufft> but I don't have to remember how to make patch queues work
[07:40:39] <dstufft> :D
[07:41:42] <ncoghlan> at some point, Pierre-Yves and I will get the cpydev extension up to a release ready state
[07:42:00] <ncoghlan> and we'll hopefully have something pretty clean that works well for local CPython development
[07:43:01] <dstufft> that'd be nice, I probably won't personally use it, but better tooling is always good
[07:43:09] <dstufft> I still need to work on that PEP heh :/
[07:43:11] <ncoghlan> yeah
[07:45:57] <dstufft> ncoghlan: btw, if you don't know, #pypa-dev is a thing too
[13:08:51] <apollo13> dstufft: around?
[14:18:46] <dstufft> apollo13: am now for a few minutes
[14:19:39] <apollo13> dstufft: when running pip install psycopg2 I no longer get any output till it's finished
[14:19:53] <apollo13> ie I get Running setup.py install for psycopg2 and when it is finished a dump of:
[14:19:59] <apollo13> x86_64-linux-gnu-gcc -pthread -DNDEBUG…
[14:20:06] <apollo13> is that just me or is that new now
[14:20:15] <apollo13> I think earlier you'd see every call to gcc
[14:25:20] <dstufft> apollo13: um, well I don't think we changed anything that would cause the calls to gcc to get buffered, other than we reduced the amount of output in general so maybe python's built in buffering is taking effect
[14:25:42] <apollo13> ah let me retry with PYTHONUNBUFFERED
[14:25:51] <dstufft> yea was just going to suggest that
[14:26:08] <apollo13> na, same result
[14:26:12] <dstufft> we did switch to using the logging module instead of a homegrown thing
[14:26:27] <dstufft> that might have something to do with it too... though I don't think that does any buffering
[14:26:58] <apollo13> mhm, I'll see if I can find something out
[14:27:51] <dstufft> apollo13: to be clear, the problem is that the output is coming all at once at the end, instead of there's just less output right?
[14:27:57] <apollo13> jupp
[14:28:10] <apollo13> less output is fine, and I really like that patch :)
[14:28:48] <agronholm> does anyone know why the <, >, <= and >= operators are missing from pkg_resources? those operators are specified in PEP 426.
[14:29:07] <agronholm> if they weren't missing, I wouldn't have to keep using [metadata] in setup.cfg
[14:31:15] <dstufft> agronholm: they shouldn't be missing
[14:31:20] <agronholm> well, they are
[14:31:55] <dstufft> or, wait, PEP 426, you're not talking about in version specifiers are you?
[14:32:31] <agronholm> I wanted to declare a dependency for python < 2.7
[14:32:53] <agronholm> err < 3.2
[14:33:02] <agronholm> what is the recommended method for that?
[14:33:39] <agronholm> I read in the wheel documentation that requires-dist in [metadata] is deprecated and setup.py's extras_require should be used instead
[14:33:53] <agronholm> I had this in requires-dist: futures; python_version < '3.2'
[14:34:15] <agronholm> so I added extras_require={"python_version < '3.2'": 'futures'}
[14:34:29] <agronholm> which didn't work
[14:34:42] <dstufft> oh, I don't know
[14:34:50] <dstufft> I don't know much about how setuptools implements that
[14:35:02] <agronholm> who would know?
[14:35:25] <xafer> agronholm, did you test with extras_require={":python_version < '3.2'": 'futures'} ?
[14:35:29] <xafer> with ':' ?
[14:35:40] <agronholm> xafer: sorry, that was missing a :
[14:35:40] <dstufft> you could post an issue on bitbucket.org/pypa/setuptools
[14:35:50] <agronholm> I did have : at the beginning
[14:35:56] <agronholm> it did work with == instead of <
[14:38:34] <agronholm> dstufft: I will
[14:39:23] <xafer> I think you only get the markers of pep345 (which doesnt have </<=/>/>=)
[14:39:42] <agronholm> oh
[14:40:20] <xafer> I use "python_version == '3.2' or python_version == '2.7'" usually
[14:40:36] <dstufft> markers aren't really entirely fully supported yet I don't think, PEP 345 is kind of half way supported, and PEP 426 isn't complete yet
[14:41:47] <xafer> on a project of mine I have: {':python_version == "2.6" or python_version == "2.7"': ['mock>=1.0.1'],}
[18:16:21] <mattupstate> might someone be able to point me to a working (open source project) example of using `dependency_links` for a package on github? No matter what I've tried I can't seem to get it to work
[18:18:52] <dstufft> mattupstate: setuptools uses them for some dependencies I think
[18:20:32] <mattupstate> dstufft: i'll check it out
[18:20:33] <mattupstate> thanks
[18:24:09] <mattupstate> hmm, not really helping
[18:24:15] <mattupstate> seems like an odd feature, really
[18:25:11] <mattupstate> well, not odd, but difficult to understand how to use it
[18:25:21] <mattupstate> i've tried all sorts of things so far with no luck
[18:29:35] <mattupstate> wondering, does pip/setuptools download the package(s) from the dependency_link value before seeing if the dependencies can be fulfilled?
[19:05:06] <sontek> Hey, I haven't been following the version changes in pip 6, what changed that makes something like this not work: "smlib.globaltemplates<2.0.0,<=1.0.2,>=1.0.7"
[19:05:48] <sontek> A bunch of people within the company have started reporting that our software no longer works when they are spinning up new versions and its all because pip 6 is being pulled in
[19:06:08] <sontek> So wondering what I need to tell people, is what they are doing fixable or do I just have them pin to 1.5.6?
[19:06:39] <dstufft> sontek: setuptools 8+ and pip 6+ implement PEP 440 which changes the meaning of , in a version specifier from "a bunch of complex rules that nobody really fully understands and are really hard to explain" to "it means AND"
[19:07:09] <dstufft> so in particular, there is no possible version which is <2.0.0 AND <=1.0.2 AND >=1.0.7
[19:09:15] <sontek> Ok, is there a way for them to allow less than or equal to 1.0.2 or >= to 1.0.7 and less than 2.0.0 now?
[19:09:28] <sontek> Basically their problem is there is a range of versions that are broken, they want to prevent those
[19:10:49] <dstufft> sontek: there is no support for OR at the moment, your best bet is to use a series of != for the broken versions
[19:20:22] <apollo13> or ranges outside of those
[19:20:29] <apollo13> ah wait, that doesn't work :(
[19:34:16] <JakePee> Having an issue installing the distribute package through pip, getting this https://dpaste.de/EEDg
[19:34:50] <apollo13> why are you installing distribute at all?
[19:35:20] <dstufft> JakePee: See: https://github.com/pypa/pip/issues/2272
[19:35:36] <JakePee> apollo13: Not sure, I'm DevOps and someone else's build is failing
[19:35:42] <JakePee> :)
[19:35:50] <apollo13> JakePee: distribute merged with setuptools awhile ago
[19:36:50] <JakePee> apollo13: Will setuptools 1.1.6 have it merged?
[19:38:19] <dstufft> yes
[19:38:23] <dstufft> it was merged in 0.6.something
[19:41:33] <JakePee> dstufft: Cool, thank you
[20:33:13] <glyph> Is there a document explaining best practices for what a random Python project should tell its users to do to install it?
[20:33:23] <glyph> ^ dstufft
[20:35:06] <dstufft> glyph: Hmm, I don't think we have any documentation on how a random python project should tell users to install it, certainly the goal is to get as close as possible to the answer is just ``pip install foo``. Probably that would be a reasonable topic for https://packaging.python.org/en/latest/distributing.html
[20:35:21] <glyph> dstufft: it's a deeply contentious topic :)
[20:35:43] <glyph> dstufft: If you tell people to "pip install" stuff with native dependencies (particularly: libssl, libcrypto, libffi) then just 'pip' gets you into trouble
[20:36:13] <dstufft> We also have https://packaging.python.org/en/latest/installing.html, but that doesn't really touch on any of the harder issues like native dependencies on platforms where they can't just be ``pip installed``
[20:36:18] <glyph> dstufft: mostly I've been wondering how to do this for Twisted without including a nonfiction novella about the development of dynamic linking on unix platforms
[20:37:44] <dstufft> yea, I don't think we have a super great answer for making it easy on non Windows (ironically, given the sordid history of Windows and compiled things)
[20:38:06] <dstufft> drop support for anything but Windows, problem solved
[20:38:26] <glyph> dstufft: okay now what about OS X
[20:38:33] <glyph> dstufft: imagemagick, for example
[20:38:43] <dstufft> PyPI supports Wheels for OS X now too
[20:38:50] <glyph> dstufft: woah when did that happen, amazing
[20:38:52] <apollo13> I WANT LINUX WHEELS :(
[20:38:58] <apollo13> glyph: long long time ago :)
[20:39:12] <glyph> apollo13: link to the announcement?
[20:39:20] <apollo13> ironically enough the platform where building is the easiest is the hardest to support
[20:39:27] <apollo13> glyph: no idea
[20:39:39] <dstufft> glyph: there was a big long discussion on a pip bug and then some uh, science users did some tests and it worked good enough we turned it on
[20:40:20] <dstufft> glyph: https://github.com/pypa/pip/blob/develop/CHANGES.txt#L282 I'm not sure if we actually made a formal announcement beyond that
[20:40:33] <glyph> sweet
[20:40:47] <glyph> Do I have to have a snow leopard VM to build for older OS versions, or will yosemite do the right thing?
[20:40:47] <dstufft> apollo13: I would argue that the fact building is easy probably has something to do with the fact that distributing pre-compiled is harder
[20:41:24] <dstufft> glyph: in pip 1.5 the SDK version was matched with an ==, in pip 6 the SDK version is matched with a >=
[20:41:43] <dstufft> the SDK verison is determined when the PYthon version is compiled
[20:42:10] <dstufft> so homebrew Python (or pyenv) uses the 10.10 SDK, so it won't work on system Python or PYthon.org installer python
[20:42:22] <dstufft> (won't work as in, pip won't try to install it)
[20:42:26] <glyph> dstufft: okay so I definitely need to keep a Mountain Lion around at least?
[20:42:46] <dstufft> glyph: or use python.org Python to build wheels, they set the SDK to like 10.6 or something
[20:42:48] <glyph> dstufft: oh wait, system python uses old SDK?
[20:43:03] <glyph> dstufft: I would have assumed system python is 10.10 SDK
[20:43:03] <dstufft> I don't remember exactly what system python does tbh
[20:43:09] <dstufft> let me look
[20:43:12] <glyph> dstufft: but okay I just need a machine with python.org python on it
[20:44:29] <dstufft> MACOSX_DEPLOYMENT_TARGET = "10.10"
[20:44:37] <dstufft> er
[20:44:38] <dstufft> /usr/bin/python -m sysconfig | grep MACOSX_DEPLOYMENT_TARGET
[20:44:38] <dstufft> MACOSX_DEPLOYMENT_TARGET = "10.10"
[20:45:08] <glyph> dstufft: right-o
[20:45:36] <glyph> dstufft: I mean, that makes sense, they build the OS in a self-hosted way, it's not like they build all the included frameworks for use on older OSes
[20:45:43] <dstufft> yea
[20:45:46] <dstufft> it makes sense
[20:46:55] <dstufft> if you build a wheel with python.org python it'll be acceptable to pip 1.5.x on python.org python and will be acceptable to most OSX pythons with pip 6+ unless they are compiled with an older SDK than what python.org installs with
[20:50:31] <dstufft> obviously modulo dynamic linking (probably want to staticlly link wheels unless you're really sure users aren't going to end up with a new/old/strange version of it via homebrew or something
[20:51:53] <dstufft> glyph: I think the next major improvement int his area is going to be expanding the Wheel spec so it can include distro + version in the filename, and setup PyPI so it allows both generic linux wheels, and distro specific wheels, and at that point it's up to the projects themselves to publish wheels that work
[20:52:29] <glyph> dstufft: is cryptography building OS X wheels yet?
[20:52:42] <dstufft> glyph: I believe they are yes
[20:53:02] <dstufft> nope
[20:53:03] <dstufft> guess not
[20:56:39] <dstufft> glyph: I actually don't know if cryptography _can_ ship OSX wheels without static compiling openssl, does the OSX SDK version include openssl?
[21:04:37] <dstufft> glyph: can you open a ticket on https://github.com/pypa/python-packaging-user-guide about offering guidance for telling people how to tell their users to install their things
[21:04:47] <dstufft> mention specifically things that require c-exts
[21:17:59] <glyph> dstufft: OS X SDK version does include openssl
[21:18:26] <glyph> dstufft: btw, that changelog entry is for pip; when did PyPI start allowing OS X uploads?
[21:27:53] <dstufft> glyph: sometime before that, not sure off hand
[22:51:12] <glyph> dstufft: okay
[22:58:56] <glyph> dstufft: https://github.com/pypa/python-packaging-user-guide/issues/131
[22:59:01] <glyph> dstufft: is that what you had in mind?
[23:00:52] <dstufft> glyph: yup, thanks!
[23:01:01] <glyph> dstufft: no problem