suggested revision for MUST/SHOULD
Keith Moore <moore@cs.utk.edu> Thu, 27 July 2000 15:15 UTC
Received: from cs.utk.edu (CS.UTK.EDU [128.169.94.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id LAA14556 for <drums-archive@odin.ietf.org>; Thu, 27 Jul 2000 11:15:26 -0400 (EDT)
Received: from localhost (daemon@localhost) by cs.utk.edu with SMTP (cf v2.9s-UTK) id LAA04656; Thu, 27 Jul 2000 11:15:07 -0400 (EDT)
Received: by cs.utk.edu (bulk_mailer v1.13); Thu, 27 Jul 2000 11:15:05 -0400
Received: by cs.utk.edu (cf v2.9s-UTK) id LAA04631; Thu, 27 Jul 2000 11:15:04 -0400 (EDT)
Received: from astro.cs.utk.edu (marvin@localhost) by cs.utk.edu with ESMTP (cf v2.9s-UTK) id LAA04605; Thu, 27 Jul 2000 11:15:03 -0400 (EDT)
Received: from astro.cs.utk.edu (128.169.93.168 -> ASTRO.CS.UTK.EDU) by cs.utk.edu (smtpshim v1.0); Thu, 27 Jul 2000 11:15:03 -0400
Received: from astro.cs.utk.edu (LOCALHOST [127.0.0.1]) by astro.cs.utk.edu (cf 8.9.3) with ESMTP id LAA17836; Thu, 27 Jul 2000 11:15:02 -0400 (EDT)
Message-Id: <200007271515.LAA17836@astro.cs.utk.edu>
X-URI: http://www.cs.utk.edu/~moore/
X-PGP-Key: 2F07A741 ; 78 15 8E 8B C0 06 5D D1 BC 08 05 7F 42 81 7E 90
To: drums@cs.utk.edu
Subject: suggested revision for MUST/SHOULD
cc: moore@cs.utk.edu
From: Keith Moore <moore@cs.utk.edu>
Date: Thu, 27 Jul 2000 11:15:02 -0400
Sender: moore@cs.utk.edu
List-Unsubscribe: <mailto:drums-request@cs.utk.edu?Subject=unsubscribe>
this is a very slight rewording; were it not for the controversy
surrounding the subject I would have submitted it to the author
as an editorial change. however I do think a slight bit of
tweaking is worthwhile here.
> The terms "MUST" and "SHOULD" (and "MUST NOT" and "SHOULD NOT") are
> used in the same general sense here as in the Host Requirements
> Standards [RFC-1123]. Specifically, "MUST" or "MUST NOT" identify
> absolute requirements for conformance to this specification.
> Implementations that do not conform to them lie outside the scope of
> this specification. Implementations that are fully conforming also
> adhere to all "SHOULD" and "SHOULD NOT" requirements. Implementations
> that adhere to all "MUST" ("MUST NOT") but not to all of these are
> considered to be partially conforming.
( separate the definitions of "fully" and "partially" conforming
from the text that explains when MUST/SHOULD/etc are used, so that
the latter is clearly distinguished. )
> "MUST" and "MUST NOT" are generally used when the requirement is
> necessary to ensure robust interoperation between conforming
> implementations. "SHOULD" and "SHOULD NOT" are also used to
> describe cases where the requirement is necessary for robust
> interoperation between (fully or partially) conforming
> implementations, but when it is recognized that there may be
> valid reasons for a particular implementation (or a particular
> type of implementation) to not follow the requirement.
> An implementation should violate "SHOULD" or "SHOULD NOT"
> requirements only under exceptional circumstances, and when great
> care has been taken to understand the implications of that choice.
1. suggested text is even more careful to say 'conforming' implementations.
nowhere does it say anything about interoperation between noncomforing
implementations, or between a conforming implementation and a noncomforming
one. so for instance "MUST reject bare LF" does not interfere with
interoperability between conforming implementations.
2. says that MUST/SHOULD are "generally" used when needed for
interoperation...to allow room for other good reasons to use them.
3. slight rewording of when to violate SHOULD
> In some cases this document imposes "MUST" and/or "SHOULD"
> requirements which deviate from a significant body of current practice
> at the time of this writing. In such cases these requirements are
> imposed when experience indicates that following such requirements
> is likely to lead, in practice, to better interoperation, or
> smoother operation of the Internet email infrastructure. Though
> this document does attempt to ensure that (fully or partially)
> implementations of this specification will interoperate with
> (fully or partially) conforming implementations of its predecessors,
> it does not attempt to legitimize common deviations from those
> specifications, and it does impose new requirements. Existing
> implementations of SMTP will need some changes if they are to
> conform to this new specification.
separate paragraph to explain use of MUST/SHOULD which deviates
from current practice (since this seems to be a common source of
confusion). the stuff about "not legitimizing common deviations"
and "we didn't try to write the spec so that existing implementations
would automatically be conforming" might be a bit over the top, or
it might be better placed elsewhere, but again, it does seem to be
a common source of confusion.
> Statements using "MAY" describe features or styles of doing things that
> may be followed, or not, at the discretion of the implementation,
> normally without causing significant interoperability problems.
Keith
- Re: suggested revision for MUST/SHOULD Maurizio Codogno
- suggested revision for MUST/SHOULD Keith Moore
- Re: suggested revision for MUST/SHOULD DRUMS WG Chair
- Re: suggested revision for MUST/SHOULD Bart Schaefer
- Re: suggested revision for MUST/SHOULD Michael Scharff
- Re: suggested revision for MUST/SHOULD DRUMS WG Chair
- Re: suggested revision for MUST/SHOULD D. J. Bernstein
- Re: suggested revision for MUST/SHOULD Eric S. Raymond
- Re: suggested revision for MUST/SHOULD Paul Hoffman / IMC
- 2nd suggested revision for MUST/SHOULD Keith Moore
- Re: suggested revision for MUST/SHOULD DRUMS WG Chair
- Re: suggested revision for MUST/SHOULD Russ Allbery
- Re: suggested revision for MUST/SHOULD DRUMS WG Chair