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