Time is short and I'm still looking for answers to some questions about cPython, so that it makes a good showing in the Forrester survey. 1) How is the project governed? How does the community make decisions on what goes into a release? You know, I've been a member of the Python community for many years -- I know about PEPs, Guido as BDFL, and +1/-1. But I've never figured out exactly how -final- decisions are made on what goes into a release. I've never needed to, until now. Can someone explain in one paragraph? 2) Does the language have a formal defined release plan? I know Zope 3's release plan, every six months, but not that of Python. Is there a requirement to push a release out the door every N months, as some projects do, or is each release separately negotiated with developers around a planned set of features? 3) Some crude idea of how many new major and minor features were added in the last release? Yes, I know this is difficult -- the idea it so get some measure of the evolution/stability of cPython re features. Jython and IronPython are probably changing rapidly -- cPython, not such much. 4) How many committers to the cPython core are there? I don't have the necessary access to the pydotorg infrastructure to answer this -- can someone who does help me out here? Thanks for any one-line answers you can dash off to me today. Jeff Rush Python Advocacy Coordinator
On Fri, May 18, 2007 at 10:23:46AM -0500, Jeff Rush wrote:
Time is short and I'm still looking for answers to some questions about cPython, so that it makes a good showing in the Forrester survey.
[snip]
4) How many committers to the cPython core are there?
I don't have the necessary access to the pydotorg infrastructure to answer this -- can someone who does help me out here?
http://www.python.org/dev/committers If the last modified date can be trusted there are currently 77 committers.
On 5/18/07, Jeff Rush <jeff@taupro.com> wrote:
Time is short and I'm still looking for answers to some questions about cPython, so that it makes a good showing in the Forrester survey.
1) How is the project governed? How does the community make decisions on what goes into a release?
You know, I've been a member of the Python community for many years -- I know about PEPs, Guido as BDFL, and +1/-1. But I've never figured out exactly how -final- decisions are made on what goes into a release. I've never needed to, until now. Can someone explain in one paragraph?
Concensus is reached on python-dev or Guido says so. =) Honestly someone proposes an idea to python-dev. It gets discussed. Either a concensus is reached and the person goes ahead and moves forward with it, or Guido explicitly says OK. Occasionally there is a minor revolt and Guido backs down, but usually that leads to the wrong decision winning out. =) How much extra work is needed to present to python-dev depends on the level of the change. PEP is needed for language changes. New additions to the stdlib require community concensus that it is best-of-breed. Small additions usually should get python-dev approval. Patches for fixes just happen. More details are in http://www.python.org/dev/intro . 2) Does the language have a formal defined release plan?
I know Zope 3's release plan, every six months, but not that of Python. Is there a requirement to push a release out the door every N months, as some projects do, or is each release separately negotiated with developers around a planned set of features?
Latter. We aim for every 12 - 18 months, but it depends on if there are any specific features we want in a release. 3) Some crude idea of how many new major and minor features were
added in the last release? Yes, I know this is difficult -- the idea it so get some measure of the evolution/stability of cPython re features. Jython and IronPython are probably changing rapidly -- cPython, not such much.
Going by http://www.python.org/download/releases/2.5/highlights/ , roughly 8 or so major features. Don't know what to say about minor since I don't know how you want to count stdlib additions. 4) How many committers to the cPython core are there?
I don't have the necessary access to the pydotorg infrastructure to answer this -- can someone who does help me out here?
According to http://www.ohloh.net/projects/26/analyses/latest/contributors , 92 people over the life of the project, but 51 over the last year. -Brett
Brett Cannon schrieb:
4) How many committers to the cPython core are there?
I don't have the necessary access to the pydotorg infrastructure to answer this -- can someone who does help me out here?
According to http://www.ohloh.net/projects/26/analyses/latest/contributors , 92 people over the life of the project, but 51 over the last year.
Heh. I was about to point that out too, but somehow 51 seemed a very large number to me... Georg -- Thus spake the Lord: Thou shalt indent with four spaces. No more, no less. Four shall be the number of spaces thou shalt indent, and the number of thy indenting shall be four. Eight shalt thou not indent, nor either indent thou two, excepting that thou then proceed to four. Tabs are right out.
Jeff> 1) How is the project governed? How does the community make Jeff> decisions on what goes into a release? Jeff> You know, I've been a member of the Python community for many Jeff> years -- I know about PEPs, Guido as BDFL, and +1/-1. But I've Jeff> never figured out exactly how -final- decisions are made on Jeff> what goes into a release. I've never needed to, until now. Jeff> Can someone explain in one paragraph? Consensus (most of the time) and GvR pronouncements for significant changes. There are situations where Guido has simply pronounced when the community seemed unable to settle on one solution. Decorators come to mind. Jeff> 2) Does the language have a formal defined release plan? Jeff> I know Zope 3's release plan, every six months, but not that of Jeff> Python. Is there a requirement to push a release out the door Jeff> every N months, as some projects do, or is each release Jeff> separately negotiated with developers around a planned set Jeff> of features? PEP 6? PEP 101? PEP 102? There is no hard-and-fast time schedule. I believe minor releases leave the station approximately every 18-24 months, micro releases roughly every six months. Jeff> 3) Some crude idea of how many new major and minor features were Jeff> added in the last release? Yes, I know this is difficult -- the Jeff> idea it so get some measure of the evolution/stability of cPython Jeff> re features. Jython and IronPython are probably changing rapidly Jeff> -- cPython, not such much. Haven't the slightest idea. Check Andrew's What's New document. Jeff> 4) How many committers to the cPython core are there? 71, according to the Assignee menu in SourceForge. I suspect at most a quarter of them are active. Skip
On Saturday 19 May 2007, skip@pobox.com wrote:
Jeff> 1) How is the project governed? How does the community make Jeff> decisions on what goes into a release?
Consensus (most of the time) and GvR pronouncements for significant changes. There are situations where Guido has simply pronounced when the community seemed unable to settle on one solution. Decorators come to mind.
Plus of course there's the minor detail of features needing to be implemented. If no-one steps up to complete something, it can just get deferred. See PEP 356's list of deferred features.
Jeff> 2) Does the language have a formal defined release plan?
Jeff> I know Zope 3's release plan, every six months, but not that of Jeff> Python. Is there a requirement to push a release out the door Jeff> every N months, as some projects do, or is each release Jeff> separately negotiated with developers around a planned set Jeff> of features?
PEP 6? PEP 101? PEP 102?
There is no hard-and-fast time schedule. I believe minor releases leave the station approximately every 18-24 months, micro releases roughly every six months.
The goal is to have a major release (I consider 2.5, 2.6 &c to be "major", and 2.5.1, 2.5.2 &c "minor" - this is how it's always been, afaik) "when they're done". Typically this is around 18-24 months. There's not (yet?) a formal release plan for the minor/bugfix releases, but they've been every 6 months since late 2003. Obviously, if a major bug is found then a release happens sooner.
Jeff> 3) Some crude idea of how many new major and minor features were Jeff> added in the last release? Yes, I know this is difficult -- the Jeff> idea it so get some measure of the evolution/stability of cPython Jeff> re features. Jython and IronPython are probably changing rapidly Jeff> -- cPython, not such much.
We don't break down "major" or "minor" features, but according to the What's New In Python 2.5 doc:
A search through the SVN change logs finds there were 353 patches applied and 458 bugs fixed between Python 2.4 and 2.5. (Both figures are likely to be underestimates.)
The distinction between major and minor feature is pretty arbitrary, obviously. -- Anthony Baxter <anthony@interlink.com.au> It's never too late to have a happy childhood.
Jeff Rush wrote:
Time is short and I'm still looking for answers to some questions about cPython, so that it makes a good showing in the Forrester survey.
1) How is the project governed? How does the community make decisions on what goes into a release?
You know, I've been a member of the Python community for many years -- I know about PEPs, Guido as BDFL, and +1/-1. But I've never figured out exactly how -final- decisions are made on what goes into a release. I've never needed to, until now. Can someone explain in one paragraph?
As others have already pointed out, the ultimate authority rests with GvR. For any given release, Guido delegates a fair bit of authority to the release manager, and will often defer to the release manager's judgment (especially for maintenance releases). The current status of a release (including naming names for the release team) is tracked using an Informational track PEP. The initial Python 2.5 release was tracked in PEP 356. The Python 2.6 release is being tracked in PEP 361. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org
participants (7)
-
Anthony Baxter
-
Brett Cannon
-
Georg Brandl
-
Jack Diederich
-
Jeff Rush
-
Nick Coghlan
-
skip@pobox.com