[Python-Dev] __credits__ and __author__ variables
Ka-Ping Yee
ping@lfw.org
Thu, 1 Mar 2001 08:13:56 -0800 (PST)
On Thu, 1 Mar 2001, Guido van Rossum wrote:
> I'm slightly uncomfortable with the __credits__ variable inserted
> here. First of all, __credits__ doesn't really describe the
> information given.
I'll explain the motivation here. I was going to write something
about this when i got up in the morning, but you've noticed before
i got around to it (and i haven't gone to sleep yet).
- The __version__ variable really wasn't a useful place for
this information. The version of something really isn't
the same as the author or the date it was created; it should
be either a revision number from an RCS tag or a number
updated periodically by the maintainer. By separating out
other kinds of information, we allow __version__ to retain
its focused purpose.
- The __author__ tag is a pretty standard piece of metadata
among most kinds of documentation -- there are AUTHOR
sections in almost all man pages, and similar "creator"
information in just about every metadata standard for
documents or work products of any kind. Contact info and
copyright info can go here. This is important because it
identifies a responsible party -- someone to ask questions
of, and to send complaints, thanks, and patches to. Maybe
one day we can use it to help automate the process of
assigning patches and directing feedback.
- The __credits__ tag is a way of acknowledging others who
contributed to the product. It can be used to recount a
little history, but the real motivation for including it
is social engineering: i wanted to foster a stronger mutual
gratification culture around Python by giving people a place
to be generous with their acknowledgements. It's always
good to err on the side of generosity rather than stinginess
when giving praise. Open source is fueled in large part by
egoboo, and if we can let everyone participate, peer-to-peer
style rather than centralized, in patting others on the back,
then all the better. People do this in # comments anyway;
the only difference now is that their notes are visible to pydoc.
> Second, doesn't this info belong in the CVS history?
__credits__ isn't supposed to be a change log; it's a reward
mechanism. Or consider it ego-Napster, if you prefer.
Share the love. :)
> Anothor source of discomfort is that there's absolutely no standard
> for this kind of meta-data variables.
I think the behaviour of processing tools such as pydoc will
create a de-facto standard. I was careful to respect __version__
in the ways that it is currently used, and i am humbly offering
these others in the hope that you will see why they are worth
having, too.
-- ?!ng
"If cryptography is outlawed, only QJVKN YFDLA ZBYCG HFUEG UFRYG..."