question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Un-deprecate `--process-dependency-links` until an alternative is implemented

See original GitHub issue
  • Pip version: 8.1.1
  • Python version: 3.5.2
  • Operating System: Ubuntu 16.04

Description:

The --process-dependency-links was re-added to pip a while ago because there are a number of valid use-cases for the flag: https://github.com/pypa/pip/pull/1955

For this reason, it should probably be un-deprecated until an implementation of PEP 508/440 is in pip. The dependency_links argument to setuptools’s setup is also still documented and not deprecated: http://setuptools.readthedocs.io/en/latest/setuptools.html#dependencies-that-aren-t-in-pypi

What I’ve run:

$ pip install request --process-dependency-links
Collecting request
  Downloading request-0.0.12.tar.gz
  DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release.
... 

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Reactions:70
  • Comments:72 (46 by maintainers)

github_iconTop GitHub Comments

59reactions
ghostcommented, Nov 21, 2017

What’s the proper workflow for this?

Let 's say there’s a library that I need to add a feature to. I fork it on Github. Feature isn’t going to be merged any time soon, so I have a tool that I set to use my Github fork instead of PyPi.

Now all of my users have to add --process-dependency-links when installing my tool with pip, which is a deprecated and even once removed flag?

Is there some option in setup.py that I’m missing or is there really no way around this? It seems like the only viable way to do this is to push up a forked pypi package. That is just going to add to user’s confusion once your pull request does get merged, anyway.

42reactions
rgerkincommented, Jan 9, 2019

I want to leave a small but successful example here for those who first came upon this issue terrified (like me) about what to do with out --process-dependency-links. Using this workflow, my users are now been able to pip install from GitHub or from local sources (not PyPI), or to pip install requirements.txt, or to python setup.py install, and to work on Travis-CI, with pip version 18+, so I think it covers a lot of bases. I hope it is useful to someone, and my apologies if this seems off-topic to others:

In your requirements.txt file, assuming you want people to be able to depend on the GitHub dev branch of package “foo”, e.g.:

scipy>=0.17
matplotlib>=2.0
foo @ git+https://github.com/foo-organization/foo@dev#egg=foo-9999

In your setup.py file:

import os, sys
from setuptools import setup, find_packages

def read_requirements():
    """Parse requirements from requirements.txt."""
    reqs_path = os.path.join('.', 'requirements.txt')
    with open(reqs_path, 'r') as f:
        requirements = [line.rstrip() for line in f]
    return requirements

setup(
    ..., # Other stuff here
    install_requires=read_requirements(),
    )

Some would say that conflating install_requires and requirements.txt is ill-advised, and for a released version, I agree, but I think this works well for development.

Read more comments on GitHub >

github_iconTop Results From Across the Web

What is the alternative to using --process-dependency-links ...
"DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release." I am on pip v7.1.2. What is the...
Read more >
pip and dependency links - Google Groups
Setuptools has a “feature” called dependency links which allows one project to ... It would need to stop using them obviously before it...
Read more >
Release Notes — pip 10.0.0.dev0 documentation
Implement a top-level pip download command and deprecate pip install --download . When uninstalling, look for the case of paths containing ...
Read more >
Application Dependency Mapping: The Complete Guide
Dependency mapping is the process of gathering information about all your underlying application dependencies and presenting it in a way you can easily ......
Read more >
Gradle 7.0 Release Notes
Before Gradle 7.0, the only way to declare dependencies between projects in a ... type-safe alternative to project(":commons:utils:numbers") implementation ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found