[Tinyos-beta-commits] CVS: tinyos-1.x/beta/teps/html tep1.html, NONE, 1.1.2.1

Kristin Wright kristinwright at users.sourceforge.net
Thu Nov 11 05:43:32 PST 2004


Update of /cvsroot/tinyos/tinyos-1.x/beta/teps/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8305/beta/teps/html

Added Files:
      Tag: tos-1-1-8-candidate
	tep1.html 
Log Message:
merge with trunk using the tos-1-1-8-postbugfix trunk snapshot

--- NEW FILE: tep1.html ---
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<title>TEP structure and key words</title>
<meta name="author" content="Philip Levis" />
<link rel="stylesheet" href="stylesheets/tep2.css" type="text/css" />
</head>
<body>
<h1 class="title">TEP structure and key words</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr class="field"><th class="docinfo-name">TEP:</th><td class="field-body">1</td>
</tr>
<tr class="field"><th class="docinfo-name">Group:</th><td class="field-body">Core Working Group</td>
</tr>
<tr class="field"><th class="docinfo-name">Type:</th><td class="field-body">Best Current Practice</td>
</tr>
<tr><th class="docinfo-name">Status:</th>
<td>Draft</td></tr>
<tr class="field"><th class="docinfo-name">TinyOS-Version:</th><td class="field-body">All</td>
</tr>
<tr><th class="docinfo-name">Author:</th>
<td>Philip Levis</td></tr>
<tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">18-Oct-2004</td>
</tr>
<tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">$Revision: 1.1.2.1 $</td>
</tr>
<tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">$Date: 2004/11/11 13:43:29 $</td>
</tr>
<tr class="field"><th class="docinfo-name">Draft-Discuss:</th><td class="field-body">TinyOS-1.2WG List &lt;tinyos at barnowl.org&gt;</td>
</tr>
</tbody>
</table>
<div class="document" id="tep-structure-and-key-words">
<div class="note">
<p class="admonition-title first">Note</p>
This document specifies a Best Current Practices for the
TinyOS Community, and requests discussion and suggestions for
improvements.  Distribution of this memo is unlimited.</div>
<div class="section" id="abstract">
<h1><a name="abstract">Abstract</a></h1>
<p>This memo describes the structure all TinyOS Extension Proposal
documents follow, and defines the meaning of several key words.</p>
</div>
<div class="section" id="introduction">
<h1><a name="introduction">1. Introduction</a></h1>
<p>In order to simplify management, reading, and tracking development,
all TinyOS Extension Proposals (TEPs) MUST have a particular 
structure. Additionally, to simplify development and improve
implementation interoperability, all TEPs MUST observe the meaning
of several key words that specify levels of compliance. This
document describes and follows both.</p>
</div>
<div class="section" id="keywords">
<h1><a name="keywords">2. Keywords</a></h1>
<p>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL
NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,  &quot;MAY&quot;, and
&quot;OPTIONAL&quot; in this document are to be interpreted as described in
TEP 1.</p>
<p>Note that the force of these words is modified by the requirement
level of the document in which they are used.</p>
<div class="section" id="must">
<h2><a name="must">2.1 MUST</a></h2>
<p>MUST: This word, or the terms &quot;REQUIRED&quot; or &quot;SHALL&quot;, mean that the
definition is an absolute requirement of the specification.</p>
</div>
<div class="section" id="must-not">
<h2><a name="must-not">2.2 MUST NOT</a></h2>
<p>MUST NOT: This phrase, or the phrase &quot;SHALL NOT&quot;, mean that the
definition is an absolute prohibition of the specification.</p>
</div>
<div class="section" id="should">
<h2><a name="should">2.3 SHOULD</a></h2>
<p>SHOULD: This word, or the adjective &quot;RECOMMENDED&quot;, mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.</p>
</div>
<div class="section" id="should-not">
<h2><a name="should-not">2.4 SHOULD NOT</a></h2>
<p>SHOULD NOT: This phrase, or the phrase &quot;NOT RECOMMENDED&quot; mean that
there may exist valid reasons in particular circumstances when the
particular behavior is acceptable or even useful, but the full
implications should be understood and the case carefully weighed
before implementing any behavior described with this label.</p>
</div>
<div class="section" id="may">
<h2><a name="may">2.5 MAY</a></h2>
<p>MAY: This word, or the adjective &quot;OPTIONAL&quot;, mean that an item is
truly optional.  One implementer may choose to include the item because a
particular application requires it or because the implementer feels that
it enhances the system while another implementer may omit the same item.
An implementation which does not include a particular option MUST be
prepared to interoperate with another implementation which does
include the option, though perhaps with reduced functionality. In the
same vein an implementation which does include a particular option
MUST be prepared to interoperate with another implementation which
does not include the option (except, of course, for the feature the
option provides.)</p>
</div>
<div class="section" id="guidance-in-the-use-of-these-imperatives">
<h2><a name="guidance-in-the-use-of-these-imperatives">2.6 Guidance in the use of these Imperatives</a></h2>
<p>Imperatives of the type defined in this memo must be used with care
and sparingly.  In particular, they MUST only be used where it is
actually required for interoperation or to limit behavior which has
potential for causing harm (e.g., limiting retransmisssions)  For
example, they must not be used to try to impose a particular method
on implementors where the method is not required for
interoperability.</p>
</div>
</div>
<div class="section" id="tep-structure">
<h1><a name="tep-structure">3. TEP Structure</a></h1>
<p>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.</p>
<p>All TEPs MUST follow the TEP docutils template, and conform to 
reStructuredText standards <a class="citation-reference" href="#rst" id="id1" name="id1">[rst]</a>, to enable translation from 
reStructuredText to HTML and Latex.</p>
<div class="section" id="tep-header">
<h2><a name="tep-header">3.1 TEP Header</a></h2>
<p>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
included in all TEPs, in the order stated here.</p>
<p>The first field is &quot;TEP,&quot; and specifies the TEP number of the document. 
This document is TEP 1.</p>
<p>The second field states the name of the working group that produced
the document. This document was produced by the Core Working Group.</p>
<p>The third field is &quot;Type,&quot; 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 Current Practice.</p>
<p>Best Current Practice
is the closest thing TEPs have to a standard: it represents conclusions
from significant experience and work by its authors. Developers
desiring to add code (or TEPs) to TinyOS SHOULD follow all current BCPs.</p>
<p>Documentary TEPs describe a system or protocol that exists; a documentary
TEP MUST reference an implementation that a reader can easily obtain. 
Compliance with Documentary TEPs is entirely OPTIONAL; they
exist is to simplify interoprability when it is needed, and to document
TinyOS service implementations.</p>
<p>Informational TEPs provide information that is of interest to the 
community. Informational TEPs include data gathered on radio behavior,
hardware characteristics, other aspects of TinyOS software/hardware,
or experiences which would help the community it its goals.  It is
RECOMMENDED that TEPs be aware of and consider Informational TEPs
of relevance to its particular topic.</p>
<p>Experimental TEPs describe a completely experimental approach to a problem,
which are outside the TinyOS core and will not necessarily become part of it.
Experimental TEPs may describe systems that do not have a reference 
implementation (as Documentary ones do).</p>
<p>The fourth field is &quot;Status,&quot; which specifies the status of the TEP.
A TEP status can either be &quot;Draft,&quot; which means it is a work in 
progress, &quot;Final,&quot; which means it is complete and will not change,
or &quot;Obsolete,&quot; which means it should no longer be considered. If a TEP
is &quot;Obsolete&quot; because it has been replaced by another TEP, then
the new TEP number should follow &quot;Obsolete,&quot; such as &quot;Obsolete by
TEP 1231.&quot;</p>
<p>If a TEP is Best Current Practices or Documentary, then it MUST include
an additional field, &quot;TinyOS-Version:,&quot; which states what 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.</p>
<p>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).</p>
<p>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 states when it was last modified. Draft-Version
specifies the version of the draft, which MUST increase every time a
modification is made. Draft-Discuss specifies the email address of a
mailing list where the draft is being discussed. Final and Obsolete
TEPs MUST NOT have these fields, which are for Drafts only.</p>
</div>
<div class="section" id="tep-body">
<h2><a name="tep-body">3.2 TEP Body</a></h2>
<p>The first element of the TEP body MUST be the title of the document. 
A TEP SHOULD follow the title with an Abstract, which gives a brief
overview of the content of the TEP. Longer TEPs MAY, after the Abstract,
have a Table of Contents. After the Abstract and Table of Contents
there SHOULD be an Introduction, stating the problem the TEP seeks to
solve and providing needed background information.</p>
<p>If a TEP is Documentary, it MUST have a section entitled &quot;Implementation,&quot;
which instructs the reader how to obtain the implementation documented.</p>
<p>If a TEP is Best Current Practices, it MUST have a section entitled
&quot;Reference,&quot; which points the reader to a reference use of the practices.</p>
<p>The last section of a TEP (but before references, if there are any),
entitled &quot;Author's Address&quot; or &quot;Author's Addresses&quot; MUST contain detailed 
author contact information.</p>
</div>
</div>
<div class="section" id="reference">
<h1><a name="reference">4. Reference</a></h1>
<p>The reference use of this document is TEP 1 (itself).</p>
</div>
<div class="section" id="acknowledgments">
<h1><a name="acknowledgments">5. Acknowledgments</a></h1>
<p>The definitions of the compliance terms are a direct copy of definitions 
taken from IETF RFC 2119.</p>
</div>
<div class="section" id="author-s-address">
<h1><a name="author-s-address">6. Author's Address</a></h1>
<div class="line-block">
<div class="line">Philip Levis</div>
<div class="line">467 Soda Hall</div>
<div class="line">UC Berkeley</div>
<div class="line">Berkeley, CA 94720</div>
<div class="line"><br /></div>
<div class="line">phone - +1 510 290 5283</div>
<div class="line"><br /></div>
<div class="line">email - <a class="reference" href="mailto:pal&#64;cs.berkeley.edu">pal&#64;cs.berkeley.edu</a></div>
</div>
</div>
<div class="section" id="citations">
<h1><a name="citations">7. Citations</a></h1>
<table class="citation" frame="void" id="rst" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1" name="rst">[rst]</a></td><td>reStructuredText Markup Specification. &lt;<a class="reference" href="http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html">http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html</a>&gt;</td></tr>
</tbody>
</table>
</div>
</div>
<hr class="footer" />
<div class="footer">
<a class="reference" href="tep1.txt">View document source</a>.
Generated on: 2004-10-21 00:17 UTC.
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
</body>
</html>



More information about the Tinyos-beta-commits mailing list