@@ -5,204 +5,209 @@ Last-Modified: $Date$
5
5
Author: Martijn Faassen <
[email protected] >
6
6
Status: Final
7
7
Type: Process
8
+ Content-Type: text/x-rst
8
9
Created: 07-Jul-2001
9
10
Post-History: 07-Jul-2001, 09-Mar-2002
10
11
11
12
13
+
12
14
PEP Replacement
15
+ ===============
13
16
14
- This PEP has been superseded by the updated material in the Python
15
- Developer's Guide [1].
17
+ This PEP has been superseded by the updated material in the Python
18
+ Developer's Guide [1]_ .
16
19
17
20
Introduction
21
+ ============
22
+
23
+ The Python Standard Library contributes significantly to Python's
24
+ success. The language comes with "batteries included", so it is easy
25
+ for people to become productive with just the standard library alone.
26
+ It is therefore important that this library grows with the language,
27
+ and that such growth is supported and encouraged.
28
+
29
+ Many contributions to the library are not created by core developers
30
+ but by people from the Python community who are experts in their
31
+ particular field. Furthermore, community members are also the users of
32
+ the standard library, applying it in a great diversity of settings.
33
+ This makes the community well equipped to detect and report gaps in
34
+ the library; things that are missing but should be added.
35
+
36
+ New functionality is commonly added to the library in the form of new
37
+ modules. This PEP will describe the procedure for the *addition* of
38
+ new modules. PEP 4 deals with procedures for deprecation of modules;
39
+ the *removal* of old and unused modules from the standard library.
40
+ Finally there is also the issue of *changing* existing modules to make
41
+ the picture of library evolution complete. PEP 3 and PEP 5 give some
42
+ guidelines on this. The continued maintenance of existing modules is
43
+ an integral part of the decision on whether to add a new module to the
44
+ standard library. Therefore, this PEP also introduces concepts
45
+ (integrators, maintainers) relevant to the maintenance issue.
18
46
19
- The Python Standard Library contributes significantly to Python's
20
- success. The language comes with "batteries included", so it is
21
- easy for people to become productive with just the standard
22
- library alone. It is therefore important that this library grows
23
- with the language, and that such growth is supported and
24
- encouraged.
25
-
26
- Many contributions to the library are not created by core
27
- developers but by people from the Python community who are experts
28
- in their particular field. Furthermore, community members are
29
- also the users of the standard library, applying it in a great
30
- diversity of settings. This makes the community well equipped to
31
- detect and report gaps in the library; things that are missing but
32
- should be added.
33
-
34
- New functionality is commonly added to the library in the form of
35
- new modules. This PEP will describe the procedure for the
36
- _addition_ of new modules. PEP 4 deals with procedures for
37
- deprecation of modules; the _removal_ of old and unused modules
38
- from the standard library. Finally there is also the issue of
39
- _changing_ existing modules to make the picture of library
40
- evolution complete. PEP 3 and PEP 5 give some guidelines on this.
41
- The continued maintenance of existing modules is an integral part
42
- of the decision on whether to add a new module to the standard
43
- library. Therefore, this PEP also introduces concepts
44
- (integrators, maintainers) relevant to the maintenance issue.
45
-
46
47
47
48
Integrators
49
+ ===========
48
50
49
- The integrators are a group of people with the following
50
- responsibilities:
51
+ The integrators are a group of people with the following
52
+ responsibilities:
51
53
52
- - They determine if a proposed contribution should become part of
53
- the standard library.
54
+ * They determine if a proposed contribution should become part of the
55
+ standard library.
54
56
55
- - They integrate accepted contributions into the standard library.
57
+ * They integrate accepted contributions into the standard library.
56
58
57
- - They produce standard library releases.
59
+ * They produce standard library releases.
58
60
59
- This group of people shall be PythonLabs, led by Guido.
61
+ This group of people shall be PythonLabs, led by Guido.
60
62
61
63
62
64
Maintainer(s)
65
+ =============
63
66
64
- All contributions to the standard library need one or more
65
- maintainers. This can be an individual, but it is frequently a
66
- group of people such as the XML-SIG. Groups may subdivide
67
- maintenance tasks among themselves. One ore more maintainers
68
- shall be the _head maintainer_ (usually this is also the main
69
- developer). Head maintainers are convenient people the
70
- integrators can address if they want to resolve specific issues,
71
- such as the ones detailed later in this document.
67
+ All contributions to the standard library need one or more
68
+ maintainers. This can be an individual, but it is frequently a group
69
+ of people such as the XML- SIG. Groups may subdivide maintenance
70
+ tasks among themselves. One ore more maintainers shall be the *head
71
+ maintainer* (usually this is also the main developer). Head
72
+ maintainers are convenient people the integrators can address if they
73
+ want to resolve specific issues, such as the ones detailed later in
74
+ this document.
72
75
73
76
74
77
Developers(s)
78
+ =============
75
79
76
- Contributions to the standard library have been developed by one
77
- or more developers. The initial maintainers are the original
78
- developers unless there are special circumstances (which should be
79
- detailed in the PEP proposing the contribution).
80
+ Contributions to the standard library have been developed by one or
81
+ more developers. The initial maintainers are the original developers
82
+ unless there are special circumstances (which should be detailed in
83
+ the PEP proposing the contribution).
80
84
81
85
82
86
Acceptance Procedure
87
+ ====================
88
+
89
+ When developers wish to have a contribution accepted into the standard
90
+ library, they will first form a group of maintainers (normally
91
+ initially consisting of themselves).
92
+
93
+ Then, this group shall produce a PEP called a library PEP. A library
94
+ PEP is a special form of standards track PEP. The library PEP gives
95
+ an overview of the proposed contribution, along with the proposed
96
+ contribution as the reference implementation. This PEP should also
97
+ contain a motivation on why this contribution should be part of the
98
+ standard library.
99
+
100
+ One or more maintainers shall step forward as PEP champion (the people
101
+ listed in the Author field are the champions). The PEP champion(s)
102
+ shall be the initial head maintainer(s).
103
+
104
+ As described in PEP 1, a standards track PEP should consist of a
105
+ design document and a reference implementation. The library PEP
106
+ differs from a normal standard track PEP in that the reference
107
+ implementation should in this case always already have been written
108
+ before the PEP is to be reviewed for inclusion by the integrators and
109
+ to be commented upon by the community; the reference implementation
110
+ *is* the proposed contribution.
111
+
112
+ This different requirement exists for the following reasons:
113
+
114
+ * The integrators can only properly evaluate a contribution to the
115
+ standard library when there is source code and documentation to look
116
+ at; i.e. the reference implementation is always necessary to aid
117
+ people in studying the PEP.
83
118
84
- When developers wish to have a contribution accepted into the
85
- standard library, they will first form a group of maintainers
86
- (normally initially consisting of themselves).
87
-
88
- Then, this group shall produce a PEP called a library PEP. A
89
- library PEP is a special form of standards track PEP. The library
90
- PEP gives an overview of the proposed contribution, along with the
91
- proposed contribution as the reference implementation. This PEP
92
- should also contain a motivation on why this contribution should
93
- be part of the standard library.
94
-
95
- One or more maintainers shall step forward as PEP champion (the
96
- people listed in the Author field are the champions). The PEP
97
- champion(s) shall be the initial head maintainer(s).
98
-
99
- As described in PEP 1, a standards track PEP should consist of a
100
- design document and a reference implementation. The library PEP
101
- differs from a normal standard track PEP in that the reference
102
- implementation should in this case always already have been
103
- written before the PEP is to be reviewed for inclusion by the
104
- integrators and to be commented upon by the community; the
105
- reference implementation _is_ the proposed contribution.
106
-
107
- This different requirement exists for the following reasons:
108
-
109
- - The integrators can only properly evaluate a contribution to the
110
- standard library when there is source code and documentation to
111
- look at; i.e. the reference implementation is always necessary
112
- to aid people in studying the PEP.
113
-
114
- - Even rejected contributions will be useful outside the standard
115
- library, so there will a lower risk of waste of effort by the
116
- developers.
117
-
118
- - It will impress the integrators of the seriousness of
119
- contribution and will help guard them against having to evaluate
120
- too many frivolous proposals.
121
-
122
- Once the library PEP has been submitted for review, the
123
- integrators will then evaluate it. The PEP will follow the normal
124
- PEP work flow as described in PEP 1. If the PEP is accepted, they
125
- will work through the head maintainers to make the contribution
126
- ready for integration.
119
+ * Even rejected contributions will be useful outside the standard
120
+ library, so there will a lower risk of waste of effort by the
121
+ developers.
122
+
123
+ * It will impress the integrators of the seriousness of contribution
124
+ and will help guard them against having to evaluate too many
125
+ frivolous proposals.
126
+
127
+ Once the library PEP has been submitted for review, the integrators
128
+ will then evaluate it. The PEP will follow the normal PEP work flow
129
+ as described in PEP 1. If the PEP is accepted, they will work through
130
+ the head maintainers to make the contribution ready for integration.
127
131
128
132
129
133
Maintenance Procedure
134
+ =====================
130
135
131
- After a contribution has been accepted, the job is not over for
132
- both integrators and maintainers. The integrators will forward
133
- any bug reports in the standard library to the appropriate head
134
- maintainers.
135
-
136
- Before the feature freeze preparing for a release of the standard
137
- library, the integrators will check with the head maintainers for
138
- all contributions, to see if there are any updates to be included
139
- in the next release. The integrators will evaluate any such
140
- updates for issues like backwards compatibility and may require
141
- PEPs if the changes are deemed to be large.
142
-
143
- The head maintainers should take an active role in keeping up to
144
- date with the Python development process. If a head maintainer is
145
- unable to function in this way, he or she should announce the
146
- intention to step down to the integrators and the rest of the
147
- maintainers, so that a replacement can step forward. The
148
- integrators should at all times be capable of reaching the head
149
- maintainers by email.
150
-
151
- In the case where no head maintainer can be found (possibly
152
- because there are no maintainers left), the integrators will issue
153
- a call to the community at large asking for new maintainers to
154
- step forward. If no one does, the integrators can decide to
155
- declare the contribution deprecated as described in PEP 4.
136
+ After a contribution has been accepted, the job is not over for both
137
+ integrators and maintainers. The integrators will forward any bug
138
+ reports in the standard library to the appropriate head maintainers.
156
139
140
+ Before the feature freeze preparing for a release of the standard
141
+ library, the integrators will check with the head maintainers for all
142
+ contributions, to see if there are any updates to be included in the
143
+ next release. The integrators will evaluate any such updates for
144
+ issues like backwards compatibility and may require PEPs if the
145
+ changes are deemed to be large.
157
146
158
- Open issues
147
+ The head maintainers should take an active role in keeping up to date
148
+ with the Python development process. If a head maintainer is unable
149
+ to function in this way, he or she should announce the intention to
150
+ step down to the integrators and the rest of the maintainers, so that
151
+ a replacement can step forward. The integrators should at all times
152
+ be capable of reaching the head maintainers by email.
153
+
154
+ In the case where no head maintainer can be found (possibly because
155
+ there are no maintainers left), the integrators will issue a call to
156
+ the community at large asking for new maintainers to step forward. If
157
+ no one does, the integrators can decide to declare the contribution
158
+ deprecated as described in PEP 4.
159
159
160
- There needs to be some procedure so that the integrators can
161
- always reach the maintainers (or at least the head maintainers).
162
- This could be accomplished by a mailing list to which all head
163
- maintainers should be subscribed (this could be python-dev).
164
- Another possibility, which may be useful in any case, is the
165
- maintenance of a list similar to that of the list of PEPs which
166
- lists all the contributions and their head maintainers with
167
- contact info. This could in fact be part of the list of the PEPs,
168
- as a new contribution requires a PEP. But since the
169
- authors/owners of a PEP introducing a new module may eventually be
170
- different from those who maintain it, this wouldn't resolve all
171
- issues yet.
172
-
173
- Should there be a list of what criteria integrators use for
174
- evaluating contributions? (Source code but also things like
175
- documentation and a test suite, as well as such vague things like
176
- 'dependability of the maintainers'.)
177
-
178
- This relates to all the technical issues; check-in privileges,
179
- coding style requirements, documentation requirements, test suite
180
- requirements. These are preferably part of another PEP.
181
-
182
- Should the current standard library be subdivided among
183
- maintainers? Many parts already have (informal) maintainers; it
184
- may be good to make this more explicit.
185
-
186
- Perhaps there is a better word for 'contribution'; the word
187
- 'contribution' may not imply enough that the process (of
188
- development and maintenance) does not stop after the contribution
189
- is accepted and integrated into the library.
190
-
191
- Relationship to the mythical Catalog?
160
+
161
+ Open issues
162
+ ===========
163
+
164
+ There needs to be some procedure so that the integrators can always
165
+ reach the maintainers (or at least the head maintainers). This could
166
+ be accomplished by a mailing list to which all head maintainers should
167
+ be subscribed (this could be python-dev). Another possibility, which
168
+ may be useful in any case, is the maintenance of a list similar to
169
+ that of the list of PEPs which lists all the contributions and their
170
+ head maintainers with contact info. This could in fact be part of the
171
+ list of the PEPs, as a new contribution requires a PEP. But since the
172
+ authors/owners of a PEP introducing a new module may eventually be
173
+ different from those who maintain it, this wouldn't resolve all issues
174
+ yet.
175
+
176
+ Should there be a list of what criteria integrators use for evaluating
177
+ contributions? (Source code but also things like documentation and a
178
+ test suite, as well as such vague things like 'dependability of the
179
+ maintainers'.)
180
+
181
+ This relates to all the technical issues; check-in privileges, coding
182
+ style requirements, documentation requirements, test suite
183
+ requirements. These are preferably part of another PEP.
184
+
185
+ Should the current standard library be subdivided among maintainers?
186
+ Many parts already have (informal) maintainers; it may be good to make
187
+ this more explicit.
188
+
189
+ Perhaps there is a better word for 'contribution'; the word
190
+ 'contribution' may not imply enough that the process (of development
191
+ and maintenance) does not stop after the contribution is accepted and
192
+ integrated into the library.
193
+
194
+ Relationship to the mythical Catalog?
192
195
193
196
References
197
+ ==========
194
198
195
- [1] Adding to the Stdlib
196
- http://docs.python.org/devguide/stdlibchanges.html
199
+ .. [1] Adding to the Stdlib
200
+ ( http://docs.python.org/devguide/stdlibchanges.html)
197
201
198
202
Copyright
203
+ =========
199
204
200
- This document has been placed in the public domain.
201
-
205
+ This document has been placed in the public domain.
202
206
203
-
204
- Local Variables:
205
- mode: indented-text
206
- indent-tabs-mode: nil
207
- fill-column: 70
208
- End:
207
+ ..
208
+ Local Variables:
209
+ mode: indented-text
210
+ indent-tabs-mode: nil
211
+ fill-column: 70
212
+ coding: utf-8
213
+ End:
0 commit comments