[Distutils] Metadata fields
Andrew Kuchling
akuchlin@mems-exchange.org
Sat Mar 10 15:58:00 2001
Following the IPC9 discussion, let's continue the thread on metadata.
Here's a list I posted to the Catalog-SIG back in November.
Information about a package
===========================
Name
Version
Supported Platforms
Description
Keywords
Homepage URL
Author IDs
License
Download link
Date of release
Leaving out for now: dependency information, except perhaps as just a
text field
Information about an author
===========================
Name
Home page
GnuPG/PGP key (both the actual key, and just the ID)
E-mail address (used as ID?)
E-mail address public: y/n
Information about a document
============================
Name
Author
Description
URL of HTML version
URL of printable version
URL and format of downloadable version
(Any of these URLs can be omitted if not applicable.)
The "Information about a document" section is only relevant to a
catalog that includes non-software things such as documentation, and
can probably be ignored for now. The "Information about an author"
section makes sense for a CPAN-like system where authors are
registered as independent entities, but not for one where packages are
the only entities. On the other hand, maybe registering developers is
worth preserving; otherwise you'd have to put your URL and GPG key in
every single package you maintain, which is kind of annoying.
I plan to write this up as a PEP, and explain the contents and
semantics of each field in detail.
Comparison with OSD
===================
Additional fields in OSD:
LANGUAGE: for the implementation language, I assume, and not the human
language it's documented in?
OS, OSVERSION: operating system required to run this package.
PYTHONCORE: Version of Python required to run this package.
PROCESSOR: CPU required to run this package.
CODEBASE, INSTALL, UNINSTALL: references to downloadable code, to an
install script, to an uninstall script.
Given the existence of the Distutils, the last 3 fields all collapse
down into the code's location. PROCESSOR seems only marginally useful
(can you name a Python extension that runs on only one processor?),
but leaving it in is no big deal.
OSD does not have fields for keywords or for a release date.
Looking at the PAD format, there's little new there that's applicable;
about the only thing is a field to indicate if a release is a minor or
major update (perhaps there's a 'Security Bug' value, too).
--amk