root / dotorg / v5 / html / beps / bep_0001.html

Revision 10540, 13.2 kB (checked in by dave, 11 months ago)

postprocessing script that replaces date and last-modified with values from subversion.

generated .html files.

Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
7<title></title>
8<link rel="stylesheet" href="../css/bep.css" type="text/css" />
9</head>
10<body>
11<div class="document">
12
13<div id="upper" class="clear">
14<div id="wrap">
15<div id="header">
16<h1><a href="../index.html">BitTorrent<span>.org</span></a></h1>
17</div>
18<div id="nav">
19<ul>
20<li><a href="../index.html">Home</a></li>
21<li><a href="../introduction.html">For Users</a></li>
22<li><span>For Developers</span></li>
23<!-- <li><a href="./blog">Blog</a></li> -->
24<li><a href="../donate.html">Donate!</a></li>
25</ul>
26</div> <!-- nav -->
27<!-- ### Begin Content ### -->
28<div id="second">
29
30
31
32<table class="rfc2822 docutils field-list" frame="void" rules="none">
33<col class="field-name" />
34<col class="field-body" />
35<tbody valign="top">
36<tr class="field"><th class="field-name">BEP:</th><td class="field-body">1</td>
37</tr>
38<tr class="field"><th class="field-name">Title:</th><td class="field-body">The BitTorrent Enhancement Proposal Process</td>
39</tr>
40<tr class="field"><th class="field-name">Version:</th><td class="field-body">10537</td>
41</tr>
42<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_0001.rst">2008-02-04 18:05:50 -0800 (Mon, 04 Feb 2008)</a></td>
43</tr>
44<tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison &lt;dave&#32;&#97;t&#32;bittorrent.com&gt;</td>
45</tr>
46<tr class="field"><th class="field-name">Status:</th><td class="field-body">Active Draft</td>
47</tr>
48<tr class="field"><th class="field-name">Type:</th><td class="field-body">Process</td>
49</tr>
50<tr class="field"><th class="field-name">Created:</th><td class="field-body">10-Jan-2008</td>
51</tr>
52<tr class="field"><th class="field-name">Post-History:</th><td class="field-body"></td>
53</tr>
54</tbody>
55</table>
56<hr />
57<div class="contents topic" id="contents">
58<p class="topic-title first">Contents</p>
59<ul class="simple">
60<li><a class="reference internal" href="#what-is-a-bep" id="id3">What is a BEP</a></li>
61<li><a class="reference internal" href="#bep-types" id="id4">BEP Types</a></li>
62<li><a class="reference internal" href="#bep-work-flow" id="id5">BEP Work FLow</a></li>
63<li><a class="reference internal" href="#history" id="id6">History</a></li>
64<li><a class="reference internal" href="#acknowledgements" id="id7">Acknowledgements</a></li>
65<li><a class="reference internal" href="#references-and-footnotes" id="id8">References and Footnotes</a></li>
66</ul>
67</div>
68<div class="section" id="what-is-a-bep">
69<h1>What is a BEP</h1>
70<p>BEP stands for BitTorrent Enhancement Proposal.  A BEP is a design
71document providing information to the BitTorrent community, or
72describing a new feature for the BitTorrent protocols. The BEP should
73provide a concise technical specification of the feature and a
74rationale for the feature.</p>
75<p>We intend BEPs to be the primary mechanisms for proposing new
76features, for collecting community input on an issue, and for
77documenting the design decisions that have gone into BitTorrent. The BEP
78author is responsible for building consensus within the community and
79documenting dissenting opinions.</p>
80<p>Because the BEPs are maintained as text files in a versioned
81repository, their revision history is the historical record of the
82feature proposal <a class="footnote-reference" href="#svn" id="id1">[1]</a>.</p>
83</div>
84<div class="section" id="bep-types">
85<h1>BEP Types</h1>
86<p>There are three kinds of BEP:</p>
87<blockquote>
88<ol class="arabic simple">
89<li>A Standards Track BEP describes an extension to one of the BitTorrent
90protocols or a change in the behavior of one of the actors in these
91protocols, where the actors are currently clients, trackers, and web
92servers.</li>
93<li>An Informational BEP describes a BitTorrent design issue, or
94provides general guidelines or information to the BitTorrent
95community, but does not propose an extension. Informational BEPs
96do not necessarily represent a BitTorrent community consensus or
97recommendation, so users and implementors are free to ignore
98Informational BEPs or follow their advice.</li>
99<li>A Process BEP describes a process surrounding BitTorrent, or
100proposes a change to (or an event in) a process. Process BEPs are
101like Standards Track BEPs but apply to areas other than the
102BitTorrent protocols.  They are more than recommendations, and
103users are typically not free to ignore them. Examples include
104release schedules, procedures, guidelines, changes to the
105decision-making process, and changes to the tools or environment
106used in BitTorrent development.</li>
107</ol>
108</blockquote>
109</div>
110<div class="section" id="bep-work-flow">
111<h1>BEP Work FLow</h1>
112<p>The BEP editors assign BEP numbers and change their status. The
113current BEP editors are David Harrison and Arvid Norberg. Please send
114all BEP-related email to &lt;<a class="reference external" href="mailto:editor&#37;&#52;&#48;bittorrent&#46;org">editor<span>&#64;</span>bittorrent<span>&#46;</span>org</a>&gt;.  Also see BEP Editor
115Responsibilities &amp; Workflow below.</p>
116<p>The BEP process begins with a new idea for the BitTorrent
117protocols. It is highly recommended that a single BEP contain a single
118key proposal. The BEP editor reserves the right to reject BEP
119proposals if they appear unfocussed or overly broad. If in doubt,
120split your BEP into muliple BEPs.</p>
121<p>Each BEP must have a champion -- someone who writes the BEP using the
122style and format described below, shepherds the discussions in the
123appropriate forums, and attempts to build community consensus around
124the idea. The BEP champion should first post a description of the idea
125to the <a class="reference external" href="mailto:bitorrent-list&#37;&#52;&#48;bittorrent&#46;org">bitorrent-list<span>&#64;</span>bittorrent<span>&#46;</span>org</a>.</p>
126<p>If the champion believes the idea warrants a BEP then the champion
127emails the BEP editor &lt;<a class="reference external" href="mailto:editor&#37;&#52;&#48;bittorrent&#46;org">editor<span>&#64;</span>bittorrent<span>&#46;</span>org</a>&gt; with a proposed title
128and a draft of the BEP. This draft must be written in BEP style as
129described below.</p>
130<p>If the BEP editor approves, he assigns the BEP a number, labels it as
131Standards Track, Informational, or Process, gives it status &quot;Draft&quot;,
132and creates and checks-in the initial draft of the BEP to the
133subversion repository. The BEP editor will not unreasonably
134deny a BEP. Reasons for denying BEP status include duplication of
135effort, being technically unsound, not providing proper motivation or
136not addressing backwards compatibility. The BDFL (Benevolent Dictator
137for Life, Bram Cohen) can be consulted during the approval phase, and
138is the final arbiter of the draft's BEP-ability.</p>
139<p>If a pre-BEP is rejected, the author may elect to take the pre-BEP to
140the <a class="reference external" href="mailto:bittorrent-list&#37;&#52;&#48;bittorrent&#46;org">bittorrent-list<span>&#64;</span>bittorrent<span>&#46;</span>org</a> mailing list seeking feedback and
141consesnsus from the community at large.  A proposal may be re-submitted
142after it has been revised.</p>
143<p>The champion is then responsible for marshaling community support for
144it. As updates are necessary, the BEP author can check in new versions
145if they have SVN commit permissions, or can email new BEP versions to
146the BEP editor for committing.</p>
147<p>Standards Track BEPs consist of two parts, a design document and a
148reference implementation. The reference implementation need not be
149complete when a BEP is submitted to the editors.  However Standards
150Track BEPs must include an implementation in at least one BitTorrent
151client with publicy available code before it can be considered Final.</p>
152<p>BEP champions are responsible for collecting community feedback on a
153BEP before submitting it for review. A BEP that has not been discussed
154on <a class="reference external" href="mailto:bittorrent-list&#37;&#52;&#48;bittorrent&#46;org">bittorrent-list<span>&#64;</span>bittorrent<span>&#46;</span>org</a> will not be accepted. However, wherever
155possible, long open-ended discussions on public mailing lists should
156be avoided. Strategies to keep the discussions efficient include:
157setting up a separate SIG mailing list for the topic, having the BEP
158author accept private comments in the early design phases, setting up
159a wiki page, etc. BEP authors should use their discretion here.</p>
160<p>Once the authors have completed a BEP, they must inform the BEP editor
161that it is ready for review. BEPs are reviewed by the BDFL and his
162chosen consultants, who may accept or reject a BEP or send it back to
163the author(s) for revision. For a BEP that is pre-determined to be
164acceptable (e.g., it is an obvious win as-is and/or its implementation
165already exists in one or more popular BitTorrent clients) the BDFL may
166also initiate a BEP review, first notifying the BEP author(s) and
167giving them a chance to make revisions.</p>
168<p>For a BEP to be accepted it must meet certain minimum criteria. It
169must be a clear and complete description of the proposed
170enhancement. The enhancement must represent a net improvement. The
171proposed implementation, if applicable, must be functional and have
172been tested in live BitTorrent swarms.  Supporting results from
173analyses, testbed experiments and event-based simulations are also
174recommended where appropriate.  A Standards Track document should
175include the rationale behind a proposal and may briefly summarize
176analytical, simulation, or experimental results where necessary to
177illustrate or motivate the enhancement.  However, detailed analytical,
178simulation, and experiment results, especially comparing different
179approaches to the same problem should be omitted from Standards Track
180BEPs and instead cited from a published paper or a separate
181Informational BEP.</p>
182<p>Once a BEP has been accepted, the reference implementation must be
183completed. When the reference implementation is complete and accepted
184by the BDFL, the status will be changed to &quot;Final&quot;.</p>
185<p>A BEP can also be assigned status &quot;Deferred&quot;. The BEP author or editor
186can assign the BEP this status when no progress is being made on the
187BEP. Once a BEP is deferred, the BEP editor can re-assign it to draft
188status.</p>
189<p>A BEP can also be &quot;Rejected&quot;. Perhaps after all is said and done it
190was not a good idea. It is still important to have a record of this
191fact.</p>
192<p>BEPs can also be replaced by a different BEP, rendering the original
193obsolete. This is intended for Informational BEPs, where version 2 of
194an API can replace version 1.</p>
195<p>The possible paths of the status of BEPs are as follows:</p>
196<img alt="bep_0001_1.png" src="bep_0001_1.png" />
197</div>
198<div class="section" id="history">
199<h1>History</h1>
200<p>This document was derived heavily from PEP-0001 <a class="footnote-reference" href="#pep-1" id="id2">[2]</a>.  In many places
201text was simply copied and modified.  Although the PEP-0001 text
202was written by Barry Warsaw, Jeremy Hylton, and David Goodger, they
203are not responsible for its use in the BitTorent Enhancement Process,
204and should not be bothered with technical questions specific to
205BitTorrent or the BEP process.  Please direct all comments to the
206BitTorrent editors &lt;<a class="reference external" href="mailto:editor&#37;&#52;&#48;bittorrent&#46;org">editor<span>&#64;</span>bittorrent<span>&#46;</span>org</a>&gt; or the BitTorrent mailing
207list &lt;<a class="reference external" href="mailto:bittorrent-list&#37;&#52;&#48;bittorrent&#46;org">bittorrent-list<span>&#64;</span>bittorrent<span>&#46;</span>org</a>&gt;.</p>
208</div>
209<div class="section" id="acknowledgements">
210<h1>Acknowledgements</h1>
211<p>Thanks to Barry Warsaw, David Goodger, and Guido van Rossum for their
212guidance.</p>
213</div>
214<div class="section" id="references-and-footnotes">
215<h1>References and Footnotes</h1>
216<table class="docutils footnote" frame="void" id="svn" rules="none">
217<colgroup><col class="label" /><col /></colgroup>
218<tbody valign="top">
219<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>This historical record is available by the normal SVN
220commands for retrieving older revisions. For those without direct
221access to the SVN tree, you can browse the current and past BEP
222revisions here: <a class="reference external" href="http://svn.bittorrent.org/beps/trunk/">http://svn.bittorrent.org/beps/trunk/</a></td></tr>
223</tbody>
224</table>
225<table class="docutils footnote" frame="void" id="pep-1" rules="none">
226<colgroup><col class="label" /><col /></colgroup>
227<tbody valign="top">
228<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>PEP-001: PEP Purposes and Guidelines, Warsaw, Hylton, Goodger.
229(<a class="reference external" href="http://www.python.org/dev/peps/pep-0001">http://www.python.org/dev/peps/pep-0001</a>)</td></tr>
230</tbody>
231</table>
232<!-- Local Variables:
233mode: indented-text
234indent-tabs-mode: nil
235sentence-end-double-space: t
236fill-column: 70
237coding: utf-8
238End: -->
239</div>
240
241
242</div>
243        <div id="footer">
244<hr/>
245</div>
246
247</div>
248</body>
249</html>
Note: See TracBrowser for help on using the browser.