[10:57:21] <mpeterson> hello, I have a question. I have a project with a requirements.txt file inside it's root folder that uses a vcs url for one of the requirements, if I run pip install -r project_root/requirements.txt it succeeds. Now if instead I run "pip install -e project_root" it says it cannot satisfy the requirement
[10:57:48] <mpeterson> the line in question of requirements.txt is "-e git+https://git.openstack.org/openstack/ceilometer@master#egg=ceilometer"
[10:58:10] <mpeterson> is there something I'm missing? :/
[11:11:46] <mgedmin> what does project_root/setup.py say about install_requires=[...] ?
[11:12:13] <mgedmin> pip install [-e] <directory> doesn't look at requirements.txt, it looks at setup(..., install_requires=...)
[11:16:41] <mpeterson> mgedmin: first it didn't have an install_requires but then I added where I read the requirements file with pip.reqs.parse_requirements to a variable and passed to that parameter
[11:17:39] <mgedmin> I do not believe "-e git+https://.." is valid syntax for install_requires
[11:17:58] <mgedmin> (I assume pip.reqs.parse_requiements() doesn't do that for you)
[11:18:31] <mgedmin> install_requires should say [... 'ceilometer' ...] or possibly [... 'ceilometer >= minimum-version', ...] (because you must be using git master for a reason!)
[11:18:45] <mgedmin> btw pip developers do not like when people import stuff from inside pip
[11:20:51] <mgedmin> afaiu in pip 10 everything will be hidden in pip._internal, so there's no temptation to import stuff from pip
[11:24:48] <mpeterson> mgedmin: I can show you exactly the problem actually... Initialize a folder as git repo and then run "git fetch https://git.openstack.org/openstack/networking-odl refs/changes/70/557370/1 && git checkout FETCH_HEAD"
[11:25:25] <mgedmin> I'd rather look at the code on the web
[11:25:25] <mpeterson> mgedmin: once it's checked out you can run "pip install -e ."
[11:26:29] <mpeterson> mgedmin: that could be a bit more complex because this is a patch that hasn't been merged but https://review.openstack.org/#/c/557370/ is the patch and the repo is https://github.com/openstack/networking-odl/
[11:29:56] <mgedmin> can you pastebin the error you get when you pip install -e . ?
[11:30:24] <mgedmin> I now think pbr does everything right so all you need is to pass a --find-links to pip install so it'll be able to find a ceilometer
[11:30:52] <mgedmin> (in theory a setup.py can define its own find_links, but pip forbids that by default, for security and speed reasons)
[11:32:09] <mpeterson> mgedmin: I was looking at the code at https://github.com/openstack-dev/pbr/blob/master/pbr/packaging.py and it seems to support it...
[11:32:15] <mpeterson> mgedmin: I'll pastebin the error, yes
[11:34:03] <mgedmin> so, when you pip install -e ., pip will look for all the requirements on pypi (or other indexes as defined in your global pip configuration)
[11:37:21] <mgedmin> the best would be to get a ceilometer release to pypi
[11:37:50] <mgedmin> other alternatives include documenting to the users to pip install -e git+https:///...ceilometer _before_ they pip install -e .
[11:38:12] <mgedmin> maybe there's a way to specify --find-links in a way that can use github's repositories so pip install -e . --find-links <some magic url here> would find ceilometer?
[11:38:33] <mgedmin> (usually --find-links expects an HTML page with links to downloadable .tar.gz sdists or wheels)
[11:38:40] <mgedmin> (maybe you can find such a page on github?)
[11:39:27] <mgedmin> possibly using an internal package repository (devpi) would be an option? you could upload ceilometer there
[11:44:55] <mpeterson> mgedmin: awesome, I think with this information I'll be able to solve the problem. I do agree that getting ceilometer in pypi is the way to go and will rise that in the mailing list as well... In the meanwhile your insights will allow me to find a solution to this problem, thanks!
[11:46:08] <mpeterson> mgedmin: it should be documented though, that there is a difference in behavior of -r vs -e, no?
[11:50:59] <mgedmin> I'm sure it is documented... somewhere
[11:53:44] <sumanah> mpeterson: I agree that it would be nice to double-check :)
[14:34:50] <sumanah> in 90 minutes I'm going to be on the OpenNews community call https://opennews.org/what/community/calls/ talking about the new PyPI, in case any of you want to call in.
[18:49:07] <raydeo> the wheel uploaded fine but not the sdist... just an hour or two ago I uploaded a wheel/sdist for a different project using the same twine