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

Mary Barnes <mary.ietf.barnes@gmail.com> Wed, 13 October 2010 19:12 UTC

Return-Path: <mary.ietf.barnes@gmail.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 49D853A69D8 for <sipcore@core3.amsl.com>; Wed, 13 Oct 2010 12:12:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.499
X-Spam-Level:
X-Spam-Status: No, score=-102.499 tagged_above=-999 required=5 tests=[AWL=0.100, 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 RhnCx0VdZ2GB for <sipcore@core3.amsl.com>; Wed, 13 Oct 2010 12:12:00 -0700 (PDT)
Received: from mail-iw0-f172.google.com (mail-iw0-f172.google.com [209.85.214.172]) by core3.amsl.com (Postfix) with ESMTP id 1D59B3A69FB for <sipcore@ietf.org>; Wed, 13 Oct 2010 12:12:00 -0700 (PDT)
Received: by iwn10 with SMTP id 10so8233097iwn.31 for <sipcore@ietf.org>; Wed, 13 Oct 2010 12:13:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=a9bpsk5TPj0q3BkqdaVo4tzJHJVqkW/cpoQ/W2ZBuE0=; b=bB1uXm9Cy9Nea8AWflgPiOwWkoZEBZAKl8PZCt71QY2Bl/asd946Q3h8vTuiLp1xfp l22Z3AeaWGGIdQ+dm1RI68IHxvSirqld+fe+oF+9N//1kUuLF9qE2APbhOyazBvliVkq 6D7D2AUPBvI9CD4E1Iy3WOrH45Y/GT77DKXHs=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=KbdmHNjM9Er+QMM5r6PLHFbeRa/wM75yWJn8r3rwvenUxuhMHNyXoVSsPgC3Lj73C/ UiyayNovrgSs+/ks15aQcJ41TenhCadXTYCNja+/fX2uN40681wM1scfEezBKjickjYr rRV4eykHg8ZYVqbKxmnmZKpAOYJZJYpNLaFXQ=
MIME-Version: 1.0
Received: by 10.42.153.4 with SMTP id k4mr4279790icw.195.1286997195100; Wed, 13 Oct 2010 12:13:15 -0700 (PDT)
Received: by 10.236.108.172 with HTTP; Wed, 13 Oct 2010 12:13:14 -0700 (PDT)
In-Reply-To: <A444A0F8084434499206E78C106220CA01C48DAEED@MCHP058A.global-ad.net>
References: <064.423b18aea4d865d80f1bed80de0120f0@tools.ietf.org> <4C7C0F6E.6000508@softarmor.com> <7796EC5A-2504-49A4-BA2A-BFEEC4076AF8@acmepacket.com> <4C7C1A70.8070807@cisco.com> <AANLkTikCWW9TRcYJZv2tgzNw6OP_9O+5OSTtkNinTKGc@mail.gmail.com> <4C7C393A.5090707@cisco.com> <A444A0F8084434499206E78C106220CA01C48DAEED@MCHP058A.global-ad.net>
Date: Wed, 13 Oct 2010 14:13:14 -0500
Message-ID: <AANLkTi=1SjGYDuBGJNZZ8+gdMbCrJMzMbeoummt0SXQd@mail.gmail.com>
From: Mary Barnes <mary.ietf.barnes@gmail.com>
To: "Elwell, John" <john.elwell@siemens-enterprise.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: "sipcore@ietf.org" <sipcore@ietf.org>, sipcore issue tracker <trac@tools.ietf.org>, Hadriel Kaplan <HKaplan@acmepacket.com>
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: Wed, 13 Oct 2010 19:12:02 -0000

I didn't originally like this idea. However, as I've started making
these changes, I do think it works quite well. We didn't always have
the situation whereby the SHOULD would not apply documented, thus the
MUST is often more appropriate.

Mary.

On Wed, Sep 1, 2010 at 2:01 AM, Elwell, John
<john.elwell@siemens-enterprise.com> wrote:
>  I tend to agree with Paul. If we say that whenever there are conditions you should use SHOULD rather than MUST, you will end up with very few MUSTs, since nearly every normative statement has some conditions behind it (either as part of the statement or implicit in what has gone before). I think we can probably make a distinction on whether those conditions can be clearly specified, or whether they are by their nature vague. For example, "SHOULD challenge for digest authentication, unless the recipient has other means of ascertaining the source of the request", versus "MUST challenge for digest authentication unless the request has been delivered over TLS".
>
> John
>
>> -----Original Message-----
>> From: sipcore-bounces@ietf.org
>> [mailto:sipcore-bounces@ietf.org] On Behalf Of Paul Kyzivat
>> Sent: 31 August 2010 00:06
>> To: Mary Barnes
>> Cc: sipcore@ietf.org; sipcore issue tracker; Hadriel Kaplan
>> Subject: Re: [sipcore] #10: Convert all SHOULDs to MUST
>>
>>
>>
>> Mary Barnes wrote:
>> > We ended up changing alot of 4244 SHOULDs to MUSTs.  However, my
>> > understanding on the use of MUSTs was that they shouldn't have
>> > qualifiers. It's the SHOULDs that should have the qualifiers that
>> > describe the circumstances under which it's okay not to do
>> the SHOULD.
>> >  So, I would prefer to keep the SHOULDs where we have valid
>> > circumstances for not doing the should, but otherwise they should be
>> > MUSTs (with no "unless...")  [If that makes any sense at all]. I'm
>> > basing this on the text straight from RFC 2119:
>>
>> "MUST foo unless condition" is semantically equivalent to "if
>> !condition
>> then MUST foo". I'm pretty sure there is nothing wrong with
>> the latter.
>> As a result there shouldn't be anything wrong with the former either,
>> but we can choose the preferred wording just to avoid making waves.
>>
>> So, something like "Unless the SSP anonymizes all calls it
>> MUST support
>> temp GRUU".
>>
>> > 1. MUST   This word, or the terms "REQUIRED" or "SHALL",
>> mean that the
>> >    definition is an absolute requirement of the specification.
>> > ...
>> >
>> > 3. SHOULD   This word, or the adjective "RECOMMENDED", 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.
>>
>> The distinction is understood, and still vague. Reasonable
>> people differ
>> greatly in what constitutes a "valid reason" even if they
>> have carefully
>> understood and weighed the full implications.
>>
>> In practice it seems that many implementors treat SHOULD the same as
>> MAY. And if they do, how can they be proven wrong?
>>
>> I'm not quite ready (though tempted) to give up on SHOULD
>> entirely. But
>> I think the WG *SHOULD* have a *really* good reason for using SHOULD
>> rather than MUST.
>>
>>       Thanks,
>>       Paul
>>
>> > Mary.
>> >
>> > On Mon, Aug 30, 2010 at 3:54 PM, Paul Kyzivat
>> <pkyzivat@cisco.com> wrote:
>> >> [ as individual, for now ]
>> >>
>> >> Hadriel Kaplan wrote:
>> >>> Right, I didn't mean just make them MUST without
>> qualifiers - "MUST ...
>> >>> unless ..." is fine.
>> >> MUST ... unless
>> >>
>> >> is equivalent to using SHOULD and naming the only
>> exceptions to conforming
>> >> with the SHOULD. Using SHOULD ... unless would still run
>> the risk that
>> >> somebody would say the SHOULD still allows violation for
>> arbitrary reasons.
>> >>
>> >> So I agree that MUST ... unless is preferable to SHOULD.
>> >>
>> >>        Thanks,
>> >>        Paul
>> >>
>> >>> -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
>> >>> _______________________________________________
>> >>> sipcore mailing list
>> >>> sipcore@ietf.org
>> >>> https://www.ietf.org/mailman/listinfo/sipcore
>> >>>
>> >> _______________________________________________
>> >> sipcore mailing list
>> >> sipcore@ietf.org
>> >> https://www.ietf.org/mailman/listinfo/sipcore
>> >>
>> >
>> _______________________________________________
>> sipcore mailing list
>> sipcore@ietf.org
>> https://www.ietf.org/mailman/listinfo/sipcore
>>