PMXBOT Log file Viewer

Help | Karma | Search:

#pypa-dev logs for Monday the 16th of March, 2015

(Back to #pypa-dev overview) (Back to channel listing) (Animate logs)
[00:00:00] <dstufft> I'm not sure I grok what you mean by "single version metadata that setup.py imports"
[00:00:09] <lifeless> oh
[00:00:14] <dstufft> oh you mean it has version in one place and you import it in setup.py?
[00:00:18] <lifeless> yeah
[00:00:37] <lifeless> for unittest2 thats a file in unittest2/_version.py
[00:00:49] <dstufft> I just exec() a fooproject/__about__.py when setup.py is executed
[00:00:55] <lifeless> for pbr projects its written to egg-info locally, or dist metadata when installed
[00:01:24] <lifeless> (pbr projects exclusively infer it from git to write the metadata file)
[00:01:44] <dstufft> yea
[00:05:35] <dstufft> lifeless: I had some ideas for a way to make that work without relying on anything new in pip/setuptools
[00:05:54] <lifeless> so pbr has code that works
[00:06:08] <dstufft> essentially you'd commit a shim setup.py that did nothing but bootstrap a development install, it couldn't be used for setup.py install or anything
[00:06:09] <lifeless> the only fugly is that you need a setup_requires=['pbr'] to ensure pbr is there
[00:06:48] <dstufft> then whne you gnerated an sdist you'd write out a new "static" metadata setup.py that didn't rely on that shim or the pbr-like thing installed
[00:06:57] <lifeless> I figure if we can fix setup_requires, that fugly becomes less so; having a generic [not-git etc] variant of the metadata approach would be something I'd use for unittest2 etc
[00:07:16] <lifeless> that could work
[00:07:24] <lifeless> I wonder about the surprise factor
[00:07:52] <dstufft> you could do whatever you wanted in the setup.py since you'd only ever be using it for development, you don't have to worry so much about what sort of requirements you impose on people
[00:08:10] <dstufft> like you could just blindly import pip at the top of it and do ``pip install <my thing>``
[00:09:36] <dstufft> Note: this is all jsut random/crazy ideas in my head
[00:09:43] <dstufft> I have no idea how feasable any of them are
[01:06:10] <lifeless> dstufft: mailed distutils-sig
[01:07:38] <dstufft> lifeless: awesome
[01:07:53] <lifeless> dstufft: its a fairly small proposal
[01:08:13] <lifeless> dstufft: if you're ok with it, and want to specify the schema for setup.cfg for it, I'll work up a patch
[01:10:15] <dstufft> lifeless: I'll take a look at it, probably tomorrow. I'm pretty tired and I'm about out of steam for today. Didn't sleep last night
[01:10:52] <lifeless> ouch
[01:11:46] <dstufft> I'm mostly just trying to stay awake at this point since it's only 9pm to laste a little longer so I don't wake up at 3-4am again
[01:11:56] <dstufft> like two nights ago :V
[01:12:52] <Ivo> dstufft: could wathc the last game of the ESL CSGO grand finals :D https://www.youtube.com/watch?v=1nzTsorypCQ
[01:13:06] <dstufft> what is an ESL CSGO
[01:13:28] <lifeless> its a computer gaming league competition
[01:13:40] <dstufft> is this a bunch of nerds in a stadium watching someone else play video games
[01:14:20] <dstufft> I'm a nerd, but I have a hard time getting into watching someone else play a game
[01:14:21] <dstufft> :
[01:14:22] <dstufft> :/
[01:14:22] <lifeless> yes
[01:14:28] <lifeless> two teams of 4
[01:14:44] <lifeless> with sportscasters
[01:14:48] <lifeless> just like in baseball
[01:15:26] <lifeless> http://www.twitch.tv/esl_csgo
[01:15:45] <dstufft> oh it's counter strike
[01:15:50] <dstufft> I haven't played that in a long time
[01:16:11] <dstufft> last time I played I had an aimbot because it was hilarous to watch people get really mad about it
[01:16:50] <lifeless> not so hilarious for them
[01:16:59] <lifeless> takes all the fun out
[01:18:30] <dstufft> (Note: Last time I played CS I was also like... 17 )
[03:04:35] <Ivo> !logs
[03:04:35] <pmxbot> http://chat-logs.dcpython.org/channel/pypa-dev
[03:13:15] <Ivo> dstufft: haha, so you were a hacker in even CS..
[03:13:17] <Ivo> lifeless: it's two teams of 5, btw
[03:13:19] <Ivo> ESL-Electronic Sports League CSGO-Counter-Strike: Global Offensive
[11:32:22] <dstufft> pf_moore: ping
[11:35:18] <pf_moore> dstufft: pong
[11:35:35] <dstufft> pf_moore: https://github.com/pypa/pip/pull/2527 Are we closing this or merging?
[11:36:45] <pf_moore> dstufft: My preference is close, I think we just say we only support the standalone installer which supplies an exe. But I was thinking about whether it needed documenting somewhere.
[11:37:08] <pf_moore> Haven't had much time over the weeken. I'll close 2527
[11:37:24] <pf_moore> and add docs in another PR if I decide it's worth it
[11:37:32] <dstufft> pf_moore: it's no worries :) I'm just going through open issues to see what I can find that we can merge or close
[11:38:42] <dstufft> pf_moore: if you have a moment to take a look at https://github.com/pypa/pip/pull/2526 that'd be great too
[11:39:52] <pf_moore> 2526 looks fine to me, I'll merge it in.
[11:42:21] <dstufft> awesome
[11:42:22] <dstufft> thanks sir!
[11:42:34] <pf_moore> np :-)
[11:43:04] <dstufft> if we get the tests running on Windows we should probably bite the bullet and enable appveyor, at least for 1 job
[11:43:08] <dstufft> probably not all the Pythons
[11:43:20] <dstufft> that should at least ensure that we don't regress on Windows specific things
[11:43:30] <dstufft> unless they are windows specific AND python version specific
[11:51:15] <pf_moore> Sounds reasonable.
[11:52:17] <dstufft> tbh it probably wouldn't be unreasonable go through and mark any tests which are failing on windows as xfail for windows
[11:52:26] <dstufft> and then get that set up on CI right now
[11:52:29] <dstufft> well
[11:52:30] <dstufft> "righ tnow"
[11:52:45] <pf_moore> Maybe only do it on the develop branch, not on PRs. Appveyor is so slow that a flood of PRs could leave things stuck for hours. And we don't want to hold PRs up for ages on Appveyor
[11:53:24] <dstufft> yea
[11:53:27] <dstufft> that's not unreasonable
[11:53:38] <dstufft> I know Travis is working on Windows support
[11:54:09] <dstufft> Me and Steve Dower brought the Travis CI folks and some Microsoft employee together to work on it
[11:54:38] <pf_moore> Cool, it'll be really good when they get it, just because people are more familiar with Travis than appveyor.
[11:55:13] <pf_moore> (and hopefully travis won't be as slow as appveyor ;-))
[11:56:17] <dstufft> heh
[11:56:18] <dstufft> yea
[11:56:30] <dstufft> in my experience, part of the reason appveyor is so slow is because they only queue 1 job at a time
[11:56:52] <dstufft> also reviewing PRs, I'm not sure how i didn't know until now that str().startswith() took a tuple...
[12:01:17] <pf_moore> Always cool learning something new ;-)
[12:01:28] <pf_moore> New in 2.5, actually - https://docs.python.org/3/whatsnew/2.5.html#other-language-changes
[12:01:48] <pf_moore> It's those little changes taht no-one makes a fuss about that are *really* great in new releases...
[19:07:26] <lifeless> Ivo: yeah, I fumble-fingered that. I've been gold-4 ranked in csgo
[20:08:32] <dstufft> lifeless: willr espond to you in a bit, gotta get my daughter real quick
[21:50:28] <lifeless> dstufft: no worries
[22:40:30] <dstufft> lifeless: you had to pick a hard problem ;) What to do about installing from a vcs vs installing from a dist I've mostly been trying not to think about right now
[22:41:37] <lifeless> dstufft: sorry :)
[22:41:46] <lifeless> dstufft: [not really]
[22:42:15] <dstufft> part of this here is that distutils (and then setuptools) made the mistake you had the same thing controlling all phases of installation
[22:42:21] <dstufft> and we're trying to untangle them now
[22:42:29] <dstufft> distutils2 made this problem too
[22:42:34] <dstufft> s/made/had/
[23:40:00] <dstufft> lifeless: fwiw if you prefer higher bandwidth communication I'm happy to talk in here, or once groceries show up and I know I won't be itnerupted I'm happy to do video too, or I'm also happy to continue on the ML as well :) Just offering options if you'd prefer!
[23:40:53] <lifeless> dstufft: that might be cool
[23:40:58] <lifeless> give me a ping and we can do a hangout
[23:41:08] <lifeless> i have some evil code to write right now for jogo
[23:41:10] <dstufft> sounds good to me
[23:41:37] <dstufft> I figure it might be easier then going back and forth on the ML trying to sort out all the things
[23:42:53] <lifeless> can I fact check an unrelated thing with you
[23:43:08] <lifeless> there's no way today to do a universal wheel with per-python-version-requirements is there?
[23:43:22] <dstufft> yes there is
[23:43:28] <lifeless> oh, cool. HOW
[23:45:04] <dstufft> you can use environment markers -> https://github.com/pypa/twine/blob/master/setup.cfg#L9-L13 those are wheel only (and the setup.cfg is read at build time not install time), if you specify _any_ thing in there you have to also specify all of them... setuptools also supports environment markers now (I don't recall off hand which version added that). I'm not sure if Wheel understands the setuptools ones yet or not
[23:45:39] <lifeless> pbr might
[23:45:46] <lifeless> god knows how it all gets shoved together
[23:45:56] <dstufft> with sadness
[23:45:57] <dstufft> that's how
[23:47:04] <lifeless> what happens on the wheel side
[23:47:10] <lifeless> does it create multiple sets of deps ?
[23:47:30] <lifeless> or are the markers carried across and still evaluated at install time ?
[23:47:30] <dstufft> Wheels natively support environment markers
[23:47:38] <dstufft> and pip evalutes them at install time
[23:47:49] <dstufft> yea, the second thing
[23:48:15] <dstufft> you can download the twine wheel and unzip it (it's just a .zip file) and look at twine-*.dist-info/METADATA to see
[23:52:00] <lifeless> dstufft: pep 426 says "it compares only strings, with the == and in operators (and their opposites), and with the ability to combine expressions
[23:52:04] <lifeless> dstufft: and then says ..
[23:52:10] <lifeless> CMPOP: (==|!=|<|>|<=|>=|in|not in)
[23:52:16] <lifeless> dstufft: I presume the prose is wrong and the grammar right ?
[23:57:37] <dstufft> lifeless: I think all of the comparison operators work, but it does string comparisons not version comparisons
[23:57:43] <dstufft> that's one of the changes I want to make to PEP 426
[23:57:49] <dstufft> we have PEP 440, we know how to compare versions