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

Dean Willis <dean.willis@softarmor.com> Mon, 30 August 2010 20:06 UTC

Return-Path: <dean.willis@softarmor.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 4A24B3A687C for <sipcore@core3.amsl.com>; Mon, 30 Aug 2010 13:06:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.484
X-Spam-Level:
X-Spam-Status: No, score=-101.484 tagged_above=-999 required=5 tests=[AWL=1.115, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
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 hml6HEq6Qwuz for <sipcore@core3.amsl.com>; Mon, 30 Aug 2010 13:06:58 -0700 (PDT)
Received: from nylon.softarmor.com (nylon.softarmor.com [66.135.38.164]) by core3.amsl.com (Postfix) with ESMTP id 3AB2E3A684D for <sipcore@ietf.org>; Mon, 30 Aug 2010 13:06:58 -0700 (PDT)
Received: from [192.168.2.113] (cpe-66-25-30-183.tx.res.rr.com [66.25.30.183]) (authenticated bits=0) by nylon.softarmor.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id o7UK7QqY019111 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 30 Aug 2010 15:07:27 -0500
Message-ID: <4C7C0F6E.6000508@softarmor.com>
Date: Mon, 30 Aug 2010 15:07:10 -0500
From: Dean Willis <dean.willis@softarmor.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2
MIME-Version: 1.0
To: sipcore issue tracker <trac@tools.ietf.org>
References: <064.423b18aea4d865d80f1bed80de0120f0@tools.ietf.org>
In-Reply-To: <064.423b18aea4d865d80f1bed80de0120f0@tools.ietf.org>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Cc: sipcore@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:06:59 -0000

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