Skip to content
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

Document that Requires-Dist can use explicit URLs #1783

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 19 additions & 18 deletions source/specifications/core-metadata.rst
Original file line number Diff line number Diff line change
Expand Up @@ -539,31 +539,32 @@ Requires-Dist (multiple use)
The field format specification was relaxed to accept the syntax used by
popular publishing tools.

Each entry contains a string naming some other distutils
project required by this distribution.

The format of a requirement string contains from one to four parts:

* A project name, in the same format as the ``Name:`` field.
The only mandatory part.
* A comma-separated list of 'extra' names. These are defined by
the required project, referring to specific features which may
need extra dependencies. The names MUST conform to the restrictions
specified by the ``Provides-Extra:`` field.
* A version specifier. Tools parsing the format should accept optional
parentheses around this, but tools generating it should not use
parentheses.
Each entry contains a string naming some other distribution required by this
distribution.

A requirement string has one mandatory and three optional parts.

* A project name, in :ref:`the same format <name-format>`
as the ``Name:`` field. The only mandatory part.
* A comma-separated list of 'extra' names in square brackets, like
``[extra1,extra2]``. These names are defined by the required
project, referring to specific features which may need extra
dependencies. The names MUST conform to the restrictions specified
by the ``Provides-Extra:`` field.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* Either a :ref:`version specifier <version-specifiers>` or a
:ref:`direct reference <direct-references>`. Tools parsing the format
should accept optional parentheses around a version specifier, but
tools generating it should not use parentheses. If a distribution
requires a direct reference it cannot be uploaded to PyPI, but private
repositories may allow such distributions.
* An environment marker after a semicolon. This means that the
requirement is only needed in the specified conditions.

See :pep:`508` for full details of the allowed format.
See :ref:`dependency-specifiers` for full details of the allowed format.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's rendered as capitalized by default:

Suggested change
See :ref:`dependency-specifiers` for full details of the allowed format.
See :ref:`dependency specifiers <dependency-specifiers>` for full details of the allowed format.


The project names should correspond to names as found
on the `Python Package Index`_.

Version specifiers must follow the rules described in
:doc:`version-specifiers`.

Examples::

Requires-Dist: pkginfo
Expand Down
1 change: 1 addition & 0 deletions source/specifications/version-specifiers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1078,6 +1078,7 @@ Examples
* ``~=3.1.0, != 3.1.3``: version 3.1.0 or later, but not version 3.1.3 and
not version 3.2.0 or later.

.. _direct-references:

Direct references
=================
Expand Down