Skip to content

Canonical guide to specifying dependencies? #685

@pganssle

Description

@pganssle

We should probably have a canonical guide to installing dependencies on packaging.python.org, especially since PEP 508 has changed things like how to link to a git repository. I get a lot of questions like, "Why are my dependency links not working now?" and since I don't really use those I can just tell people, "Oh something about that changed, here's an inscrutable PEP that maybe would help"?

This could be done incrementally (and can be broken into smaller parts, providing there is "clearing house" page that links to the other pages), but it would be nice to clearly cover:

  1. The syntax for declaring dependencies
  2. The syntax for environment markers
  3. How to declare dependencies to a URL (i.e. not PyPI)
  4. The differences between what goes in a requirements.txt file and what can be declared in install_requires
  5. The use of constraints.txt files (which I think really reduces the need for requirements.txt.
  6. How to use extras.
  7. What is and is not allowed as a dependency in packages uploaded to PyPI.

Some of this is defined in various PEPs, but my understanding is that the canonical and current documentation should live on packaging.python.org.

There should also probably be a "hat note" (Wikipedia terminology) pointing to any such page from managing application dependencies to this page.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions