bpo-38914 Do not require email field in setup.py. (GH-17388)

When checking `setup.py` and when the `author` field was provided, but
the `author_email` field was missing, erroneously a warning message was
displayed that the `author_email` field is required.

The specs do not require the `author_email`field:
https://packaging.python.org/specifications/core-metadata/#author

The same is valid for `maintainer` and `maintainer_email`.

The warning message has been adjusted.

modified:   Doc/distutils/examples.rst
modified:   Lib/distutils/command/check.py


https://bugs.python.org/issue38914
This commit is contained in:
Jürgen Gmach 2019-12-23 15:53:18 +01:00 committed by Miss Islington (bot)
parent e7b406f4e2
commit 9f9dac0a4e
3 changed files with 14 additions and 6 deletions

View File

@ -255,7 +255,7 @@ Running the ``check`` command will display some warnings:
running check
warning: check: missing required meta-data: version, url
warning: check: missing meta-data: either (author and author_email) or
(maintainer and maintainer_email) must be supplied
(maintainer and maintainer_email) should be supplied
If you use the reStructuredText syntax in the ``long_description`` field and

View File

@ -80,8 +80,11 @@ class check(Command):
def check_metadata(self):
"""Ensures that all required elements of meta-data are supplied.
name, version, URL, (author and author_email) or
(maintainer and maintainer_email)).
Required fields:
name, version, URL
Recommended fields:
(author and author_email) or (maintainer and maintainer_email))
Warns if any are missing.
"""
@ -97,15 +100,15 @@ class check(Command):
if metadata.author:
if not metadata.author_email:
self.warn("missing meta-data: if 'author' supplied, " +
"'author_email' must be supplied too")
"'author_email' should be supplied too")
elif metadata.maintainer:
if not metadata.maintainer_email:
self.warn("missing meta-data: if 'maintainer' supplied, " +
"'maintainer_email' must be supplied too")
"'maintainer_email' should be supplied too")
else:
self.warn("missing meta-data: either (author and author_email) " +
"or (maintainer and maintainer_email) " +
"must be supplied")
"should be supplied")
def check_restructuredtext(self):
"""Checks if the long string fields are reST-compliant."""

View File

@ -0,0 +1,5 @@
Adjusted the wording of the warning issued by distutils' ``check`` command when
the ``author`` and ``maintainer`` fields are supplied but no corresponding
e-mail field (``author_email`` or ``maintainer_email``) is found. The wording
now reflects the fact that these fields are suggested, but not required. Patch
by Juergen Gmach.