PMXBOT Log file Viewer

Help | Karma | Search:

#pypa logs for Wednesday the 16th of September, 2015

(Back to #pypa overview) (Back to channel listing) (Animate logs)
[00:13:14] <tdsmith> making a fresh clone of the cpython repository is always exciting
[00:13:41] <mathieui> several exciting hours
[00:19:40] <tdsmith> figured out why folks are having trouble building python without the Xcode CLT installed though
[00:39:22] <dstufft> tdsmith: nice!
[01:10:33] <tdsmith> dstufft: willing to place odds on landing https://bugs.python.org/issue25136 in 2.7.11?
[10:26:08] <nanonyme> dstufft, confirmed from workspace, there is only manifest.in, no manifest file
[10:30:20] <ionelmc> nanonyme: so wrong case?
[10:35:00] <nanonyme> Maybe. Would it matter?
[10:35:15] <nanonyme> Apparently it's Python2.6.8 + setuptools 0.6
[10:40:01] <nanonyme> I don't get it. I'm running the exact same commands on a Linux with the exact same setuptools version and *older* Python2.6 and it works
[10:42:59] <nanonyme> Is this manifest.in handling part of distutil or setuptools?
[10:45:16] <ionelmc> distutils
[10:45:26] <ionelmc> https://docs.python.org/2/distutils/sourcedist.html#manifest-template
[10:45:36] <nanonyme> Hah, I think I may have pintpointed it
[10:45:40] <mgedmin> (setuptools monkey-patches it somewhat IIRC)
[10:45:47] <nanonyme> I think this may be a regression in 2.6 branch
[10:45:55] <ionelmc> what setuptools doesn't do :P
[10:46:18] <mgedmin> nanonyme, is the project you're wrangling open-source?
[10:46:21] <nanonyme> No
[10:46:38] <mgedmin> I wrote a tool to help me avoid insanity (pip install check-manifest)
[10:46:43] <nanonyme> Anyway, if I can get away with just renaming manifest.in to MANIFEST.in, I'll do it. I want to verify it first though
[10:47:10] <nanonyme> Ok, zero effect
[10:48:33] <ionelmc> ah yes, check-manifest is very nice
[10:50:07] <nanonyme> Urgh, no. Dammit dammit dammit. It's case-insensitive >_<
[10:51:29] <nanonyme> I just did "python setup.py egg_info --tag-build=$dev_tag sdist --formats=zip|grep json", it still lists the json file on the Linux I tested it on
[10:51:44] <nanonyme> Even with only manifest.in, no MANIFEST.in
[10:51:54] <nanonyme> There's no MANIFEST or manifest file in workspace for the CI job
[10:52:23] <ionelmc> why do you even make it lowercase :)
[10:53:09] <nanonyme> No special reason but fixing it requires commit+PR+having it accepted. I want to first verify there's any significance with the casing before changing it
[10:56:09] <nanonyme> mgedmin, it's complaining about lack of version control data here
[10:57:20] <nanonyme> Ah, well, I guess I can always use it on my production machine, it has the full repo
[10:58:51] <mgedmin> note: setuptools will include a file if one of three things is true:
[10:58:55] <mgedmin> (1) MANIFEST.in tells it to include
[10:59:24] <mgedmin> (2) it's in version control and setuptools recognizes it or has a plugin to recognize it (this tends to break)
[10:59:37] <mgedmin> (3) there's an old .egg-info directory with a manifest inside that includes it
[11:00:04] <mgedmin> so if you rename MANIFEST.in to manifest.in and try again, rule 3 will ensure that nothing changes
[11:00:15] <ionelmc> and that's why you rm -rf that goddamn egg-info every time
[11:00:36] <mgedmin> (that's why check-manifest builds in a clean checkout under /tmp every time)
[11:00:41] <ionelmc> got burned by that so many times
[11:01:03] <mgedmin> fun times! svn used to change the working tree data formats annually, and setuptools would fail to understand them, breaking rule (2)
[11:01:19] <mgedmin> rule (3) meant you wouldn't notice anything strange until you added a new file
[11:01:49] <nanonyme> mgedmin, no .egg-info under directory tree
[11:02:09] <mgedmin> once I worked on a project where the testing pipeline rsynced a (dirty) source checkout, then find + rm -rf'ed all .svn subdirs
[11:02:16] <mgedmin> breaking (2) but keeping (3) from stale *.egg-info
[11:02:40] <mgedmin> so my iron rule now is: always rely on MANIFEST.in being correct
[11:04:32] <ionelmc> mgedmin: have you ever thought about making a "packaging" linter?
[11:04:42] <ionelmc> something like check-manifest but with more inspections
[11:05:17] <ionelmc> there is one, pyroma?
[11:05:31] <ionelmc> yes https://pypi.python.org/pypi/pyroma
[11:14:08] <nanonyme> Also this is Git so there is exactly one .git directory and it's two levels higher than the Python project
[11:14:58] <nanonyme> I just wish I had a reliable reproducer so could make a minimal reproducing case
[11:39:18] <dstufft> tdsmith: nice find :D
[11:53:43] <nanonyme> Managed to verify
[11:53:51] <nanonyme> It was the lower-case manifest.in that was the problem
[11:54:34] <nanonyme> Or, well, I'm now *reasonably* sure of it
[11:57:14] <nanonyme> Okay. I also found out that "python setup.py clean --all" leaves behind .egg-info
[11:57:34] <ionelmc> nanonyme: yes it sadly does
[11:58:07] <nanonyme> Is there any even remotely sane reason for this?
[11:58:25] <nanonyme> I mean, ideally imo clean --all would also wipe dist
[11:59:49] <mgedmin> e.g. there's a python setup.py clean? I'd no idea!
[11:59:50] <ronny> nanonyme: for decdes now distutils and setuptools have carefully separated from the concept of sane
[12:00:57] <dstufft> setup.py reallyclean
[12:01:15] <nanonyme> I'm fine with just nuking the word clean and making a new command that works sanely
[12:01:42] <nanonyme> But --all should really clean the project to as close to pristine state as possible
[12:16:01] <mgedmin> wanted: shell oneliner to add 'Programming Language :: Python :: 3.5', to a setup.py in the right place
[12:18:23] <mgedmin> vim +'/Programming Language :: Python :: 3.4/|norm yyp$bbr5ZZ' setup.py
[12:35:15] <nanonyme> How about making it possible to be set outside of setup.py instead?
[12:35:38] <mgedmin> eventually
[16:59:11] <tos9> whee
[16:59:24] <tos9> dstufft: pip appears to have shuffled around the "API" for reqs again
[16:59:27] <tos9> does that sound possible?
[16:59:42] <tos9> (Specifically like, InstallRequirement._link is "privateish" now it appears)
[16:59:52] <dstufft> everything is privateish
[17:00:02] <dstufft> it might have happened though
[17:00:22] <tos9> Yeah I know :P. Alright.
[20:20:37] <fury_> In order for pip to build something on my system that requires a C++ compiler, I need to add -I/usr/local/include to the cc arguments. how can I do that?
[20:23:46] <ionelmc> fun times, if you install wdk then ucrt includepaths will be all wrong (they have abug https://connect.microsoft.com/VisualStudio/feedback/details/1610302/universalcrt-detection-breaks-when-windows-driver-kit-is-installed _
[20:24:05] <ionelmc> this means you can't compile c exts on 3.5 if you install wdk
[20:24:19] <ionelmc> and appveyor did install it :(
[20:30:35] <dstufft> fury_: CFLAGS?
[20:30:56] <fury_> got it, thanks
[20:31:00] <fury_> was hard to google for, for some reason
[23:00:23] <Fongles> how to get the source of a package with pip?
[23:05:51] <tos9> that may not be a thing
[23:05:59] <tos9> do you mean "download probably the source"?
[23:06:08] <tos9> by which what you want is "download the thing that pip was gonna install"?
[23:06:35] <mathieui> mind reading is hard