-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
--process-dependency-links broken #1428
Comments
👍 |
Can you give me a package and a command you ran to reproduce this error? |
The packages are not public but I can write an abbreviated example: In package A setup.py: setup(
name='modulea',
requires=['celery >=3.2, ==dev'],
dependency_links=['git+ssh://git@github.com/EvaSDK/celery.git@v3.1.6+feature#egg=celery-dev'],
) and in package B setup.py: setup(
name='moduleb',
requires=['modulea'],
) Then running pip install --process-dependency-links -e . on package A works, but not on package B. |
@EvaSDK don't you mean |
yeah For the context of the pip command:
and that works (properly fetches the git repository as long as the is no released version of celery >=3.2.
and that does not work, it tries to install dependencies of project A but fails to select a version of celery because it does not try to fetch it from git. |
this command doesn't know about about the abstract |
But this information is available in egg-info in the dependency_links.txt file. There shall be no difference between the installation of already downloaded archives and those coming from pypi. |
ok, I didn't follow that the 2 commands were being run back to back in the same environment. got it. given that, let me look at it again later today. |
I'm having trouble with your example. I don't see but considering the uncertain future of dependency_links, I have to recommend using the logic of requirements files to handle your fork/override needs. e.g. take a requirements file like so:
you'll end up getting the someproject could also be an editable project like so
BUT you can't have multiple editable path projects referring to each other abstractly. pip doesn't sort it out. only one top-level editable project that's path based. so, NOT this, it won't work
to make this, work, someproject, could be in vcs (with #egg= syntax), or it would need to be packaged, and have pip find it with |
I'm unable to reproduce this. Unless someone can package up a reproducible test that works on pip 1.4.1 but doesn't on 1.5 I'm going to vote that we close this issue. |
Closing this, if you're able to provide steps or similar that we can reproduce please recomment and we can open it again. |
I'll look into providing a complete example. Thanks for your time. |
If you wanted, you could run your own package repository, with your own versions of packages. e.g, run simplepypi or mypypi on a private work server and point pip to it when installing with Then build your own celery fork and put it on your own index. |
I'm not sure whether this is 100% the same problem, but I can at least provide a reproducible example. My project installs fine (in version v0.1) with pip 1.4.1, but pip 1.5.4 can't find a version to install:
The I'm unable to make this work with pip 1.5. Adding
Looks like pip 1.5 is simply ignoring my dependency_links. What's wrong here? |
@bittner did you add |
Aha, thanks, that works. So, in order to cleanly migrate to pip 1.5+ (and make the plain |
Hi,
in the company I work for, we have lots of python packages depending on a forked version of celery (https://github.com/EvaSDK/celery/tree/add-riak-backend).
Some of these packages depend on a common module which depend on this forked version which is only hosted on git. Let's say we have package A which depends on package B which depends on forked version of celery.
With pip 1.4, having a dependency_links in B was enough to allow installation from our internal git copy (which is verified and secure) when running "pip install -e ." on project A.
pip 1.5 breaks that, I tried all possible combination of allow-external, allow-unverified and process-dependency-links to no avail.
I wish I could only use released software, but as you may have understood by now, this is just not possible because of constraints from upstream work. Do you have a recommended solution for that case ?
The text was updated successfully, but these errors were encountered: