More suggestions from Sean R.:

* Rewrite introductory paragraph
   * Make some fields optional and others multiple-user
   * Add header name to examples
This commit is contained in:
Andrew M. Kuchling 2001-03-17 16:30:28 +00:00
parent 1a0c679ea9
commit f5d13afcc2
1 changed files with 31 additions and 20 deletions

View File

@ -9,8 +9,9 @@ Post-History:
Introduction Introduction
This PEP specifies the names and semantics of the fields used to store This PEP describes a mechanism for adding metadata to Python
metadata about Python software packages. packages. It includes specifics of the field names, and their
semantics and usage.
Including Metadata in Packages Including Metadata in Packages
@ -22,10 +23,10 @@ Including Metadata in Packages
distribution (where the README, INSTALL, and other files usually distribution (where the README, INSTALL, and other files usually
go). go).
Developers may not provide their own "PKG-INFO" file. The "sdist" Developers may not provide their own PKG-INFO file. The "sdist"
command will, if it detects an existing "PKG-INFO" file, terminate command will, if it detects an existing PKG-INFO file, terminate
with an appropriate error message. This should prevent confusion with an appropriate error message. This should prevent confusion
caused by the "PKG-INFO" and "setup.py" files being out of sync. caused by the PKG-INFO and setup.py files being out of sync.
The PKG-INFO file format is a single set of RFC-822 headers The PKG-INFO file format is a single set of RFC-822 headers
parseable by the rfc822.py module. The field names listed in the parseable by the rfc822.py module. The field names listed in the
@ -39,18 +40,24 @@ Fields
This section specifies the names and semantics of each of the This section specifies the names and semantics of each of the
supported metadata fields. supported metadata fields.
Fields marked with "(Multiple use)" may be specified multiple
times in a single PKG-INFO file. Other fields may only occur
once in a PKG-INFO file. Fields marked with "(optional)" are
not required to appear in a valid PKG-INFO file, all other
fields must be present.
Metadata-Version Metadata-Version
Version of the file format; currently "1.0" is the only Version of the file format; currently "1.0" is the only
legal value here. legal value here.
Example: '1.0' Example: 'Metadata-Version: 1.0'
Name Name
The name of the package. The name of the package.
Example: 'BeagleVote' Example: 'Name: BeagleVote'
Version Version
@ -59,9 +66,9 @@ Fields
(StrictVersion or LooseVersion) in the distutils.version (StrictVersion or LooseVersion) in the distutils.version
module. module.
Example: '1.0a2' Example: 'Version: 1.0a2'
Platforms Platform (multiple use)
A (XXX whitespace? comma?)-separated list of platform A (XXX whitespace? comma?)-separated list of platform
specifications. Platform specifications are limited to the specifications. Platform specifications are limited to the
@ -75,7 +82,7 @@ Fields
A one-line summary of what the package does. A one-line summary of what the package does.
Example: "A module for collecting votes from beagles." Example: "Summary: A module for collecting votes from beagles."
Description (optional) Description (optional)
@ -85,22 +92,23 @@ Fields
people won't include their instruction manual as the people won't include their instruction manual as the
long-description.) long-description.)
Example: 'This module collects votes from beagles in order to Example: "Description: This module collects votes from beagles\n
determine their electoral wishes. Do NOT try to use this module in order to determine their electoral wishes.\n
with basset hounds; it makes them grumpy.' Do NOT try to use this module with basset hounds;
it makes them grumpy."
Keywords Keywords (optional)
A list of additional keywords to be used to assist searching A list of additional keywords to be used to assist searching
for this package in a larger catalog. for this package in a larger catalog.
Example: 'dog puppy voting election' Example: 'Keywords: dog puppy voting election'
Home-page (optional) Home-page (optional)
A string containing the URL for the package's home page. A string containing the URL for the package's home page.
Example: 'http://www.example.com/~cschultz/bvote/' Example: 'Home-page: http://www.example.com/~cschultz/bvote/'
Author (optional) Author (optional)
@ -108,7 +116,9 @@ Fields
information can also be added, separating each line with information can also be added, separating each line with
newlines. newlines.
Example: 'C. Schultz\nUniversal Features Syndicate\nLos Angeles, CA' Example: 'Author: C. Schultz
Universal Features Syndicate
Los Angeles, CA'
Author-email Author-email
@ -123,7 +133,7 @@ Fields
person. Author-related metadata fields are not covered by this person. Author-related metadata fields are not covered by this
PEP. PEP.
Example: '"C. Schultz" <cschultz@example.com>' Example: 'Author-email: "C. Schultz" <cschultz@example.com>'
License License
@ -159,11 +169,12 @@ Fields
Mozilla PL, "public domain", Python, Qt PL, Zope PL, Mozilla PL, "public domain", Python, Qt PL, Zope PL,
nosource, shareware nosource, shareware
Note that being redistributable does not mean a package Note that being redistributable does not mean a package
qualifies as free software, 'nosource' and 'shareware' being qualifies as free software, 'nosource' and 'shareware' being
examples. examples.
Example: 'License: MIT/X11'
Copyright Copyright