Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit be870dd

Browse files
committed
Added a section describing the new development process. Part of it
comes from two comp.lang.tcl postings of mine, with much rewriting and expansion of the material. Note that 2.0 will be released in the autumn, not the summer.
1 parent ef850de commit be870dd

1 file changed

Lines changed: 87 additions & 1 deletion

File tree

Doc/whatsnew/whatsnew20.tex

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ \section{Introduction}
1818
}
1919

2020
A new release of Python, version 2.0, will be released some time this
21-
summer. Beta versions are already available from
21+
autumn. Beta versions are already available from
2222
\url{http://www.pythonlabs.com/products/python2.0/}. This article
2323
covers the exciting new features in 2.0, highlights some other useful
2424
changes, and points out a few incompatible changes that may require
@@ -54,6 +54,92 @@ \section{What About Python 1.6?}
5454
described in this document are only in 2.0, because a lot of work was
5555
done between May and September.
5656

57+
% ======================================================================
58+
\section{New Development Process}
59+
60+
The most important change in Python 2.0 may not be to the code at all,
61+
but to how Python is developed.
62+
63+
In May of 2000, the Python CVS tree was moved to SourceForge.
64+
Previously, there were roughly 7 or so people who had write access to
65+
the CVS tree, and all patches had to be inspected and checked in by
66+
one of the people on this short list. Obviously, this wasn't very
67+
scalable. By moving the CVS tree to SourceForge, it became possible
68+
to grant write access to more people; as of September 2000 there were
69+
27 people able to check in changes, a fourfold increase. This makes
70+
possible large-scale changes that wouldn't be attempted if they'd have
71+
to be filtered through the small group of core developers. For
72+
example, one day Peter Schneider-Kamp took it into his head to drop
73+
K\&R C compatibility and convert the C source for Python to ANSI
74+
C. After getting approval on the python-dev mailing list, he launched
75+
into a flurry of checkins that lasted about a week, other developers
76+
joined in to help, and the job was done. If there were only 5 people
77+
with write access, probably that task would have been viewed as
78+
``nice, but not worth the time and effort needed'' and it wouldn't
79+
never have been done.
80+
81+
SourceForge also provides tools for tracking bug and patch
82+
submissions, and in combination with the public CVS tree, they've
83+
resulted in a remarkable increase in the speed of development.
84+
Patches now get submitted, commented on, revised by people other than
85+
the original submitter, and bounced back and forth between people
86+
until the patch is deemed worth checking in. This didn't come without
87+
a cost: developers now have more e-mail to deal with, more mailing
88+
lists to follow, and special tools had to be written for the new
89+
environment. For example, SourceForge sends default patch and bug
90+
notification e-mail messages that are completely unhelpful, so Ka-Ping
91+
Yee wrote an HTML screen-scraper that sends more useful messages.
92+
93+
The ease of adding code caused a few initial growing pains, such as
94+
code was checked in before it was ready or without getting clear
95+
agreement from the developer group. The approval process that has
96+
emerged is somewhat similar to that used by the Apache group.
97+
Developers can vote +1, +0, -0, or -1 on a patch; +1 and -1 denote
98+
acceptance or rejection, while +0 and -0 mean the developer is mostly
99+
indifferent to the change, though with a slight positive or negative
100+
slant. The most significant change from the Apache model is that
101+
Guido van Rossum, who has Benevolent Dictator For Life status, can
102+
ignore the votes of the other developers and approve or reject a
103+
change, effectively giving him a +Infinity / -Infinity vote.
104+
105+
Producing an actual patch is the last step in adding a new feature,
106+
and is usually easy compared to the earlier task of coming up with a
107+
good design. Discussions of new features can often explode into
108+
lengthy mailing list threads, making the discussion hard to follow,
109+
and no one can read every posting to python-dev. Therefore, a
110+
relatively formal process has been set up to write Python Enhancement
111+
Proposals (PEPs), modelled on the Internet RFC process. PEPs are
112+
draft documents that describe a proposed new feature, and are
113+
continually revised until the community reaches a consensus, either
114+
accepting or rejecting the proposal. Quoting from the introduction to
115+
PEP 1, ``PEP Purpose and Guidelines'':
116+
117+
\begin{quotation}
118+
PEP stands for Python Enhancement Proposal. A PEP is a design
119+
document providing information to the Python community, or
120+
describing a new feature for Python. The PEP should provide a
121+
concise technical specification of the feature and a rationale for
122+
the feature.
123+
124+
We intend PEPs to be the primary mechanisms for proposing new
125+
features, for collecting community input on an issue, and for
126+
documenting the design decisions that have gone into Python. The
127+
PEP author is responsible for building consensus within the
128+
community and documenting dissenting opinions.
129+
\end{quotation}
130+
131+
Read the rest of PEP 1 for the details of the PEP editorial process,
132+
style, and format. PEPs are kept in the Python CVS tree on
133+
SourceForge, though they're not part of the Python 2.0 distribution,
134+
and are also available in HTML form from
135+
\url{http://python.sourceforge.net/peps/}. As of September 2000,
136+
there are 25 PEPS, ranging from PEP 201, ``Lockstep Iteration'', to
137+
PEP 225, ``Elementwise/Objectwise Operators''.
138+
139+
To report bugs or submit patches for Python 2.0, use the bug tracking
140+
and patch manager tools available from the SourceForge project page,
141+
at \url{http://sourceforge.net/projects/python/}.
142+
57143
% ======================================================================
58144
\section{Unicode}
59145

0 commit comments

Comments
 (0)