Gentoo Archives: gentoo-commits

From: "Piotr Jaroszynski (peper)" <peper@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/en/glep: glep-0001.txt
Date: Sat, 05 Jan 2008 03:05:14
Message-Id: E1JAzLP-0004R7-Ih@stork.gentoo.org
1 peper 08/01/05 03:05:07
2
3 Modified: glep-0001.txt
4 Log:
5 Fix GLEP 01 txt.
6
7 Revision Changes Path
8 1.10 xml/htdocs/proj/en/glep/glep-0001.txt
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/glep/glep-0001.txt?rev=1.10&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/glep/glep-0001.txt?rev=1.10&content-type=text/plain
12 diff : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/glep/glep-0001.txt?r1=1.9&r2=1.10
13
14 Index: glep-0001.txt
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/en/glep/glep-0001.txt,v
17 retrieving revision 1.9
18 retrieving revision 1.10
19 diff -u -r1.9 -r1.10
20 --- glep-0001.txt 5 Jan 2008 02:36:35 -0000 1.9
21 +++ glep-0001.txt 5 Jan 2008 03:05:07 -0000 1.10
22 @@ -0,0 +1,356 @@
23 +GLEP: 1
24 +Title: GLEP Purpose and Guidelines
25 +Version: $Revision: 1.10 $
26 +Last-Modified: $Date: 2008/01/05 03:05:07 $
27 +Author: Grant Goodyear <g2boojum@g.o>
28 +Status: Active
29 +Type: Informational
30 +Content-Type: text/x-rst
31 +Created: 31-May-2003
32 +Post-History: 1-Jun-2003, 2-Jul-2003
33 +
34 +
35 +Credits
36 +=======
37 +
38 +The GLEP concept, and, in fact, much of the text of this document,
39 +is liberally stolen from Python's [#Python]_ PEPs
40 +[#PEPS]_, especially
41 +PEP-0001 [#PEP1]_ by Barry A. Warsaw, Jeremy Hylton, and David Goodger.
42 +
43 +What is a GLEP?
44 +===============
45 +
46 +GLEP stands for "Gentoo Linux Enhancement Proposal". A GLEP is a design
47 +document providing information to the Gentoo Linux community, or describing
48 +a new feature for Gentoo Linux. The GLEP should provide a concise technical
49 +specification of the feature and rationale for the feature.
50 +
51 +We intend GLEPs to be the primary mechanisms for proposing *significant* new
52 +features, for collecting community input on an issue, and for
53 +documenting the design decisions that have gone into Gentoo Linux. The GLEP
54 +author is responsible for building consensus within the community and
55 +documenting dissenting opinions.
56 +
57 +Because the GLEPs are maintained as text files under CVS control, their
58 +revision history is the historical record of the feature proposal
59 +[#CVS]_.
60 +
61 +
62 +Kinds of GLEPs
63 +==============
64 +
65 +There are two kinds of GLEPs. A Standards Track GLEP describes a new feature
66 +or implementation for Gentoo Linux. An Informational GLEP describes provides
67 +general guidelines or information to the Gentoo Linux community, but does not
68 +propose a new feature. Informational GLEPs do not necessarily represent a
69 +Gentoo Linux community consensus or recommendation, so users and implementors
70 +are free to ignore Informational GLEPs or follow their advice.
71 +
72 +
73 +GLEP Work Flow
74 +==============
75 +
76 +The GLEP editors assign GLEP numbers and change their status. The current
77 +GLEP editors are Grant Goodyear and Alastair Tse. Please send all
78 +GLEP-related email to <glep@g.o>.
79 +
80 +The GLEP process begins with a new idea for Gentoo Linux. It is highly
81 +recommended that a single GLEP contain a single key proposal or new idea. The
82 +more focussed the GLEP, the more successful it tends to be. The GLEP editors
83 +reserve the right to reject GLEP proposals if they appear too unfocussed or
84 +too broad. If in doubt, split your GLEP into several well-focussed ones.
85 +
86 +Each GLEP must have a champion -- someone who writes the GLEP using the style
87 +and format described below, shepherds the discussions in the appropriate
88 +forums, and attempts to build community consensus around the idea. The GLEP
89 +champion (a.k.a. Author) should first attempt to ascertain whether the idea is
90 +GLEP-able. Small enhancements or patches often don't need a GLEP and can be
91 +injected into the Gentoo Linux development work flow with an enhancement "bug"
92 +submitted to the Gentoo Linux bugzilla [#BUGS]_.
93 +
94 +The GLEP champion then emails the GLEP editors <glep@g.o> with a
95 +proposed title and a rough, but fleshed out, draft of the GLEP. This draft
96 +must be written in GLEP style as described below.
97 +
98 +If the GLEP editor accepts the GLEP, he will assign the GLEP a number, label
99 +it as Standards Track (a better name would be nice here -- suggestions?) or
100 +Informational, give it status "Draft", and create and check-in the initial
101 +draft of the GLEP. The GLEP editors will not unreasonably deny a GLEP.
102 +Reasons for denying GLEP status include duplication of effort, being
103 +technically unsound, not providing proper motivation or addressing backwards
104 +compatibility, or not in keeping with Gentoo Linux philosophy.
105 +
106 +If a pre-GLEP is rejected, the author may elect to take the pre-GLEP to the
107 +gentoo-dev@g.o mailing list to help flesh it out, gain feedback and
108 +consensus from the community at large, and improve the GLEP for re-submission.
109 +
110 +The author of the GLEP is then responsible for posting the GLEP to the
111 +gentoo-dev mailing list and to the Gentoo Linux forums [#FORUMS]_, and
112 +marshaling community support for it. As updates are necessary, the GLEP
113 +author can check in new versions if they have CVS commit permissions, or can
114 +email new GLEP versions to the GLEP editors for committing.
115 +
116 +Standards Track GLEPs consist of two parts, a design document and a reference
117 +implementation. The GLEP should be reviewed and accepted before a reference
118 +implementation is begun, unless a reference implementation will aid people in
119 +studying the GLEP. Standards Track GLEPs must include an implementation -- in
120 +the form of code, patch, or URL to same -- before it can be considered Final.
121 +
122 +GLEP authors are responsible for collecting community feedback on a GLEP
123 +before submitting it for review. A GLEP that has not been discussed on
124 +gentoo-dev@g.o and/or the Gentoo Linux forums [#FORUMS]_ will not be
125 +accepted. However, wherever possible, long open-ended discussions on public
126 +mailing lists should be avoided. Strategies to keep the discussions efficient
127 +include setting up a specific forums thread for the topic, having the GLEP
128 +author accept private comments in the early design phases, etc. GLEP authors
129 +should use their discretion here.
130 +
131 +Once the authors have completed a GLEP, they must inform the GLEP editors that
132 +it is ready for review. GLEPs are reviewed by the appropriate Gentoo
133 +Manager [#MANAGER]_, who may approve or reject a GLEP outright, or
134 +send it back to the author(s) for revision. For a GLEP that is pre-determined
135 +to be approvable (e.g., it is an obvious win as-is and/or its implementation
136 +has already been checked in) the appropriate Gentoo Manager [#MANAGER]_
137 +may also initiate a GLEP review, first notifying the GLEP author(s) and giving
138 +them a chance to make revisions.
139 +
140 +For a GLEP to be approved it must meet certain minimum criteria. It must be a
141 +clear and complete description of the proposed enhancement. The enhancement
142 +must represent a net improvement. The proposed implementation, if applicable,
143 +must be solid and must not complicate the distribution unduly. Finally, a
144 +proposed enhancement must satisfy the philosophy of Gentoo Linux.
145 +
146 +Once a GLEP has been accepted, the reference implementation must be completed.
147 +When the reference implementation is complete and accepted, the status will be
148 +changed to "Final".
149 +
150 +A GLEP can also be assigned status "Deferred". The GLEP author or editor can
151 +assign the GLEP this status when no progress is being made on the GLEP. Once
152 +a GLEP is deferred, the GLEP editor can re-assign it to draft status.
153 +
154 +A GLEP can also be "Rejected". Perhaps after all is said and done it was not
155 +a good idea. It is still important to have a record of this fact.
156 +
157 +GLEPs can also be replaced by a different GLEP, rendering the original
158 +obsolete (where version 2 of a policy, for example, might replace version 1).
159 +
160 +GLEP work flow is as follows::
161 +
162 + Draft -> Accepted -> Final -> Replaced
163 + ^
164 + +----> Rejected
165 + v
166 + Deferred
167 +
168 +Some Informational GLEPs may also have a status of "Active" if they are never
169 +meant to be completed. E.g. GLEP 1 (this GLEP).
170 +
171 +
172 +What belongs in a successful GLEP?
173 +==================================
174 +
175 +Each GLEP should have the following parts:
176 +
177 +1. Preamble -- RFC 822 style headers containing meta-data about the
178 + GLEP, including the GLEP number, a short descriptive title (limited
179 + to a maximum of 44 characters), the names, and optionally the
180 + contact info for each author, etc.
181 +
182 +2. Abstract -- a short (~200 word) description of the technical issue
183 + being addressed.
184 +
185 +3. Motivation -- The motivation is critical for GLEPs that want to
186 + modify Gentoo Linux functionality. It should clearly explain why the
187 + existing functionality or policy is inadequate to address the problem that
188 + the GLEP solves. GLEP submissions without sufficient motivation may be
189 + rejected outright.
190 +
191 +4. Specification -- The technical specification should describe the
192 + specific areas of Gentoo Linux that would be touched by this GLEP. If new
193 + functionality is being introduced, what packages will that functionality
194 + affect? If new policy, who will be affected?
195 +
196 +5. Rationale -- The rationale fleshes out the specification by
197 + describing what motivated the design and why particular design decisions
198 + were made. It should describe alternate designs that were considered and
199 + related work, e.g. how the feature is supported in other distributions.
200 +
201 + The rationale should provide evidence of consensus within the community and
202 + discuss important objections or concerns raised during discussion.
203 +
204 +6. Backwards Compatibility -- All GLEPs
205 + must include a section describing any issues of backwards incompatibilities
206 + and their severity. The GLEP must explain how the author proposes to deal
207 + with these incompatibilities. (Even if there are none, this section should
208 + be included to clearly state that fact.) GLEP submissions without a
209 + sufficient backwards compatibility treatise may be rejected outright.
210 +
211 +7. Reference Implementation -- The reference implementation must be
212 + completed before any GLEP is given status "Final", but it need not be
213 + completed before the GLEP is accepted. It is better to finish the
214 + specification and rationale first and reach consensus on it before writing
215 + code or significantly modifying ebuilds.
216 +
217 +8. Copyright/public domain -- Each GLEP must either be explicitly
218 + labelled as placed in the public domain (see this GLEP as an example) or
219 + licensed under the Open Publication License [#OPL].
220 +
221 +
222 +GLEP Formating and Template
223 +===========================
224 +
225 +GLEPs are written either in Gentoo Linux Guide-XML [#GUIDEXML]_ or in
226 +a just-barely-marked-up version of plain ASCII text
227 +called ReStructuredText [#ReSTHOME]_ that is then converted to HTML using
228 +Docutils [#DOCUTILS]_. Using ReStructuredText GLEPs allows for rich markup
229 +that is still quite easy to read, but results in much better-looking and more
230 +functional HTML. Moreover, it should be straightforward to convert GLEPs to
231 +Gentoo Linux guide xml [#GUIDEXML]_ if needed. GLEP 2 contains a boilerplate
232 +template [#ReST]_ for use with ReStructuredText GLEPs.
233 +
234 +
235 +GLEP Header Preamble
236 +====================
237 +
238 +Each GLEP must begin with an RFC 2822 style header preamble. The headers
239 +must appear in the following order. Headers marked with "*" are
240 +optional and are described below. All other headers are required. ::
241 +
242 + GLEP: <glep number>
243 + Title: <glep title>
244 + Version: <cvs version string>
245 + Last-Modified: <cvs date string>
246 + Author: <list of authors' real names and optionally, email addrs>
247 + * Discussions-To: <email address>
248 + Status: <Draft | Active | Accepted | Deferred | Rejected |
249 + Final | Replaced>
250 + Type: <Informational | Standards Track>
251 + * Content-Type: <text/plain | text/x-rst>
252 + * Requires: <glep numbers>
253 + Created: <date created on, in dd-mmm-yyyy format>
254 + Post-History: <dates of postings to gentoo-dev>
255 + * Replaces: <glep number>
256 + * Replaced-By: <glep number>
257 +
258 +The Author header lists the names, and optionally the email addresses
259 +of all the authors/owners of the GLEP. The format of the Author header
260 +value must be
261 +
262 + Random J. User <address@×××.ain>
263 +
264 +if the email address is included, and just
265 +
266 + Random J. User
267 +
268 +if the address is not given.
269 +
270 +If there are multiple authors, each should be on a separate line
271 +following RFC 2822 continuation line conventions. Note that personal
272 +email addresses in GLEPs will be obscured as a defense against spam
273 +harvesters.
274 +
275 +While a GLEP is in private discussions (usually during the initial Draft
276 +phase), a Discussions-To header will indicate the mailing list or URL where
277 +the GLEP is being discussed. No Discussions-To header is necessary if the
278 +GLEP is being discussed privately with the author, or on the gentoo-dev
279 +mailing list. Note that email addresses in the Discussions-To header will not
280 +be obscured.
281 +
282 +The Type header specifies the type of GLEP: Informational or Standards
283 +Track.
284 +
285 +The format of a GLEP is specified with a Content-Type header, which
286 +should read "text/xml" for Gentoo Guide XML or
287 +"text/x-rst" for ReStructuredText GLEPs (see GLEP 2
288 +[#ReST]_).
289 +
290 +The Created header records the date that the GLEP was assigned a number, while
291 +Post-History is used to record the dates of when new versions of the GLEP are
292 +posted to gentoo-dev. Both headers should be in dd-mmm-yyyy format, e.g.
293 +14-Aug-2001.
294 +
295 +GLEPs may have a Requires header, indicating the GLEP numbers that this GLEP
296 +depends on.
297 +
298 +GLEPs may also have a Replaced-By header indicating that a GLEP has been
299 +rendered obsolete by a later document; the value is the number of the GLEP
300 +that replaces the current document. The newer GLEP must have a Replaces
301 +header containing the number of the GLEP that it rendered obsolete.
302 +
303 +
304 +Reporting GLEP Bugs, or Submitting GLEP Updates
305 +===============================================
306 +
307 +How you report a bug, or submit a GLEP update depends on several factors, such
308 +as the maturity of the GLEP, the preferences of the GLEP author, and the
309 +nature of your comments. For the early draft stages of the GLEP, it's
310 +probably best to send your comments and changes directly to the GLEP author.
311 +For more mature, or finished GLEPs you may want to submit corrections to the
312 +Gentoo Linux bugzilla [#BUGS]_ so that your changes don't get lost. If the GLEP
313 +author is a Gentoo Linux developer, assign the bug/patch to him, otherwise
314 +assign it to the GLEP editors.
315 +
316 +When in doubt about where to send your changes, please check first with the
317 +GLEP author and/or GLEP editors.
318 +
319 +GLEP authors who are also Gentoo Linux developers can update the GLEPs
320 +themselves by using "cvs commit" to commit their changes.
321 +
322 +Transferring GLEP Ownership
323 +===========================
324 +
325 +It occasionally becomes necessary to transfer ownership of GLEPs to a new
326 +champion. In general, we'd like to retain the original author as a co-author
327 +of the transferred GLEP, but that's really up to the original author. A good
328 +reason to transfer ownership is because the original author no longer has the
329 +time or interest in updating it or following through with the GLEP process, or
330 +has fallen off the face of the 'net (i.e. is unreachable or not responding to
331 +email). A bad reason to transfer ownership is because you don't agree with
332 +the direction of the GLEP. We try to build consensus around a GLEP, but if
333 +that's not possible, you can always submit a competing GLEP.
334 +
335 +If you are interested in assuming ownership of a GLEP, send a message asking
336 +to take over, addressed to both the original author and the GLEP editors
337 +<glep@g.o>. If the original author doesn't respond to email in a
338 +timely manner, the GLEP editors will make a unilateral decision (it's not like
339 +such decisions can't be reversed :).
340 +
341 +
342 +References and Footnotes
343 +========================
344 +
345 +.. [#PYTHON] http://www.python.org
346 +
347 +.. [#PEPS] http://www.python.org/peps
348 +
349 +.. [#PEP1] http://www.python.org/peps/pep-0001.html
350 +
351 +.. [#CVS] This historical record is available by the normal CVS commands
352 + for retrieving older revisions. For those without direct access to the CVS
353 + tree, you can browse the current and past GLEP revisions via the Gentoo
354 + Linux viewcvs web site at
355 + http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo/xml/htdocs/proj/en/glep/
356 +
357 +.. [#ReST] GLEP 2, Sample ReStructuredText GLEP Template,
358 + (http://glep.gentoo.org/glep-0002.html)
359 +
360 +.. [#BUGS] http://bugs.gentoo.org
361 +
362 +.. [#FORUMS] http://forums.gentoo.org
363 +
364 +.. [#MANAGER] http://www.gentoo.org/doc/en/management-structure.xml
365 +
366 +.. [#OPL] http://www.opencontent.org/openpub/
367 +
368 +.. [#ReSTHOME] http://docutils.sourceforge.net/rst.html
369 +
370 +.. [#GUIDEXML] http://www.gentoo.org/doc/en/xml-guide.xml
371 +
372 +.. [#DOCUTILS] http://docutils.sourceforge.net/
373 +
374 +
375 +Copyright
376 +=========
377 +
378 +This document has been placed in the public domain.
379
380
381
382 --
383 gentoo-commits@g.o mailing list