]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - doc/txt/tep1.txt
debug: add cfprintf macro
[tinyos-2.x.git] / doc / txt / tep1.txt
index ea35a2b0bdb815d9c16f5aaefe17ce20e253a782..923c1c72fca919105b429f6fde12d56aa813cfa9 100644 (file)
@@ -5,15 +5,10 @@ TEP Structure and Keywords
 :TEP: 1
 :Group: Core Working Group 
 :Type: Best Current Practice
-:Status: Draft
+:Status: Final
 :TinyOS-Version: All
 :Author: Philip Levis
 
-:Draft-Created: 18-Oct-2004
-:Draft-Version: $Revision$
-:Draft-Modified: $Date$
-:Draft-Discuss: TinyOS Developer List <tinyos-devel at mail.millennium.berkeley.edu>
-
 .. Note::
 
    This document specifies a Best Current Practices for the
@@ -45,7 +40,10 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 document are to be interpreted as described in TEP 1.
 
 Note that the force of these words is modified by the requirement
-level of the document in which they are used.
+level of the document in which they are used. These words hold their
+special meanings only when capitalized, and documents SHOULD avoid using
+these words uncapitalized in order to minimize confusion.
+
 
 2.1 MUST
 --------------------------------------------------------------------
@@ -110,31 +108,32 @@ TEPs have two major parts, a header and a body. The header states
 document metadata, for management and status. The body contains the 
 content of the proposal.
 
-All TEPs MUST follow the TEP docutils template, and conform to 
-reStructuredText standards [1]_, to enable translation from 
-reStructuredText to HTML and Latex.
+All TEPs MUST conform to reStructuredText standards [1]_ and follow
+the docutils template, to enable translation from  reStructuredText
+to HTML and LaTeX.
 
 3.1 TEP Header
 --------------------------------------------------------------------
 
 The TEP header has several fields which MUST be included, as well as
-others which MAY be included. The first six header fields MUST be
+others which MAY be included. The TEP header MUST NOT include headers
+which are not specified in TEP 1 or supplementary Best Current
+Practice TEPs. The first six header fields MUST be
 included in all TEPs, in the order stated here.
 
 The first field is "TEP," and specifies the TEP number of the
 document. A TEP's number is unique.. This document is TEP 1. The 
-TEP type (discussed below)
-determines how a number is assigned to it. Generally, when a document
-is ready to be a TEP, it is assigned the smallest available number.
-BCP TEPs start at 1 and all other TEPs (Documentary, Experimental,
-and Informational) start at 101.
+TEP type (discussed below) determines TEP number assignment. Generally,
+when a document is ready to be a TEP, it is assigned the smallest
+available number. BCP TEPs start at 1 and all other TEPs
+(Documentary, Experimental, and Informational) start at 101.
 
 The second field states the name of the working group that produced
 the document. This document was produced by the Core Working Group.
 
 The third field is "Type," and specifies the type of TEP the document
 is. There are four types of TEP: Best Current Practice (BCP),
-Documentary, Informational, and Experimental. This document is Best
+Documentary, Informational, and Experimental. This document's type is Best
 Current Practice.
 
 Best Current Practice is the closest thing TEPs have to a standard: it
@@ -160,10 +159,27 @@ describe systems that do not have a reference implementation.
 
 The fourth field is "Status," which specifies the status of the TEP.
 A TEP status can either be "Draft," which means it is a work in
-progress, "Final," which means it is complete and will not change, or
-"Obsolete," which means it should no longer be considered. If a TEP is
-"Obsolete" because it has been replaced by another TEP, then the new
-TEP number should follow "Obsolete," such as "Obsolete by TEP 1231."
+progress, "Final," which means it is complete and will not change. 
+Once a TEP has the status "Final," the only change allowed is the
+addition of an "Obsoleted By" field.
+
+The "Obsoletes" field is a backward pointer to an earlier TEP which
+the current TEP renders obsolete. An Obsoletes field MAY have multiple
+TEPs listed.  For example, if TEP 191 were to replace TEPs 111 and 116, it
+would have the field "Obsoletes: 111, 116".
+
+The "Obsoleted By" field is added to a Final TEP when another TEP has
+rendered it obsolete. The field contains the number of the obsoleting
+TEP. For example, if TEP 111 were obsoleted by TEP 191, it would have
+the field "Obsoleted By: 191".
+
+"Obsoletes" and "Obsoleted By" fields MUST agree. For a TEP to list another
+TEP in its Obsoletes field, then that TEP MUST list it in the Obsoleted By
+field.
+
+The obsoletion fields are used to keep track of evolutions and modifications
+of a single abstraction. They are not intended to force a single approach or
+mechanism over alternative possibilities.
 
 If a TEP is Best Current Practices or Documentary, then it MUST
 include an additional field, "TinyOS-Version:," which states what
@@ -171,10 +187,16 @@ version(s) of TinyOS the document pertains to. This document pertains
 to all versions of TinyOS, until made obsolete by a future TEP. This
 field MUST appear after the Status field and before the Author field.
 
-The final required field is Author, which states the names of the
+The final required field is "Author," which states the names of the
 authors of the document. Full contact information should not be listed
 here (see Section 3.2).
 
+There is an optional field, "Extends." The "Extends" field refers to
+another TEP. The purpose of this field is to denote when a TEP represents
+an addition to an existing TEP. Meeting the requirements of a TEP with an
+Extends field requires also meeting the requirements of all TEPs listed 
+in the Extends field.
+
 If a TEP is a Draft, then four additional fields MUST be included:
 Draft-Created, Draft-Modified, Draft-Version, and Draft-Discuss.
 Draft-Created states the date the document was created, Draft-Modified
@@ -198,17 +220,21 @@ If a TEP is Documentary, it MUST have a section entitled
 "Implementation," which instructs the reader how to obtain the
 implementation documented.
 
-If a TEP is Best Current Practices, it MUST have a section entitled
+If a TEP is Best Current Practice, it MUST have a section entitled
 "Reference," which points the reader to one or more reference uses of
 the practices.
 
-The last section of a TEP (but before citations, if there are any),
-entitled "Author's Address" or "Author's Addresses" MUST contain
-detailed author contact information.
+The last three sections of a TEP are author information, citations,
+and appendices. A TEP MUST have an author information section titled
+entitled "Author's Address" or "Authors' Addresses." A TEP MAY have
+a citation section entitled "Citations." A citations section MUST
+immediately follow the author information section. A TEP MAY have
+appendices. Appendices MUST immediately follow the citations section,
+or if there is no citations section, the author information section.
+Appendices are lettered.  Please refer to Appendix A for details.
 
 4. Reference
 ====================================================================
-
 The reference use of this document is TEP 1 (itself).
 
 5. Acknowledgments
@@ -221,16 +247,21 @@ definitions taken from IETF RFC 2119.
 ====================================================================
 
 | Philip Levis
-| 467 Soda Hall
-| UC Berkeley
-| Berkeley, CA 94720
+| 358 Gates Hall
+| Stanford University 
+| Stanford, CA 94305
 |
-| phone - +1 510 290 5283
+| phone - +1 650 725 9046
 |
-| email - pal@cs.berkeley.edu
+| email - pal@cs.stanford.edu
 
 7. Citations
 ====================================================================
 
 .. [1] reStructuredText Markup Specification. <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html>
  
+
+Appendix A. Example Appendix
+====================================================================
+
+This is an example appendix. Appendices begin with the letter A.