[Python-Dev] __credits__ and __author__ variables

Guido van Rossum guido@digicool.com
Thu, 01 Mar 2001 11:30:53 -0500


> 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.

Ping replied:
> 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.

Sure.

>     - 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.

No problem here.

>     - 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.

OK.  Then I think you goofed up in the __credits__ you actually
checked in for tokenize.py:

    __credits__ = 'first version, 26 October 1997; patched, GvR 3/30/98'

I would have expected something like this:

    __credits__ = 'contributions: GvR, ESR, Tim Peters, Thomas Wouters, ' \
                  'Fred Drake, Skip Montanaro'

> > 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. :)

You west coasters. :-)

> > 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.

What does pydoc do with __credits__?

--Guido van Rossum (home page: http://www.python.org/~guido/)