PMXBOT Log file Viewer

Help | Karma | Search:

#pypa-dev logs for Wednesday the 25th of February, 2015

(Back to #pypa-dev overview) (Back to channel listing) (Animate logs)
[04:37:29] <sigmavirus24> bye
[04:47:57] <pmxbot> jaraco pushed 1 commit to setuptools (https://bitbucket.org/pypa/setuptools/) :
[04:47:57] <pmxbot> Use rst.linker for generating linked changelog
[10:12:36] <xafer> hello, could someone grab my PR: https://github.com/pypa/pip/pull/2451 and run "tox -e py27 tests/functional/test_uninstall.py -- -k test_uninstall_setuptools_develop_install" to give me a clue of what is happening ? test runs ok on my machine but not on travis :'(
[13:05:07] <dstufft> xafer: if you can't repro it, you can ask #travis to spin up a VM I think
[13:05:14] <dstufft> unless they stopped doing that
[13:05:24] <xafer> I think I finally found the issue
[13:05:59] <xafer> at least I hope :p
[13:07:23] <xafer> cf https://github.com/xavfernandez/pip/commit/bc8c68e7195abba708a635925115bac3c0d70a4f I was running python some_path/setup.py without changing the current directory, meaning the egg-info were produced in the same dir I was making the pip list
[13:08:50] <xafer> dunno why it actually worked on my machine though
[13:14:00] <xafer> looks like that was it :-/
[13:30:23] <pf_moore> dstufft: ping
[13:30:27] <dstufft> pf_moore: pong
[13:30:59] <pf_moore> Thinking about script wrappers. If we're looking to standardise wrappers and put them into packaging, what's the actual point?
[13:31:08] <pf_moore> Is it to get everyone to use the same implementation,
[13:31:23] <pf_moore> or is it just to move pip off distlib's implementation?
[13:31:47] <pf_moore> Seems to me we could end up just having 3 implementations rather than 2, not much of an improvement...
[13:34:11] <dstufft> I'm less concerned with everyone using the same implementation and more about there being a defination of what a script wrapper is supposed to support and such. Obviously it'd be nice if we all used the same implementation since I don't think this is the kind of code that anyone really wants to write :). I'm also not sure if it really needs a PEP or not. A good first step might be to just file a ticket on pypa/packaging and ping nick to see
[13:34:11] <dstufft> what he thinks
[13:35:48] <pf_moore> Cool. Personally, I have 2 goals - first distlib's a big dependency just for the script stuff, but secondly (the hard one) I'd prefer it if pip and setuptools used the same implementation.
[13:36:14] <pf_moore> It's a pain when people have bugs that say X works when I install from wheel but not from sdist (or conversely).
[13:36:48] <pf_moore> Not sure how jaraco would react to that, though, and whether he'd be OK with an external dependency (I don't think setuptools vendors stuff ATM)
[13:36:54] <dstufft> yea I have both those goals too, though I also think we might be able to get setuptools to just use our our implementation (whatever that is) whenever we're installing from sdists
[13:37:00] <dstufft> setuptools vendors packaging already
[13:37:13] <pf_moore> Oh, excellent, I missed that.
[13:37:29] <dstufft> one thing that would be different between pip and setuptools I think, is that our wrapper don't depend on pkg_resources, but setuptools' does
[13:37:41] <dstufft> and I'm not sure there's a way to get setuptools' wrappers to not depend on pkg_resources
[13:37:53] <dstufft> and i'd rather not have ours go back to depending on them
[13:38:27] <dstufft> (that's because setuptools does the multi version install thing which we disable, and it needs pkg_resources to activate the right version)
[13:38:37] <dstufft> however, that's only in the .py file that is generated, not the .exe
[13:38:42] <pf_moore> Yeah, that'd still be a sticking point. But maybe it's doable by hacking setup.py to provide a different template (like we already inject setuptools)
[13:39:18] <pf_moore> The 2 key things I want are (1) no more py file, just an exe with embedded py, and (2) no runtime pkg_resources dependency
[13:39:56] <dstufft> There's one sticking point to the no more py file
[13:40:08] <dstufft> not sure if we care or not
[13:40:23] <dstufft> but if we embed the .py we can't sign the script wrappers ever
[13:40:40] <dstufft> I don't know enough about Windows to know if that's a big deal or not
[13:41:11] <dstufft> I just know uh, what's his face (god damnit, my mind is blanking, the MS guy doing the new installers) mentioned that
[13:41:22] <pf_moore> Steve Dower.
[13:41:25] <dstufft> that's it
[13:41:46] <pf_moore> Hmm, I can't think I care about that, but I don't really know the implications.
[13:41:59] <dstufft> might be reasonable to reach out to him and ask the implications?
[13:42:40] <dstufft> oh
[13:42:44] <dstufft> ther'es one more thing about embedding
[13:43:16] <dstufft> updating pip itself, we could be smarter about not needing/trying to replace the script wrapper, but it's more likely we'd want to replace the py file than replace the .exe file
[13:43:17] <dstufft> I think
[13:43:34] <dstufft> but again, not sure that telling people to use ``python -m pip `` to upgrade pip is that big of a deal with
[13:43:35] <dstufft> either*
[13:44:11] <dstufft> to be clear, in general my preference would be for embedding just because single file is simpler on end users than two files. Just want to make sure we're not going to prevent ourselves from doing something else we'd want to do
[13:44:54] <pf_moore> Yeah. But, we've been using single file wrappers for wheel installs since they started, and no issues so far.
[13:45:15] <pf_moore> Also, single file stops people being tempted to fiddle with the .py file.
[13:45:26] <dstufft> have we? I didn't realize that :)
[13:45:45] <pf_moore> Yes, distlib does it that way - that's why I'm so in favour of them!)
[13:46:17] <dstufft> that certainly points to there being less of a cahnce of problems with that
[13:46:39] <dstufft> I'd still probably suggest making sure the signing implications aren't going to bite us, but in general +1
[13:47:11] <pf_moore> Also, I think tacking a wrapper on the front of some code is the way things are going on Windows. You can tack a launcher on a pyz archive for a full single-file app.
[13:47:23] <dstufft> ok
[13:47:36] <dstufft> I haven't read that PEP at all yet, though i've seen it discussed
[13:48:20] <pf_moore> The PEP doesn't mention adding exe wrappers. That's just something 3rd parties (Vinay, in his pyzzer app, and me :-)) are doing at the moment
[13:48:34] <pf_moore> But it's definitely an option.
[13:50:49] <pf_moore> I'll speak to Steve about the signing issue. And I'll raise an issue on packaging and ping Nick.
[13:52:08] <dstufft> I feel the script wrappers are something that all the packaging tools need, so in that vein it's something that makes sense in packaging
[13:52:18] <dstufft> but I'm not sure what exactly a PEP would like like for them
[13:52:27] <pf_moore> Yeah. One thought though. It'd be very easy for packaging to turn into just another big bunch of useful stuff, much like distlib and setuptools before.
[13:52:56] <pf_moore> I like the idea that packaging is "standardised stuff", but like you say it's hard to define that precisely in a PEP
[13:53:57] <pf_moore> Worth noting though that PEP 459 (metadata extensions) defines an "export spec" which is essentially an entry point, and states (vaguely) that wrapping them in scripts is something installers should do
[13:54:45] <pf_moore> It's hard to say too much more before you're just writing a spec for part of the packaging project. It's not as if you can say "all 3rd party implementations must do X, Y, Z"...
[13:55:10] <pf_moore> (That's where I started with this conversation :-))
[13:57:01] <dstufft> pf_moore: yea heh
[13:57:15] <pmxbot> jaraco pushed 4 commits to setuptools (https://bitbucket.org/pypa/setuptools/) :
[13:57:15] <pmxbot> Only require rst.linker when docs commands are invoked. Also specify sphinx dependency.
[13:57:15] <pmxbot> Update conditional setup-time dependency to also support pytest and test commands.
[13:57:15] <pmxbot> Move pytest config to pytest.ini (as it conflicts with the pytest-runner pytest command).
[13:57:15] <pmxbot> Now tests may be invoked simply with setup.py test.
[13:57:21] <dstufft> pf_moore: I was vaguely originally planning on just including script wrappers when we standardized the entry point itself
[13:57:32] <dstufft> but it's certainly not dependent on that really
[13:58:10] <dstufft> (not every single line of code in packaging needs to be PEP backed, like it has LegacyVersion to deal with non PEP 440 compliant versions)
[14:01:34] <pf_moore> dstufft: Yeah. It's not like there's a huge rush to change this stuff, though. Just on my mind at the moment with the 2 current PEPs I'm doing...
[14:01:58] <dstufft> yea
[14:02:16] <dstufft> I mean I'd like to ditch distlib, it's one of the things keeping us from being able to operate without the ssl module
[14:04:06] <pf_moore> I didn't know that. I'd only been looking at ditching it because it's a big dependency to pull in for a couple of relatively small uses.
[14:06:19] <dstufft> yea, it unambigously imports the ssl module
[14:06:33] <dstufft> obviously without the ssl module there's a lot we can't do in pip
[14:06:38] <dstufft> but we should be able to install from local files
[14:06:49] <dstufft> or from HTTP with --trusted-host
[14:15:43] <pf_moore> Yeah, being unable to work at all is a PITA
[15:10:38] <xafer> dstufft, https://github.com/pypa/pip/pull/2451 seems ok for a possible 6.0.9
[23:28:36] <r1chardj0n3s> uhoh, pip.util got renamed pip-missing-reqs broke :(
[23:45:02] <dstufft> r1chardj0n3s: no API promises!
[23:45:05] <dstufft> (sorry tho)
[23:45:16] <r1chardj0n3s> yeah :)
[23:45:50] <r1chardj0n3s> because I was looking at the code again I got to remove the bit I vendored pre "1.6"
[23:48:42] <r1chardj0n3s> dstufft: the rename was done in 6.0.8, yeah?
[23:48:54] <dstufft> 6.x I think
[23:48:56] <dstufft> but yea
[23:49:16] <r1chardj0n3s> hmm, nova build would've been broken for much longer if that was the case
[23:49:26] <r1chardj0n3s> or maybe it was broken and no-one noticed ;)
[23:49:53] <r1chardj0n3s> it's really hard to determine when that change was made :/
[23:50:33] <r1chardj0n3s> I'll just do it manually looking at tagged versions
[23:50:51] <dstufft> pip.util in 1.5.6 and pip.utils in 6.0
[23:50:59] <r1chardj0n3s> yep, 6.0
[23:51:17] <dstufft> my memory is the best ever
[23:51:29] <dstufft> except for the fact I can't remember anything except stupid trivia like what version something happened in
[23:51:41] <dstufft> or fingerprinting OS versions by pip version
[23:51:45] <dstufft> totally useful skills you see