Re: [sipcore] #10: Convert all SHOULDs to MUST

Hadriel Kaplan <HKaplan@acmepacket.com> Mon, 30 August 2010 20:35 UTC

Return-Path: <HKaplan@acmepacket.com>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0C8D43A6839 for <sipcore@core3.amsl.com>; Mon, 30 Aug 2010 13:35:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.428
X-Spam-Level:
X-Spam-Status: No, score=-2.428 tagged_above=-999 required=5 tests=[AWL=0.171, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AvsddXCxwF-B for <sipcore@core3.amsl.com>; Mon, 30 Aug 2010 13:33:15 -0700 (PDT)
Received: from etmail.acmepacket.com (etmail.acmepacket.com [216.41.24.6]) by core3.amsl.com (Postfix) with ESMTP id 63CF73A6874 for <sipcore@ietf.org>; Mon, 30 Aug 2010 13:31:28 -0700 (PDT)
Received: from mail.acmepacket.com (216.41.24.7) by etmail.acmepacket.com (216.41.24.6) with Microsoft SMTP Server (TLS) id 8.1.375.2; Mon, 30 Aug 2010 16:31:59 -0400
Received: from mail.acmepacket.com ([127.0.0.1]) by mail ([127.0.0.1]) with mapi; Mon, 30 Aug 2010 16:31:40 -0400
From: Hadriel Kaplan <HKaplan@acmepacket.com>
To: Dean Willis <dean.willis@softarmor.com>
Date: Mon, 30 Aug 2010 16:31:38 -0400
Thread-Topic: [sipcore] #10: Convert all SHOULDs to MUST
Thread-Index: ActIgllDtC9PTfuFQIGdkS+RX/ZWOw==
Message-ID: <7796EC5A-2504-49A4-BA2A-BFEEC4076AF8@acmepacket.com>
References: <064.423b18aea4d865d80f1bed80de0120f0@tools.ietf.org> <4C7C0F6E.6000508@softarmor.com>
In-Reply-To: <4C7C0F6E.6000508@softarmor.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "sipcore@ietf.org" <sipcore@ietf.org>, sipcore issue tracker <trac@tools.ietf.org>
Subject: Re: [sipcore] #10: Convert all SHOULDs to MUST
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Aug 2010 20:39:07 -0000

Right, I didn't mean just make them MUST without qualifiers - "MUST ... unless ..." is fine.

-hadriel

On Aug 30, 2010, at 4:07 PM, Dean Willis wrote:

> On 8/30/2010 1:33 PM, sipcore issue tracker wrote:
>> #10: Convert all SHOULDs to MUST
>> ------------------------------------+---------------------------------------
>>  Reporter:  hkaplan@…               |       Owner:
>>      Type:  enhancement             |      Status:  new
>>  Priority:  major                   |   Milestone:  milestone1
>> Component:  rfc4244bis              |     Version:  2.0
>>  Severity:  In WG Last Call         |    Keywords:
>> ------------------------------------+---------------------------------------
>>  I know this isn't something we have a rule for, but ISTM that "SHOULD" is
>>  a dirty word.  We get into trouble every time we have a SHOULD, and this
>>  draft has a lot of them.  Either it's a MUST, or it's not.  I recommend we
>>  change them all, or at least explain about why they're not MUST.
>> 
> 
> 
> Better yet, every usage of RFC 2119 language (SHOULD, MUST, etc.) MUST 
> contain an explanation of why that particular RFC 2119 keyword was used 
> and and what the consequences of failing to implement according to the 
> specification are. For example, in this case we selected MUST because of 
> the well-known fact that failure to explain requirements in a protocol 
> specification results in lazy implementations that ignore the 
> requirements because the implementers do not understand the implications 
> of having done so. This is exacerbated by having too many RFC 2119 
> requirements statements in general. If the requirements are hard to 
> meet, they should be harder to make; that is, the task of creating such 
> a requirement properly includes thoroughly documenting the requirement.
> 
> There are places where a SHOULD is appropriate, and the semantic is 
> "MUST except when a predicted but infrequent condition, as described 
> herein, is detected".
> 
> So, perhaps we could begin writing SHOULD requirements as "MUST, except 
> when... because .... occurs or may occur if this requirement is not met."
> 
> --
> Dean