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

Skip to content

Commit cae235a

Browse files
Carreauberkerpeksag
authored andcommitted
Convert PEP 6 to reST format (#22)
1 parent cce5754 commit cae235a

File tree

1 file changed

+150
-138
lines changed

1 file changed

+150
-138
lines changed

pep-0006.txt

Lines changed: 150 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -5,217 +5,229 @@ Last-Modified: $Date$
55
Author: [email protected] (Aahz), [email protected] (Anthony Baxter)
66
Status: Active
77
Type: Process
8+
Content-Type: text/x-rst
89
Created: 15-Mar-2001
910
Post-History: 15-Mar-2001 18-Apr-2001 19-Aug-2004
1011

1112

13+
1214
Abstract
15+
========
1316

14-
Python has historically had only a single fork of development,
15-
with releases having the combined purpose of adding new features
16-
and delivering bug fixes (these kinds of releases will be referred
17-
to as "major releases"). This PEP describes how to fork off
18-
maintenance, or bug fix, releases of old versions for the primary
19-
purpose of fixing bugs.
17+
Python has historically had only a single fork of development, with
18+
releases having the combined purpose of adding new features and
19+
delivering bug fixes (these kinds of releases will be referred to as
20+
"major releases"). This PEP describes how to fork off maintenance, or
21+
bug fix, releases of old versions for the primary purpose of fixing
22+
bugs.
2023

21-
This PEP is not, repeat NOT, a guarantee of the existence of bug fix
22-
releases; it only specifies a procedure to be followed if bug fix
23-
releases are desired by enough of the Python community willing to
24-
do the work.
24+
This PEP is not, repeat NOT, a guarantee of the existence of bug fix
25+
releases; it only specifies a procedure to be followed if bug fix
26+
releases are desired by enough of the Python community willing to do
27+
the work.
2528

2629

2730
Motivation
31+
==========
2832

29-
With the move to SourceForge, Python development has accelerated.
30-
There is a sentiment among part of the community that there was
31-
too much acceleration, and many people are uncomfortable with
32-
upgrading to new versions to get bug fixes when so many features
33-
have been added, sometimes late in the development cycle.
33+
With the move to SourceForge, Python development has accelerated.
34+
There is a sentiment among part of the community that there was too
35+
much acceleration, and many people are uncomfortable with upgrading to
36+
new versions to get bug fixes when so many features have been added,
37+
sometimes late in the development cycle.
3438

35-
One solution for this issue is to maintain the previous major
36-
release, providing bug fixes until the next major release. This
37-
should make Python more attractive for enterprise development,
38-
where Python may need to be installed on hundreds or thousands of
39-
machines.
39+
One solution for this issue is to maintain the previous major release,
40+
providing bug fixes until the next major release. This should make
41+
Python more attractive for enterprise development, where Python may
42+
need to be installed on hundreds or thousands of machines.
4043

4144

4245
Prohibitions
46+
============
4347

44-
Bug fix releases are required to adhere to the following restrictions:
48+
Bug fix releases are required to adhere to the following restrictions:
4549

46-
1. There must be zero syntax changes. All .pyc and .pyo files
47-
must work (no regeneration needed) with all bugfix releases
48-
forked off from a major release.
50+
1. There must be zero syntax changes. All `.pyc` and `.pyo` files must
51+
work (no regeneration needed) with all bugfix releases forked off
52+
from a major release.
4953

50-
2. There must be zero pickle changes.
54+
2. There must be zero pickle changes.
5155

52-
3. There must be no incompatible C API changes. All extensions
53-
must continue to work without recompiling in all bugfix releases
54-
in the same fork as a major release.
56+
3. There must be no incompatible C API changes. All extensions must
57+
continue to work without recompiling in all bugfix releases in the
58+
same fork as a major release.
5559

56-
Breaking any of these prohibitions requires a BDFL proclamation
57-
(and a prominent warning in the release notes).
60+
Breaking any of these prohibitions requires a BDFL proclamation (and a
61+
prominent warning in the release notes).
5862

5963

6064
Not-Quite-Prohibitions
65+
======================
6166

62-
Where possible, bug fix releases should also:
67+
Where possible, bug fix releases should also:
6368

64-
1. Have no new features. The purpose of a bug fix release is to
65-
fix bugs, not add the latest and greatest whizzo feature from
66-
the HEAD of the CVS root.
69+
1. Have no new features. The purpose of a bug fix release is to fix
70+
bugs, not add the latest and greatest whizzo feature from the HEAD
71+
of the CVS root.
6772

68-
2. Be a painless upgrade. Users should feel confident that an
69-
upgrade from 2.x.y to 2.x.(y+1) will not break their running
70-
systems. This means that, unless it is necessary to fix a bug,
71-
the standard library should not change behavior, or worse yet,
72-
APIs.
73+
2. Be a painless upgrade. Users should feel confident that an upgrade
74+
from 2.x.y to 2.x.(y+1) will not break their running systems. This
75+
means that, unless it is necessary to fix a bug, the standard
76+
library should not change behavior, or worse yet, APIs.
7377

7478

7579
Applicability of Prohibitions
80+
=============================
7681

77-
The above prohibitions and not-quite-prohibitions apply both
78-
for a final release to a bugfix release (for instance, 2.4 to
79-
2.4.1) and for one bugfix release to the next in a series
80-
(for instance 2.4.1 to 2.4.2).
82+
The above prohibitions and not-quite-prohibitions apply both for a
83+
final release to a bugfix release (for instance, 2.4 to 2.4.1) and for
84+
one bugfix release to the next in a series (for instance 2.4.1 to
85+
2.4.2).
8186

82-
Following the prohibitions listed in this PEP should help keep
83-
the community happy that a bug fix release is a painless and safe
84-
upgrade.
87+
Following the prohibitions listed in this PEP should help keep the
88+
community happy that a bug fix release is a painless and safe upgrade.
8589

8690

8791
Helping the Bug Fix Releases Happen
92+
===================================
8893

89-
Here's a few pointers on helping the bug fix release process along.
94+
Here's a few pointers on helping the bug fix release process along.
9095

91-
1. Backport bug fixes. If you fix a bug, and it seems appropriate,
92-
port it to the CVS branch for the current bug fix release. If
93-
you're unwilling or unable to backport it yourself, make a note
94-
in the commit message, with words like 'Bugfix candidate' or
95-
'Backport candidate'.
96+
1. Backport bug fixes. If you fix a bug, and it seems appropriate,
97+
port it to the CVS branch for the current bug fix release. If
98+
you're unwilling or unable to backport it yourself, make a note in
99+
the commit message, with words like 'Bugfix candidate' or
100+
'Backport candidate'.
96101

97-
2. If you're not sure, ask. Ask the person managing the current bug
98-
fix releases if they think a particular fix is appropriate.
102+
2. If you're not sure, ask. Ask the person managing the current bug
103+
fix releases if they think a particular fix is appropriate.
99104

100-
3. If there's a particular bug you'd particularly like fixed in a
101-
bug fix release, jump up and down and try to get it done. Do not
102-
wait until 48 hours before a bug fix release is due, and then
103-
start asking for bug fixes to be included.
105+
3. If there's a particular bug you'd particularly like fixed in a bug
106+
fix release, jump up and down and try to get it done. Do not wait
107+
until 48 hours before a bug fix release is due, and then start
108+
asking for bug fixes to be included.
104109

105110

106111
Version Numbers
112+
===============
107113

108-
Starting with Python 2.0, all major releases are required to have
109-
a version number of the form X.Y; bugfix releases will always be of
110-
the form X.Y.Z.
114+
Starting with Python 2.0, all major releases are required to have a
115+
version number of the form X.Y; bugfix releases will always be of the
116+
form X.Y.Z.
111117

112-
The current major release under development is referred to as
113-
release N; the just-released major version is referred to as N-1.
118+
The current major release under development is referred to as release
119+
N; the just-released major version is referred to as N-1.
114120

115-
In CVS, the bug fix releases happen on a branch. For release 2.x,
116-
the branch is named 'release2x-maint'. For example, the branch for
117-
the 2.3 maintenance releases is release23-maint
121+
In CVS, the bug fix releases happen on a branch. For release 2.x, the
122+
branch is named 'release2x-maint'. For example, the branch for the 2.3
123+
maintenance releases is release23-maint
118124

119125

120126
Procedure
121-
122-
The process for managing bugfix releases is modeled in part on the
123-
Tcl system [1].
124-
125-
The Patch Czar is the counterpart to the BDFL for bugfix releases.
126-
However, the BDFL and designated appointees retain veto power over
127-
individual patches. A Patch Czar might only be looking after a single
128-
branch of development - it's quite possible that a different person
129-
might be maintaining the 2.3.x and the 2.4.x releases.
130-
131-
As individual patches get contributed to the current trunk of CVS,
132-
each patch committer is requested to consider whether the patch is
133-
a bug fix suitable for inclusion in a bugfix release. If the patch is
134-
considered suitable, the committer can either commit the release to
135-
the maintenance branch, or else mark the patch in the commit message.
136-
137-
In addition, anyone from the Python community is free to suggest
138-
patches for inclusion. Patches may be submitted specifically for
139-
bugfix releases; they should follow the guidelines in PEP 3 [2].
140-
In general, though, it's probably better that a bug in a specific
141-
release also be fixed on the HEAD as well as the branch.
142-
143-
The Patch Czar decides when there are a sufficient number of patches
144-
to warrant a release. The release gets packaged up, including a
145-
Windows installer, and made public. If any new bugs are found, they
146-
must be fixed immediately and a new bugfix release publicized (with
147-
an incremented version number). For the 2.3.x cycle, the Patch Czar
148-
(Anthony) has been trying for a release approximately every six
149-
months, but this should not be considered binding in any way on
150-
any future releases.
151-
152-
Bug fix releases are expected to occur at an interval of roughly
153-
six months. This is only a guideline, however - obviously, if a
154-
major bug is found, a bugfix release may be appropriate sooner. In
155-
general, only the N-1 release will be under active maintenance at
156-
any time. That is, during Python 2.4's development, Python 2.3 gets
157-
bugfix releases. If, however, someone qualified wishes to continue
158-
the work to maintain an older release, they should be encouraged.
127+
=========
128+
129+
The process for managing bugfix releases is modeled in part on the Tcl
130+
system [1]_.
131+
132+
The Patch Czar is the counterpart to the BDFL for bugfix releases.
133+
However, the BDFL and designated appointees retain veto power over
134+
individual patches. A Patch Czar might only be looking after a single
135+
branch of development - it's quite possible that a different person
136+
might be maintaining the 2.3.x and the 2.4.x releases.
137+
138+
As individual patches get contributed to the current trunk of CVS,
139+
each patch committer is requested to consider whether the patch is a
140+
bug fix suitable for inclusion in a bugfix release. If the patch is
141+
considered suitable, the committer can either commit the release to
142+
the maintenance branch, or else mark the patch in the commit message.
143+
144+
In addition, anyone from the Python community is free to suggest
145+
patches for inclusion. Patches may be submitted specifically for
146+
bugfix releases; they should follow the guidelines in PEP 3 [2]_. In
147+
general, though, it's probably better that a bug in a specific release
148+
also be fixed on the HEAD as well as the branch.
149+
150+
The Patch Czar decides when there are a sufficient number of patches
151+
to warrant a release. The release gets packaged up, including a
152+
Windows installer, and made public. If any new bugs are found, they
153+
must be fixed immediately and a new bugfix release publicized (with an
154+
incremented version number). For the 2.3.x cycle, the Patch Czar
155+
(Anthony) has been trying for a release approximately every six
156+
months, but this should not be considered binding in any way on any
157+
future releases.
158+
159+
Bug fix releases are expected to occur at an interval of roughly six
160+
months. This is only a guideline, however - obviously, if a major bug
161+
is found, a bugfix release may be appropriate sooner. In general, only
162+
the N-1 release will be under active maintenance at any time. That is,
163+
during Python 2.4's development, Python 2.3 gets bugfix releases. If,
164+
however, someone qualified wishes to continue the work to maintain an
165+
older release, they should be encouraged.
159166

160167

161168
Patch Czar History
169+
==================
162170

163-
Anthony Baxter is the Patch Czar for 2.3.1 through 2.3.4.
171+
Anthony Baxter is the Patch Czar for 2.3.1 through 2.3.4.
164172

165-
Barry Warsaw is the Patch Czar for 2.2.3.
173+
Barry Warsaw is the Patch Czar for 2.2.3.
166174

167-
Guido van Rossum is the Patch Czar for 2.2.2.
175+
Guido van Rossum is the Patch Czar for 2.2.2.
168176

169-
Michael Hudson is the Patch Czar for 2.2.1.
177+
Michael Hudson is the Patch Czar for 2.2.1.
170178

171-
Anthony Baxter is the Patch Czar for 2.1.2 and 2.1.3.
179+
Anthony Baxter is the Patch Czar for 2.1.2 and 2.1.3.
172180

173-
Thomas Wouters is the Patch Czar for 2.1.1.
181+
Thomas Wouters is the Patch Czar for 2.1.1.
174182

175-
Moshe Zadka is the Patch Czar for 2.0.1.
183+
Moshe Zadka is the Patch Czar for 2.0.1.
176184

177185

178186
History
187+
=======
179188

180-
This PEP started life as a proposal on comp.lang.python. The
181-
original version suggested a single patch for the N-1 release to
182-
be released concurrently with the N release. The original version
183-
also argued for sticking with a strict bug fix policy.
189+
This PEP started life as a proposal on comp.lang.python. The original
190+
version suggested a single patch for the N-1 release to be released
191+
concurrently with the N release. The original version also argued for
192+
sticking with a strict bug fix policy.
184193

185-
Following feedback from the BDFL and others, the draft PEP was
186-
written containing an expanded bugfix release cycle that permitted
187-
any previous major release to obtain patches and also relaxed
188-
the strict bug fix requirement (mainly due to the example of PEP
189-
235 [3], which could be argued as either a bug fix or a feature).
194+
Following feedback from the BDFL and others, the draft PEP was written
195+
containing an expanded bugfix release cycle that permitted any
196+
previous major release to obtain patches and also relaxed the strict
197+
bug fix requirement (mainly due to the example of PEP 235 [3]_, which
198+
could be argued as either a bug fix or a feature).
190199

191-
Discussion then mostly moved to python-dev, where BDFL finally
192-
issued a proclamation basing the Python bugfix release process on
193-
Tcl's, which essentially returned to the original proposal in
194-
terms of being only the N-1 release and only bug fixes, but
195-
allowing multiple bugfix releases until release N is published.
200+
Discussion then mostly moved to python-dev, where BDFL finally issued
201+
a proclamation basing the Python bugfix release process on Tcl's,
202+
which essentially returned to the original proposal in terms of being
203+
only the N-1 release and only bug fixes, but allowing multiple bugfix
204+
releases until release N is published.
196205

197-
Anthony Baxter then took this PEP and revised it, based on
198-
lessons from the 2.3 release cycle.
206+
Anthony Baxter then took this PEP and revised it, based on lessons
207+
from the 2.3 release cycle.
199208

200209

201210
References
211+
==========
212+
213+
.. [1] http://www.tcl.tk/cgi-bin/tct/tip/28.html
202214

203-
[1] http://www.tcl.tk/cgi-bin/tct/tip/28.html
204215

205-
[2] PEP 3, Guidelines for Handling Bug Reports, Hylton
206-
http://www.python.org/dev/peps/pep-0003/
216+
.. [2] PEP 3, Guidelines for Handling Bug Reports, Hylton
217+
(http://www.python.org/dev/peps/pep-0003/)
207218

208-
[3] PEP 235, Import on Case-Insensitive Platforms, Peters
209-
http://www.python.org/dev/peps/pep-0235/
219+
.. [3] PEP 235, Import on Case-Insensitive Platforms, Peters
220+
(http://www.python.org/dev/peps/pep-0235/)
210221

211222

212223
Copyright
224+
=========
213225

214-
This document has been placed in the public domain.
226+
This document has been placed in the public domain.
215227

216228

217-
218-
Local Variables:
219-
mode: indented-text
220-
indent-tabs-mode: nil
221-
End:
229+
..
230+
Local Variables:
231+
mode: indented-text
232+
indent-tabs-mode: nil
233+
End:

0 commit comments

Comments
 (0)