Re: suggested revision for MUST/SHOULD

DRUMS WG Chair <chris.newman@innosoft.com> Thu, 27 July 2000 20:39 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 QAA28659 for <drums-archive@odin.ietf.org>; Thu, 27 Jul 2000 16:39:02 -0400 (EDT)
Received: from localhost (daemon@localhost) by cs.utk.edu with SMTP (cf v2.9s-UTK) id QAA04863; Thu, 27 Jul 2000 16:38:46 -0400 (EDT)
Received: by cs.utk.edu (bulk_mailer v1.13); Thu, 27 Jul 2000 16:38:45 -0400
Received: by cs.utk.edu (cf v2.9s-UTK) id QAA04845; Thu, 27 Jul 2000 16:38:44 -0400 (EDT)
Received: from mercury.Sun.COM (marvin@localhost) by cs.utk.edu with ESMTP (cf v2.9s-UTK) id QAA04831; Thu, 27 Jul 2000 16:38:42 -0400 (EDT)
Received: from mercury.Sun.COM (192.9.25.1 -> mercury.Sun.COM) by cs.utk.edu (smtpshim v1.0); Thu, 27 Jul 2000 16:38:42 -0400
Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA07941 for <drums@cs.utk.edu>; Thu, 27 Jul 2000 13:38:40 -0700 (PDT)
Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL, v1.7) with ESMTP id NAA09953 for <drums@cs.utk.edu>; Thu, 27 Jul 2000 13:38:35 -0700 (PDT)
Date: Thu, 27 Jul 2000 13:38:03 -0700
From: DRUMS WG Chair <chris.newman@innosoft.com>
To: drums@cs.utk.edu
Subject: Re: suggested revision for MUST/SHOULD
Message-ID: <5962888.3173693883@nifty-jr.west.sun.com>
In-Reply-To: <200007271515.LAA17836@astro.cs.utk.edu>
X-Mailer: Mulberry/2.0.3 (MacOS)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
List-Unsubscribe: <mailto:drums-request@cs.utk.edu?Subject=unsubscribe>
Content-Transfer-Encoding: 7bit

If you support Keith's proposed wording change, please speak up now.

If three people (in addition to Keith) express support, the issue will be 
open for objections and debate.  Otherwise we will keep the current wording 
in draft 12.

		- DRUMS WG Chair

--On Thursday, July 27, 2000 11:15 -0400 Keith Moore <moore@cs.utk.edu> 
wrote:
> 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
>