PMXBOT Log file Viewer

Help | Karma | Search:

#pypa logs for Thursday the 22nd of January, 2015

(Back to #pypa overview) (Back to channel listing) (Animate logs)
[00:07:28] <Moult> Yasumoto: http://pastebin.com/yhaeC4kc decided to not ctrl-c, this is the output
[00:07:48] <Moult> Yasumoto: note that a regular pip install numpy inside a pyvenv3.4 works fine
[00:19:12] <Yasumoto> toss that
[00:19:23] <Yasumoto> DISTUTILS_DEBUG=1 PEX_VERBOSE=1 in front of the pex -r numpy -vvvv
[00:19:55] <Yasumoto> interesting that it's getting hung up on a wheel
[00:22:26] <Moult> Yasumoto: what cpython version are you using?
[00:22:39] <Moult> Yasumoto: maybe it just truly is incompatible with 3.4.1
[00:22:39] <Yasumoto> CPython 3.4.2
[00:24:19] <Moult> Yasumoto: possibly http://stackoverflow.com/questions/27203967/python-3-4-pip-install-wheel-fails-on-yosemite-not-a-supported-wheel-on-this
[00:25:25] <Yasumoto> holy moly: Most of the current tests do string comparisons of these values which will not work properly with a two-digit version number ('10.10' < '10.9' --> True).
[00:29:49] <Moult> now i'm not on osx, but upgrading doesn't hurt
[00:30:53] <Moult> Yasumoto: by the way, your variables actually decrease the verbosity
[00:31:15] <Moult> suspect due to PEX_VERBOSE=1
[00:31:30] <Yasumoto> wut
[00:31:32] <Yasumoto> heh
[00:31:49] <Yasumoto> I'll.... double check that
[00:31:58] <Yasumoto> I've been using those as my debugging tool for quite a while
[00:34:38] <Moult> Yasumoto: i suspect your PEX_VERBOSE=1 == -v, whereas i am using -vvvv or whatever
[00:35:02] <Yasumoto> yeah, I'll take a look to figure that out
[00:35:09] <Yasumoto> there's a build tool called pants which uses pex
[00:35:28] <Yasumoto> so the env variable is pretty much our only hope for bumping verbosity with that
[00:35:29] <Moult> Yasumoto: i looked at pants and didnt' want the complexity
[00:35:59] <Yasumoto> yeah, we're feeling pretty alpha-tester-y for http://aurora.incubator.apache.org
[00:36:22] <Yasumoto> (it's been in use at a few places for a while, but it's finally started getting some traction.. which means lots of changes)
[00:43:22] <Moult> Yasumoto: just updated to 3.4.2, didn't help :(
[00:55:58] <Yasumoto> hrm
[01:05:19] <Moult> Yasumoto: neither on python 3.3, hmm, you're on osx? perhaps this is a linux issue?
[01:05:41] <Yasumoto> yeah, OS X
[01:05:52] <Yasumoto> (10.10)
[01:06:15] <Yasumoto> which distro/version you on?
[01:06:27] <Yasumoto> and you tried with DISTUTILS_DEBUG=1 ?
[01:07:45] <Moult> Yasumoto: distutils doesn't make a difference
[01:07:47] <Moult> Yasumoto: gentoo
[01:18:02] <Yasumoto> i'm only considering that if it's having trouble going from sdist -> bdist
[01:18:08] <Yasumoto> (not sure if numpy is pure-python or not offhand)
[01:21:05] <Moult> Yasumoto: Pillow also has the same problems as numpy
[01:23:59] <Yasumoto> I have a feeling you're unearthing a deeper issue than has been discovered before.. :)
[01:24:21] <Yasumoto> does
[01:24:39] <Yasumoto> pex -r twitter.common.app work ?
[01:26:54] <Moult> Yasumoto: i am investigating more
[01:45:01] <Moult> Yasumoto: do you know if i can specify my own wheel file?
[01:57:54] <Yasumoto> as in your own dist for wheel, or point to a wheel to use?
[02:03:16] <Moult> Yasumoto: either, just searching for options to narrow down the issue
[02:03:16] <Moult> Yasumoto: not entirely sure how to continue debugging
[02:09:29] <Yasumoto> well definitely sounds like a github issue should be filed
[02:09:37] <Yasumoto> then you/me/wickman can start triaging further
[02:09:59] <Yasumoto> might be interesting if you can get a gentoo vagrant image or something to make repro-ing easier
[02:10:16] <Yasumoto> (also, adding log-statements all over the place would by my next step)
[02:10:23] <Yasumoto> (that or running pex through pdb if you prefer that)
[02:13:41] <Moult> Yasumoto: i would be willing to help debug the pex code if you could help walk me through setting it up
[02:13:58] <Yasumoto> that's awesome, sounds good
[02:15:39] <Moult> Yasumoto: keep in mind i only started seriously using python a while back, so i'm still rather new to the language :)
[02:18:43] <Yasumoto> heh, no worries, always good to have fresh eyes on a project :)
[02:24:07] <Yasumoto> Moult: I gotta step out for the evening, but if you file a gh issue, we can tackle it together there
[02:24:35] <Moult> Yasumoto: sounds good, i will code dive a bit, then post a gh issue
[03:19:35] <Moult> Yasumoto: ping
[03:34:41] <Yasumoto> Moult: yo yo
[03:34:43] <Moult> Yasumoto: so i fixed it but i'm not entirely sure of the consequences
[03:34:43] <Yasumoto> heh
[03:34:52] <Yasumoto> I've been there before :D
[03:34:56] <Yasumoto> was it in pex itself?
[03:34:59] <Moult> Yasumoto: see pep425.py, L103
[03:37:23] <Moult> Yasumoto: yes, in pex
[03:37:27] <Yasumoto> "# TODO(wickman) This implementation is technically incorrect but we need to be able to"
[03:37:27] <Moult> Yasumoto: so abis.extend(['cp%sm' % version, 'abi3']) would form abis such as "cp33m" and "cp34m"
[03:37:27] <Yasumoto> uh huh
[03:37:31] <Moult> Yasumoto: now, according to pep425, and according to what my logs are spitting out, the actual values should be cp33 / cp34 ie. no m suffix
[03:37:31] <Yasumoto> ah
[03:37:32] <Moult> Yasumoto: so removing the m suffix fixes it, but ...as i say i don't know the implications, and why the m was there to begin with
[03:37:40] <Yasumoto> aha
[03:37:47] <Yasumoto> well if you want to send in a pull request, we can both find out
[03:37:51] <Yasumoto> i'll nudge wickman tomorrow
[03:38:49] <Moult> Yasumoto: ok, let me create some pull requests now
[03:40:16] <Moult> Yasumoto: https://www.python.org/dev/peps/pep-0425/
[03:41:35] <Moult> Yasumoto: as an example the PEP does mention "cp33m", with the m suffix, but let me do a bit more reading to see exactly when the m comes into play
[03:42:31] <Moult> Yasumoto: if you import sysconfig and do sysconfig.get_config_var('SOABI') what do you get?
[03:52:33] <Moult> Yasumoto: aha https://www.python.org/dev/peps/pep-3149/
[03:52:47] <Moult> Yasumoto: "Python implementations MAY include additional flags in the file name tag as appropriate. For example, on POSIX systems these flags will also contribute to the file name:"
[03:53:27] <Moult> Yasumoto: --with-pymalloc (flag: m ), <-- so that's what the m is for, and also "By default in Python 3.2, configure enables --with-pymalloc so shared library file names would appear as foo.cpython-32m.so . "
[03:54:07] <Moult> Yasumoto: i suspect that the m there is incorrect as it assumes that it will always be compiled --with-pymalloc
[03:55:09] <Yasumoto> https://gist.github.com/Yasumoto/49555fff42b4ea9358f1
[03:55:20] <Yasumoto> ohhhhh
[03:55:24] <Yasumoto> crazy. heh
[03:55:46] <_habnabit> yeah, you need to support with and without the m
[03:56:39] <Moult> _habnabit: what about other flags like d and u
[03:57:18] <_habnabit> ah, yeah
[03:57:26] <_habnabit> i thought m was the only one, but d is important too
[03:57:35] <Moult> Yasumoto: none is valid too, which explains why yours works and mine doesn't, i suspect the way gentoo manages multiple pythons had a part to play in this
[03:57:45] <Yasumoto> gotcha
[03:57:54] <_habnabit> i think the u flag isn't present in 3.4 anymore
[03:57:59] <_habnabit> or maybe 3.3?
[03:58:19] <_habnabit> 3.3 or 3.4 removed the narrow/wide unicode distrinction
[03:58:44] <Moult> _habnabit: i think u should still be checked in case something like py3u is set
[03:59:17] <_habnabit> right, but my point is just that it's not applicable to future versions of python 3
[03:59:27] <Moult> _habnabit: yep
[03:59:56] <Yasumoto> _habnabit: ah, gotcha, good point
[04:01:59] <Moult> so (excuse my beginner python) - do you folks think this is sufficient as a fix? abis.extend(['cp%s' % version, 'cp%sd' % version, 'cp%sm' % version, 'cp%su' % version, 'abi3'])
[04:02:28] <Moult> whoops, forgot that combinations can occur (eg: cp33dmu)
[04:06:01] <Moult> Yasumoto _habnabit any ideas if there is an alternative to adding all the permutations of dmu?
[04:10:11] <Moult> Yasumoto _habnabit http://pastebin.com/b6nbCE69
[04:18:37] <Yasumoto> #all_the_interpreters
[04:19:13] <Moult> Yasumoto: ?
[04:19:37] <Yasumoto> (that pastebin looks like it'll work on most/all interpreters if i'm reading right)
[04:19:57] <Moult> Yasumoto: yep, i believe i've covered all the cases
[04:25:06] <Moult> Yasumoto: https://github.com/pantsbuild/pex/pull/32
[04:25:30] <Yasumoto> awesome! stoked to look through
[04:35:49] <Moult> Yasumoto: https://github.com/pantsbuild/pex/pull/33
[10:18:02] <underyx> hey there
[10:18:25] <underyx> I'm using pip to update our staging server to every new build we have
[10:18:44] <underyx> sometimes these new builds of our own software have new dependencies listed in setup.py
[10:18:58] <underyx> so we can't just ignore dependencies when upgrading
[10:19:35] <underyx> but if I do --upgrade with no --no-deps, libraries already at the latest version will also be reinstalled
[10:19:54] <underyx> having lxml in there for instance adds an extra 10 or so minutes due to compilation
[10:20:31] <underyx> is there a way to not reinstall packages that were already at the latest version?
[10:23:31] <underyx> so to be perfectly clear here
[10:23:35] <underyx> pip install --index-url internal.devpi.index --upgrade --no-deps internal-package-1 internal-package-2 internal-package-3 internal-package-4
[10:23:54] <underyx> this won't install any new dependencies, breaking our services, so that's no good
[10:24:02] <underyx> pip install --index-url internal.devpi.index --upgrade internal-package-1 internal-package-2 internal-package-3 internal-package-4
[10:24:37] <underyx> this will reinstall all dependencies, which makes deployment take around 100-1000x the time it should, which also isn't very good
[12:28:36] <The-Compiler> I have a virtualenv on Windows 7. Now when I start the virtualenv's pip and try to install something, it tells me it's already installed in my C:\Python34\Lib\site-packages. Why does that happen?
[12:29:12] <The-Compiler> Requirement already satisfied (use --upgrade to upgrade): pylint in c:\python34\lib\site-packages
[12:33:28] <The-Compiler> and it seems to work fine on Windows 8
[12:36:15] <apollo13> looks as if system-site-packages are enabled for that venv
[12:36:21] <apollo13> wasn't that the default on windows?
[12:38:43] <The-Compiler> oh, wait, *I* do that (or my script rather) if I'm on Windows. :D
[12:39:10] <The-Compiler> so the issue is probably pylint being installed system-wide on my Win7 machine, but not on my Win8 machine
[12:39:14] <apollo13> yes
[12:39:33] <The-Compiler> so if I run it with --upgrade, I'll get the newer version in the virtualenv, correct?
[12:40:00] <apollo13> on linux that would crash
[12:40:07] <apollo13> cause it can't remove pylint from /usr…
[12:40:33] <apollo13> not sure what happens in windows, but installing the same package in the venv and the system site-packages sounds like a bad idea
[12:41:36] <The-Compiler> Well, I'd like the venv to work no matter what is installed system-wide. And I have a library (PyQt) installed which I need in the venv as well, thus the --system-site-packages
[12:42:05] <The-Compiler> on Linux I just symlink the .so's - maybe I should just copy the relevant files on Windows as well, instead of using --system-site-packages
[12:43:31] <apollo13> no idea, I don't use windows :)
[12:44:19] <The-Compiler> I wish, this is my test bot (buildbot), so that'd mean "don't support windows" :P
[12:45:30] <mgedmin> let's experiment!
[12:46:10] <mgedmin> virtualenv /tmp/first; virtualenv -p /tmp/first/bin/python /tmp/second --system-site-packages
[12:46:55] <mgedmin> /tmp/first/bin/pip install requests==2.0.0
[12:46:59] <apollo13> mgedmin: that does something else
[12:47:02] <mgedmin> /tmp/second/bin/pip install requests => "already satisfied"
[12:47:18] <mgedmin> /tmp/second/bin/pip install requests -U => installs requests 2.5 into /tmp/second
[12:47:28] <The-Compiler> Not uninstalling pylint at c:\python34\lib\site-packages, outside environment C:\Users\florian\buildbot\slave\win7\build\.venv
[12:47:31] <mgedmin> /tmp/first/bin/pip list => requests (2.0.0)
[12:47:39] <apollo13> mgedmin: -p onto a venv will result in the site-package from your global python, not from the other venv python
[12:47:42] <mgedmin> IOW, it's safe to pip install -U even when you use --system-site-packages
[12:48:03] <mgedmin> oops sorry yes
[12:48:13] <mgedmin> anyway it didn't fail and it didn't try to uninstall /usr/lib/python2.7/dist-packages
[12:48:14] <The-Compiler> so either I don't use --system-site-packages, or I ditch the systemwide installation I don't need anyways
[12:48:29] <calston> anyone got a clue for me https://gist.github.com/calston/72a5fd8bf064e0f6d342
[12:48:47] <calston> suds explods with pip install, but setup.py build works
[12:49:05] <mgedmin> calston, do you have python-daemon installed?
[12:49:37] <mgedmin> python-daemon installs a buggy entrypoint that breaks pip install of any other package :/
[12:49:50] <mgedmin> the error is "ImportError: No module named version"
[12:50:16] <Wooble> calston: what version of pip are you using? I had that same ImportError on a stock Ubuntu 12 that was fixed by upgrading pip.
[12:50:28] <mgedmin> calston: https://mail.python.org/pipermail/distutils-sig/2015-January/025649.html
[13:21:50] <ychaouche> Hello
[13:21:58] <ychaouche> I'm new to setup.py
[13:22:12] <ychaouche> I just installed a package in a virtualenv with python setup.py develop
[13:22:17] <ychaouche> Now I want to remove the package
[13:22:48] <ychaouche> I tried with pip uninstall mypackagename, it says : Cannot uninstall requirement infomaniak, not installed
[13:23:16] <ychaouche> On the other hand, pip freeze isn't showing any packages at all on this fresh virtualenv
[13:23:28] <ychaouche> (I am using virtualenvwrapper if that matters).
[13:23:32] <mgedmin> is infomaniak same as mypackagename?
[13:23:38] <ychaouche> mgedmin: yes
[13:23:48] <ychaouche> it's the name of my package
[13:23:55] <mgedmin> that makes things clearer :)
[13:24:31] <mgedmin> it sounds as if you have a different virtualenv activated than the one where you installed the package
[13:25:26] <calston> Wooble: 6.0.6
[13:25:35] <ychaouche> as I said, it's installed with setup.py develop (not install) and I can see the infomaniak-link in the virtualenv I am currently in
[13:25:38] <ychaouche> will paste the ls
[13:25:49] <calston> mgedmin: interesting
[13:26:05] <ychaouche> https://gist.github.com/ychaouche/9b0e09f6bd9d227cce0e
[13:26:14] <calston> python-daemon==2.0.3
[13:26:20] <mgedmin> hm, ok, interesting
[13:26:51] <calston> according to pip freeze
[13:27:01] <mgedmin> ychaouche, I always thought that 'pip install -e foo' was the same as 'cd foo && python setup.py develop
[13:27:12] <mgedmin> and you can pip uninstall stuff installed with pip install -e
[13:27:25] <mgedmin> but maybe plain setup.py develop doesn't write the right metadata somewhere? I dunno...
[13:27:58] <ychaouche> mgedmin: how to tell pip to install the package from a path, not from Internet ?
[13:28:27] <mgedmin> pip install /path/to/package or pip install -e /path/to/package
[13:28:36] <mgedmin> depends on if you want a copy or an .egg-link
[13:29:22] <ychaouche> hum, at this point I don't really understand everything about how all of this works. Still learning by practice :)
[13:29:44] <ychaouche> I think I will create a new virtualenv and try to install with pip this time and see if uninstall works fine.
[13:30:04] <mgedmin> it's a complicated pile of stuff :/
[13:31:10] <calston> meh, pip show doesn't list dependencies
[13:31:50] <mgedmin> really?
[13:32:35] <ychaouche> So I installed with pip -e, and pip freeze is a little confused it seems : https://gist.github.com/ychaouche/c70afdf4e35035fdb5c7
[13:33:12] <mgedmin> yes, pip freeze really likes to output -e git:...#commithash URLs for editable packages
[13:38:31] <calston> mgedmin: okay well I recreated the virtualenv and installed the stuff again and it works, so I guess whatever package required it has dropped that
[13:38:35] <calston> thanks for the help
[13:43:51] <ychaouche> Why isn't my module available after install ?
[13:43:52] <ychaouche> https://gist.githubusercontent.com/ychaouche/3cdf8240b070a9c80ad2/raw/b5abfcb12c6cec3104324dfdaeb0d98ae2d054bf/gistfile1.txt
[13:44:05] <ychaouche> can't import it from the python interpreter
[13:48:06] <Wooble> ychaouche: missing __init__.py?
[13:48:20] <ychaouche> oh right, I am.
[13:48:25] <ychaouche> let me touch that.
[13:48:59] <ychaouche> It would be nice if the standard error message of touch was "can't touch this".
[13:49:02] <apollo13> use python3.4 :þ
[13:50:10] <ychaouche> ah, works fine with __init__.py :) thanks Wooble
[13:51:31] <ychaouche> Ok. Next step is to figure out how to rewrite my module so that it finds the files it needs to read
[13:51:46] <ychaouche> files are in the same directory but for some reason it can't find them
[13:52:00] <ychaouche> I guess it has something to do with the cwd not set to the location of the script
[13:52:11] <ychaouche> brb
[14:07:05] <ychaouche> mm I have to use pkg_ressources.ressource_name
[14:07:25] <ychaouche> ressource_string*
[14:48:28] <ychaouche> So my script needs some non python files, like HTML files and one configuration file.
[14:49:28] <ychaouche> I don't know where they should belong
[14:49:40] <ychaouche> I was thinking of putting the configuration file in /etc/ ?
[14:49:46] <ychaouche> but where do the HTML files go ?
[14:51:15] <mgedmin> if you want pip install to work, keep them with the source code, maybe in a subdirectory
[14:51:26] <mgedmin> if you're building debian packages, feel free to move them to /usr/share, /etc etc.
[14:52:04] <mgedmin> config files? ~/.config/yourpackage.ini (well, $XDG_CONFIG_DIR if it's defined) or /etc/yourpackage.ini or (best) allow the user to specify the config file on the command line
[14:52:31] <mgedmin> don't require a config file in /etc, maybe users will want to pip install your stuff and use it when they don't have root on the machine
[15:00:20] <ychaouche> actually, i don't intend to release the final "thing", it's only to write things the right way on my machine then deploy them on one or two servers, and also to make smooth updates.
[15:01:09] <ychaouche> Since the "thing" I want to write will be a daemon, I also need to put things in /etc/init.d/ etc., so I don't know what's the right packaging to choose (debian or python)
[15:01:35] <ychaouche> maybe also a script in /usr/bin/ to launch it
[15:02:26] <ychaouche> but since the dameon is written in python, I don't know where to put the python files, so I thought of creating a python archive that would go in site-packages (dist-package in debian)
[15:04:08] <ychaouche> also the install script should issue some post-install commands, like updaterc.d and service infomaniak start.
[15:04:37] <ychaouche> what do you think ?
[15:08:06] <DanielHolth> debian packaging will be better at installing things outside of site-packages
[15:13:47] <ychaouche> How bad should I feel if I write an install.sh script that does the pip install then continues with copying the files and calling other commands ?
[15:16:47] <tos9> Sigh. I'm trying to track down a bug, and I can't quite figure out what the correct combination is to reproduce it is.
[15:17:25] <tos9> I *think* the combination is 1) pip install --download 2) a private git repo 3) with no git tags 4) with a specifier that specifies a branch name
[15:18:10] <tos9> Which produces a traceback in pip's rmtree_errorhandler that's tryign to remove a file in the temporary repo that looks like .git/tags.12345, when by the time shutil.rmtree runs, that file doesn't exist.
[15:18:33] <tos9> (There is one called .git/tags though.) I don't suppose anyone has any insights or has seen this before?
[15:45:54] <pf_moore> tos9: Sounds like a race condition in rmtree_errorhandler. Maybe add a check if the file exists, and if not then just return. See if that fixes the issue.
[15:47:12] <pf_moore> As shutil.rmtree isn't (can't really be) atomic, that's probably the best we could do.
[15:50:05] <tos9> pf_moore: it does, but it's consistent -- it can't be atomic but pip could ignore the error presumably?
[15:50:53] <tos9> oh sorry, that's what you said :)
[15:50:56] <tos9> it's still early
[15:53:43] <tos9> bleh, no it looks like that tags file is being renamed in there, it's not a new one
[15:54:18] <tos9> does pip shell out for git cloning? yes right? and I presume it waits for the process to exit?
[15:57:05] <xafer> https://github.com/pypa/pip/blob/develop/pip/vcs/git.py#L119 :)
[16:09:01] <twilder6629> Hey guys, seeing something strange with pip installation.
[16:10:17] <twilder6629> We deploy on closed networks so we cannot use a package index unless we bring one up ourselves. Right now the solution is to ship a bunch of wheels in an installer and use --find-links and --no-index to satisfy deps. I just made a custom package and strangely cannot get it picked up when I call pip install on the dir it resides in.
[16:10:30] <twilder6629> Wondering if my tagging scheme is off or if I'm missing something.
[16:10:47] <twilder6629> pip install --find-links ~/ansible_wheels --no-index --pre mass-install is the call
[16:11:11] <twilder6629> ~/ansible_wheels contains:
[16:11:25] <twilder6629> ansible-1.8.2-py2-none-any.whl MarkupSafe-0.23-cp27-none-linux_x86_64.whl pycrypto-2.6.1-cp27-none-linux_x86_64.whl
[16:11:25] <twilder6629> ecdsa-0.11-py2-none-any.whl mass_install-2.6.1.2.commit.544f732dd4f3a6d8a65d9bc15476e05745f7b2c9-py2-none-any.whl PyYAML-3.11-cp27-none-linux_x86_64.whl
[16:11:25] <twilder6629> Jinja2-2.7.3-py2-none-any.whl paramiko-1.15.2-py2.py3-none-any.whl setuptools-12.0.4-py2.py3-none-any.whl
[16:12:14] <twilder6629> if i specify the package directly as the target of pip it installs correctly and hass the mass-install name associated with it
[16:13:17] <twilder6629> the name of the package in setup.py is mass-install
[16:13:34] <twilder6629> curious about why --find-links can't pick up the wheel
[16:15:21] <twilder6629> The package is built with setuptools rather than distutils and has a version of 2.6.1.2 and a dev tag of .commit.<git_commit_hash>
[16:15:22] <bowlofgrapes> hey, so remember that pulp plugin i was talking about to sync from PyPI? we released the first version of it today! http://pulp-python.readthedocs.org/en/0.0-release/ however, it doesn't have the sync feature just yet
[16:15:44] <bowlofgrapes> but you can use it to upload and publish python modules, and it publishes in a way that is compatible with pip
[16:34:38] <ionelmc> twilder6629: shouldn't find-links be an URI ?
[16:34:55] <ionelmc> eg, file:///home/wat/ansible_wheels
[16:35:23] <xafer> +1
[16:38:47] <twilder6629> hmm let me try that
[16:38:56] <twilder6629> interestingly it seems to still get dependencies just fine
[16:40:22] <twilder6629> no dice
[16:40:40] <twilder6629> reference to the package by module name fails, reference by full path still succeeds
[16:41:01] <twilder6629> pip install --find-links file:///root/ansible_wheels --no-index --pre /root/ansible_wheels/mass_install-2.6.1.2.commit.544f732dd4f3a6d8a65d9bc15476e05745f7b2c9-py2-none-any.whl
[16:42:03] <twilder6629> whereas pip install --find-links file:///root/ansible_wheels --no-index --pre mass-install is the failing call
[16:42:43] <twilder6629> interestingly it seems to be discovering the package
[16:43:43] <twilder6629> Could not find a version that satisfies the requirement mass-install (from versions: 2.6.1.2.commit.544f732dd4f3a6d8a65d9bc15476e05745f7b2c9)
[16:44:00] <twilder6629> maybe that commit tag can't be parsed even as a development tag
[16:46:49] <dstufft> twilder6629: what version of pip
[16:47:19] <twilder6629> 6.03 dstufft
[16:48:02] <dstufft> pip install --find-links path/to/wheel/s --no-index mass-install===2.6.1.2.commit.544f732dd4f3a6d8a65d9bc15476e05745f7b2c9
[16:48:03] <dstufft> try that
[16:49:09] <twilder6629> ok that works
[16:49:17] <twilder6629> the issue is not so much getting anything to work
[16:49:29] <twilder6629> as being able to install just from the module name
[16:49:51] <twilder6629> since i need other things that depend on this to work without having to specify versions in requirements
[16:50:06] <dstufft> I was just verifying
[16:50:17] <twilder6629> oh, well that's entirely reasonable
[16:50:19] <dstufft> the problem is that it can't be parsed as a PEP 440 version
[16:50:48] <dstufft> https://www.python.org/dev/peps/pep-0440/
[16:51:08] <dstufft> changing the version number to 2.6.1.2+commit.54.... etc should work
[16:52:37] <twilder6629> [N!]N(.N)*[{a|b|rc}N][.postN][.devN]
[16:52:39] <twilder6629> hmm
[16:53:04] <dstufft> that's the strict form
[16:53:22] <dstufft> it also doesn't include the "local" version identifiers (marked by a +)
[16:53:50] <twilder6629> ah
[16:54:03] <twilder6629> hmmm
[16:54:12] <twilder6629> so if I used local identifiers
[16:54:19] <dstufft> we should probably write an end user document of pep 0440
[16:54:31] <twilder6629> if i make a pip call out to a package index specifying the local version
[16:54:39] <twilder6629> will it also ignore at that point?
[16:54:50] <dstufft> what do you mean
[16:54:52] <twilder6629> the purpose of the commit tags is to implement parallel build caching for unchanged packages
[16:55:03] <twilder6629> we have something like 100 packages to build
[16:55:21] <twilder6629> and whenever we build one, we upload to a local package index and tag it with the git commit of the last change to that package's directory
[16:55:36] <twilder6629> then when we build, if a package matching the last commit to one of ours exists in the package index
[16:55:49] <twilder6629> we grab the prebuilt binary instead of rebuilding the package
[16:55:56] <twilder6629> which makes running parallel builds a LOT faster
[16:56:35] <twilder6629> so the requirement is to be able to communicate a git commit in the version identifier somehow that we can use when installing a package, but at the same time be able to wildcard with just the package name
[16:57:11] <twilder6629> it mostly matters for things with lots of C extensions that take a while to build
[16:57:13] <dstufft> You can do ``pip install 1.0+foo``, and it'll install _only_ 1.0+foo, there's no wild card if you specify the package version like that
[16:57:41] <twilder6629> ok nice
[16:57:55] <twilder6629> i was concerned that the local version would be discarded even if explicitly specified
[16:58:23] <dstufft> nope, but if you do ``pip install foo==1.0`` it might install 1.0+foo if it's available
[16:58:32] <twilder6629> that is totally fine
[16:58:46] <twilder6629> we deploy the dev versions with the commits
[16:59:24] <twilder6629> basically deployment is a single set of commit tagged packages representing one commit in master
[16:59:44] <twilder6629> so there's no ambiguity when deploying since only one of each package exists in the deliverable
[17:00:40] <twilder6629> thank you so much for the help dstufft, i'm going to go try this out
[17:00:57] <dstufft> no problem, hopefully it works out well for you :)
[17:02:11] <ionelmc> dstufft: pong
[17:02:27] <dstufft> ionelmc: hi
[17:06:12] <ionelmc> dstufft: are you familiar with how site.py works on debian ?
[17:06:57] <dstufft> not off the top of my head
[17:08:01] <ionelmc> dstufft: actually, you got any time to look at the rewrite ?
[17:10:05] <dstufft> ionelmc: not right now. I'm tying up loose ends on my current team and switching teams at work a little over a week
[17:10:26] <ionelmc> dstufft: weekend perhaps?
[17:15:28] <dstufft> ionelmc: possibly, I'm not sure what i'm doing this weekend. We were supposed to go to a concert for my daughter's birthday present but that got canceled.. so idk yet if we're doing to do sometihng else or not
[17:17:24] <twilder6629> dstufft, the change works, is tested, and is checked in. Thanks again! Best one character swap ever.
[17:17:39] <tos9> /18/20
[21:50:43] <charettes> I've been following https://packaging.python.org/en/latest/distributing.html#universal-wheels to create an universal wheel for https://github.com/charettes/django-sundial but `python setup.py bdist_wheel --universal` keeps building me a platform specific one.
[21:51:01] <charettes> I've got latest pip and and setuptools installed
[21:51:58] <charettes> I'm on Ubuntu 14.04 LTS (linux-x86_64)
[21:54:18] <charettes> Am I missing something?
[21:57:00] <charettes> Here's the output of running setup.py bdist_wheel --universal
[21:57:01] <charettes> https://gist.github.com/charettes/abdad035dda9574f11d6
[22:08:32] <charettes> Looks like my `find_packages` wasn't called correctly.