Developer Log
=============

This file is a running log of developers given permissions on SourceForge.

The purpose is to provide some institutional memory of who was given access
and why.

The first entry starts in April 2005.  In keeping with the style of
Misc/NEWS, newer entries should be added to the top.  Any markup should
be in the form of ReST.  Entries should include the initials of the
project admin who made the change or granted access.  Feel free to revise
the format to accommodate documentation needs as they arise.

Note, when giving new commit permissions, be sure to get a contributor
agreement from the committer.  See http://www.python.org/psf/contrib/
for details.  When the agreement is signed, please note it in this log.

This file is encoded in UTF-8.  If the usual form for a name is not in
a Latin or extended Latin alphabet, make sure to include an ASCII
transliteration too.

Permissions History
-------------------

- Tal Einat was given commit access on Oct 4 2010 by MvL,
  for improving IDLE.

- Łukasz Langa was given commit access on Sep 08 2010 by GFB,
  at suggestion of Antoine Pitrou, for general bug fixing.

- Daniel Stutzbach was given commit access on Aug 22 2010 by MvL,
  for general bug fixing.

- Ask Solem was given commit access on Aug 17 2010 by MvL,
  on recommendation by Jesse Noller, for work on the multiprocessing
  library.

- George Boutsioukis was given commit access on Aug 10 2010
  by MvL, for work on 2to3.

- Éric Araujo was given commit access on Aug 10 2010 by BAC,
  at suggestion of Tarek Ziadé.

- Terry Reedy was given commit access on Aug 04 2010 by MvL,
  at suggestion of Nick Coghlan.

- Brian Quinlan was given commit access on Jul 26 2010 by GFB,
  for work related to PEP 3148.

- Reid Kleckner was given commit access on Jul 11 2010 by GFB,
  for work on the py3k-jit branch, at suggestion of the Unladen
  Swallow team.

- Alexander Belopolsky was given commit access on May 25 2010
  by MvL at suggestion of Mark Dickinson.

- Tim Golden was given commit access on April 21 2010 by MvL,
  at suggestion of Michael Foord.

- Giampaolo Rodolà was given commit access on April 17 2010 by
  MvL, at suggestion of R. David Murray.

- Jean-Paul Calderone was given commit access on April 6 2010 by
  GFB, at suggestion of Michael Foord and others.

- Brian Curtin was given commit access on March 24 2010 by MvL.

- Florent Xicluna was given commit access on February 25 2010 by
  MvL, based on Antoine Pitrou's recommendation.

- Dino Viehland was given SVN access on February 23 2010 by Brett
  Cannon, for backporting tests from IronPython.

- Larry Hastings was given SVN access on February 22 2010 by
  Andrew Kuchling, based on Brett Cannon's recommendation.

- Victor Stinner was given SVN access on January 30 2010 by MvL,
  at recommendation by Mark Dickinson and Amaury Forgeot d'Arc.

- Stefan Krah was given SVN access on January 5 2010 by GFB, at
  suggestion of Mark Dickinson, for work on the decimal module.

- Doug Hellmann was given SVN access on September 19 2009 by GFB, at
  suggestion of Jesse Noller, for documentation work.

- Ezio Melotti was given SVN access on June 7 2009 by GFB, for work on and
  fixes to the documentation.

- Paul Kippes was given commit privileges at PyCon 2009 by BAC to work on 3to2.

- Ron DuPlain was given commit privileges at PyCon 2009 by BAC to work on 3to2.

- Several developers of alternative Python implementations where
  given access for test suite and library adaptions by MvL:
  Allison Randal (Parrot), Michael Foord (IronPython),
  Jim Baker, Philip Jenvey, and Frank Wierzbicki (all Jython).

- R. David Murray was given SVN access on March 30 2009 by MvL, after
  recommendation by BAC.

- Chris Withers was given SVN access on March 8 2009 by MvL,
  after recommendation by GvR.

- Tarek Ziadé was given SVN access on December 21 2008 by NCN,
  for maintenance of distutils.

- Hirokazu Yamamoto was given SVN access on August 12 2008 by MvL,
  for contributions to the Windows build.

- Antoine Pitrou was given SVN access on July 16 2008, by recommendation
  from GvR, for general contributions to Python.

- Jesse Noller was given SVN access on 16 June 2008 by GFB,
  for work on the multiprocessing module.

- Gregor Lingl was given SVN access on 10 June 2008 by MvL,
  for work on the turtle module.

- Robert Schuppenies was given SVN access on 21 May 2008 by MvL,
  for GSoC contributions.

- Rodrigo Bernardo Pimentel was given SVN access on 29 April 2008 by MvL,
  for GSoC contributions.

- Heiko Weinen was given SVN access on 29 April 2008 by MvL,
  for GSoC contributions.

- Jesus Cea was given SVN access on 24 April 2008 by MvL,
  for maintenance of bsddb.

- Guilherme Polo was given SVN access on 24 April 2008 by MvL,
  for GSoC contributions.

- Thomas Lee was given SVN access on 21 April 2008 by NCN,
  for work on branches (ast/optimizer related).

- Jeroen Ruigrok van der Werven was given SVN access on 12 April 2008
  by GFB, for documentation work.

- Josiah Carlson was given SVN access on 26 March 2008 by GFB,
  for work on asyncore/asynchat.

- Benjamin Peterson was given SVN access on 25 March 2008 by GFB,
  for bug triage work.

- Jerry Seutter was given SVN access on 20 March 2008 by BAC, for
  general contributions to Python.

- Jeff Rush was given SVN access on 18 March 2008 by AMK, for Distutils work.

- David Wolever was given SVN access on 17 March 2008 by MvL,
  for 2to3 work.

- Trent Nelson was given SVN access on 17 March 2008 by MvL,
  for general contributions to Python.

- Mark Dickinson was given SVN access on 6 January 2008 by Facundo
  Batista for his work on mathemathics and number related issues.

- Amaury Forgeot d'Arc was given SVN access on 9 November 2007 by MvL,
  for general contributions to Python.

- Christian Heimes was given SVN access on 31 October 2007 by MvL,
  for general contributions to Python.

- Chris Monson was given SVN access on 20 October 2007 by NCN,
  for his work on editing PEPs.

- Bill Janssen was given SVN access on 28 August 2007 by NCN,
  for his work on the SSL module and other things related to (SSL) sockets.

- Jeffrey Yasskin was given SVN access on 9 August 2007 by NCN,
  for his work on PEPs and other general patches.

- Mark Summerfield was given SVN access on 1 August 2007 by GFB,
  for work on documentation.

- Armin Ronacher was given SVN access on 23 July 2007 by GFB,
  for work on the documentation toolset.  He now maintains the
  ast module.

- Senthil Kumaran was given SVN access on 16 June 2007 by MvL,
  for his Summer-of-Code project, mentored by Skip Montanaro.

- Alexandre Vassalotti was given SVN access on 21 May 2007 by MvL,
  for his Summer-of-Code project, mentored by Brett Cannon.

- Travis Oliphant was given SVN access on 17 Apr 2007 by MvL,
  for implementing the extended buffer protocol.

- Ziga Seilnacht was given SVN access on 09 Mar 2007 by MvL,
  for general maintenance.

- Pete Shinners was given SVN access on 04 Mar 2007 by NCN,
  for PEP 3101 work in the sandbox.

- Pat Maupin and Eric V. Smith were given SVN access on 28 Feb 2007 by NCN,
  for PEP 3101 work in the sandbox.

- Steven Bethard (SF name "bediviere") added to the SourceForge Python
  project 26 Feb 2007, by NCN, as a tracker tech.

- Josiah Carlson (SF name "josiahcarlson") added to the SourceForge Python
  project 06 Jan 2007, by NCN, as a tracker tech.  He will maintain asyncore.

- Collin Winter was given SVN access on 05 Jan 2007 by NCN, for PEP
  update access.

- Lars Gustaebel was given SVN access on 20 Dec 2006 by NCN, for tarfile.py
  related work.

- 2006 Summer of Code entries: SoC developers are expected to work
  primarily in nondist/sandbox or on a branch of their own, and will
  have their work reviewed before changes are accepted into the trunk.

  - Matt Fleming was added on 25 May 2006 by AMK; he'll be working on
    enhancing the Python debugger.

  - Jackilyn Hoxworth was added on 25 May 2006 by AMK; she'll be adding logging
    to the standard library.

  - Mateusz Rukowicz was added on 30 May 2006 by AMK; he'll be
    translating the decimal module into C.

- SVN access granted to the "Need for Speed" Iceland sprint attendees,
  between May 17 and 21, 2006, by Tim Peters.  All work is to be done
  in new sandbox projects or on new branches, with merging to the
  trunk as approved:

  Andrew Dalke
  Christian Tismer
  Jack Diederich
  John Benediktsson
  Kristján V. Jónsson
  Martin Blais
  Richard Emslie
  Richard Jones
  Runar Petursson
  Steve Holden
  Richard M. Tew

- Steven Bethard was given SVN access on 27 Apr 2006 by DJG, for PEP
  update access.

- Talin was given SVN access on 27 Apr 2006 by DJG, for PEP update
  access.

- George Yoshida (SF name "quiver") added to the SourceForge Python
  project 14 Apr 2006, by Tim Peters, as a tracker admin.  See
  contemporaneous python-checkins thread with the unlikely Subject:

      r45329 - python/trunk/Doc/whatsnew/whatsnew25.tex

- Ronald Oussoren was given SVN access on 3 Mar 2006 by NCN, for Mac
  related work.

- Bob Ippolito was given SVN access on 2 Mar 2006 by NCN, for Mac
  related work.

- Nick Coghlan requested CVS access so he could update his PEP directly.
  Granted by GvR on 16 Oct 2005.

- Added two new developers for the Summer of Code project. 8 July 2005
  by RDH.  Andrew Kuchling will be mentoring Gregory K Johnson for a
  project to enhance mailbox.  Brett Cannon requested access for Flovis
  Bruynooghe (sirolf) to work on pstats, profile, and hotshot.  Both users
  are expected to work primarily in nondist/sandbox and have their work
  reviewed before making updates to active code.

- Georg Brandl was given SF tracker permissions on 28 May 2005
  by RDH.  Since the beginning of 2005, he has been active in discussions
  on python-dev and has submitted a dozen patch reviews.  The permissions
  add the ability to change tracker status and to attach patches.  On
  3 June 2005, this was expanded by RDH to include checkin permissions.

- Terry Reedy was given SF tracker permissions on 7 Apr 2005 by RDH.

- Nick Coghlan was given SF tracker permissions on 5 Apr 2005 by RDH.
  For several months, he has been active in reviewing and contributing
  patches.  The added permissions give him greater flexibility in
  working with the tracker.

- Eric Price was made a developer on 2 May 2003 by TGP.  This was
  specifically to work on the new ``decimal`` package, which lived in
  ``nondist/sandbox/decimal/`` at the time.

- Eric S. Raymond was made a developer on 2 Jul 2000 by TGP, for general
  library work.  His request is archived here:

      http://mail.python.org/pipermail/python-dev/2000-July/005314.html


Permissions Dropped on Request
------------------------------

- Roy Smith, Matt Fleming and Richard Emslie sent drop requests.
  4 Aug 2008 GFB

- Per note from Andrew Kuchling, the permissions for Gregory K Johnson
  and the Summer Of Code project are no longer needed.  4 Aug 2008 GFB

- Per note from Andrew Kuchling, the permissions for Gregory K Johnson
  and the Summer Of Code project are no longer needed.  AMK will make
  any future checkins directly.  16 Oct 2005 RDH

- Johannes Gijsbers sent a drop request.  27 July 2005 RDH

- Flovis Bruynooghe sent a drop request.  14 July 2005 RDH

- Paul Prescod sent a drop request.  30 Apr 2005 RDH

- Finn Bock sent a drop request.  13 Apr 2005 RDH

- Eric Price sent a drop request.  10 Apr 2005 RDH

- Irmen de Jong requested dropping CVS access while keeping tracker
  access.  10 Apr 2005 RDH

- Moshe Zadka and Ken Manheimer sent drop requests.  8 Apr 2005 by RDH

- Steve Holden, Gerhard Haring, and David Cole sent email stating that
  they no longer use their access.   7 Apr 2005 RDH


Permissions Dropped after Loss of Contact
-----------------------------------------

- Several unsuccessful efforts were made to contact Charles G Waldman.
  Removed on 8 Apr 2005 by RDH.


Initials of Project Admins
--------------------------

TGP:  Tim Peters
GFB:  Georg Brandl
BAC:  Brett Cannon
NCN:  Neal Norwitz
DJG:  David Goodger
MvL:  Martin v. Loewis
GvR:  Guido van Rossum
RDH:  Raymond Hettinger
