Closed palemieux closed 10 years ago
SHALL and SHALL NOT generally don't appear in W3C specs.
To be clear, it's preferable that specs only use one way of saying things - specially with the most critical of conformance requirements (i.e., MUSTs).
"SHALL" and "SHALL NOT" appear in a number of W3C specifications, e.g. [1]
[1] http://www.w3.org/TR/xmldsig-core1/
Also, RFC 2119 specifically states:
Authors who follow these guidelines
should incorporate this phrase near the beginning of their document:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
RFC 2119.
Since RFC 2119 is specifically cited, the cited text should be verbatim.
Finally, ISO (as well as other SDOs) recommend against using 'must' to 'avoid any confusion between the requirements of a document and external statutory obligations.' [1]
[1] http://isotc.iso.org/livelink/livelink?func=ll&objId=4230456&objAction=browse&sort=subtype
Certainly, specifications SHALL NOT use both MUST and SHALL :)
I'll defer to the other two maintainers, but this gets a "no" vote from me.
Can you be more specific in your 'no' vote, e.g. cite W3C process text or examples where the proposed course of action is not desirable?
I can try. As I stated originally, irrespective of ISO and W3C process, I feel that having "SHALL" encourages use of that word were "MUST" would be used. I think that is dangerous because a lot of people cite RFC2119 but have never read 2119. In addition, the use of the word shall is not as commonly used as must.
The standards that I refer to are the "core" ones to the Web Platform (HTML, DOM, etc.). It might be possible, as you've shown, to find examples in more obscure specs (e.g., xmldigsig). For the core platform, it's important, IMO, to keep terminology as consistent as possible. I feel adding SHALL would add a vector for confusion.
That's just my 2c.
There would likely be a problem with the pubrules checker too. It looks for fairly specific strings. I tried to fix a problem with the copyright statement (it doesn't use an Oxford comma, which makes me insane) and was rebuffed because it would have required a complex modification to pubrules.
On Fri, Oct 3, 2014 at 1:10 PM, Marcos Caceres notifications@github.com wrote:
I can try. As I stated originally, irrespective of ISO and W3C process, I feel that having "SHALL" encourages use of that word were "MUST" would be used. I think that is dangerous because a lot of people cite RFC2119 but have never read 2119. In addition, the use of the word shall is not as commonly used as must https://www.google.ca/trends/explore#q=shall%2C%20must&cmpt=q.
The standards that I refer to are the "core" ones to the Web Platform (HTML, DOM, etc.). It might be possible, as you've shown, to find examples in more obscure specs (e.g., xmldigsig). For the core platform, it's important, IMO, to keep terminology as consistent as possible. I feel adding SHALL would add a vector for confusion.
That's just my 2c.
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-57832669.
Shane McCarron halindrome@gmail.com
I ran [1] through pubrules and no errors/warnings were issued against "SHALL"/"SHALL NOT".
[1] http://www.w3.org/TR/xmldsig-core1/
So it looks like we are clear there.
Huh - thanks for checking.
On Fri, Oct 3, 2014 at 5:51 PM, palemieux notifications@github.com wrote:
I ran [1] through pubrules and no errors/warnings were issued against "SHALL"/"SHALL NOT".
[1] http://www.w3.org/TR/xmldsig-core1/
So it looks like we are clear there.
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-57874045.
Shane McCarron halindrome@gmail.com
P.S.: One approach could be to have a default "keywords" statement that could be overridden as a configuration option.....
ReSpec is a tool, and the (primary) target audience is the W3C. I think the smart thing to do here is loop in IanJ and whomever else are in the publication process loop and get their perspective.
P.S. As an old school ANSI / IEEE / ISO standards author, I prefer to use SHALL and SHALL NOT, so it's not like I disagree with the general sentiment. But this isn't about what we as editors want. There are other important players in this mix.
On Fri, Oct 3, 2014 at 10:44 PM, palemieux notifications@github.com wrote:
P.S.: One approach could be to have a default "keywords" statement that could be overridden as a configuration option.....
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-57893678.
Shane McCarron halindrome@gmail.com
I'm fine with it being an optional pref. as this is not a process question, involving IanJ is probably not worth the trouble. In context, this is adding 2 words to a section of a doc that no one reads.
Okay. conf.include2119SHALL ?
On Sat, Oct 4, 2014 at 7:34 AM, Marcos Caceres notifications@github.com wrote:
I'm fine with it being an optional pref. as this is not a process question, involving IanJ is probably not worth the trouble. In context, this is adding 2 words to a section of a doc that no one reads.
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-57903844.
Shane McCarron halindrome@gmail.com
maybe, allRFC2119
.
What we should actually do is not take a political stance on this. We should build that particular part of the spec based on the RFC2119 keywords actually used in the document. Respec already autofinds those words when they appear in capital.
So, if you only ever use MUST, then it should just say:
The key word(s) "MUST" in this document are/is to be interpreted as described in RFC 2119.
And so on... the above could be made to deal with singular uses and multiple uses of words. Then groups are free to use SHALL or any other word if that is convention in their community.
SHALL and SHALL NOT were deliberately removed, I wouldn't recommend adding them back.
The reason for their removal is that they bring nothing to the table while at the same time being more confusing, notably to non-native speakers. A number of tools that currently process W3C specifications (e.g. to find testable assertions, evaluate coverage) rely on MUST/SHOULD and don't know about SHALL. SHALL sounds like something given to you on a stone tablet.
Note that we're under no obligation to use all of RFC2119.
I understand that some W3C specifications have chosen to not use "SHALL". Other W3C specifications use "SHALL". Unless/until W3C process forbids the use of "SHALL", I do not believe it is reasonable for a W3C tool to forbid it.
What is the downside to making "SHALL" an opt-in option?
I like @marcoscaceres suggestion of building the section based on actual RFC2119 terms used in the document. While some editors/groups may prefer not to use SHALL, they are allowed in RFC2119 so it is not unreasonable that they be used, unless W3M takes a different position.
Yeah I like the idea of auto-generating the list of terms that are actually in the document.
On Mon, Oct 6, 2014 at 11:43 AM, Gregg Kellogg notifications@github.com wrote:
I like @marcoscaceres https://github.com/marcoscaceres suggestion of building the section based on actual RFC2119 terms used in the document. While some editors/groups may prefer not to use SHALL, they are allowed in RFC2119 so it is not unreasonable that they be used, unless W3M takes a different position.
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58047216.
Shane McCarron halindrome@gmail.com
Ok, let's resolve to implement generating from what is in the actual document. What we can do later is add a "Web Platform Linter" that can warn about "SHALL" for that particular community as per @darobin's comments. That should address everyone's concerns.
Okay. I created a branch for it. I will get it implemented tonight probably.
On Mon, Oct 6, 2014 at 4:48 PM, Marcos Caceres notifications@github.com wrote:
Ok, let's resolve to implement generating from what is in the actual document. What we can do later is add a "Web Platform Linter" that can warn about "SHALL" for that particular community as per @darobin https://github.com/darobin's comments. That should address everyone's concerns.
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58105459.
Shane McCarron halindrome@gmail.com
Took me a little longer - day job got in the way. There is a patch up in w3c/respec branch patch-345. Take a look and see what you think.
On Mon, Oct 6, 2014 at 5:02 PM, Shane McCarron halindrome@gmail.com wrote:
Okay. I created a branch for it. I will get it implemented tonight probably.
On Mon, Oct 6, 2014 at 4:48 PM, Marcos Caceres notifications@github.com wrote:
Ok, let's resolve to implement generating from what is in the actual document. What we can do later is add a "Web Platform Linter" that can warn about "SHALL" for that particular community as per @darobin https://github.com/darobin's comments. That should address everyone's concerns.
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58105459.
Shane McCarron halindrome@gmail.com
Shane McCarron halindrome@gmail.com
Nice! Can you send it as a PR? I tried to review it, but it won't let me comment on your code :(
This change is now in production - looks good!
On Tue, Oct 7, 2014 at 6:40 PM, Marcos Caceres notifications@github.com wrote:
Nice! Can you send it as a PR? I tried to review it, but it won't let me comment on your code :(
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58280852.
Shane McCarron halindrome@gmail.com
Great work @halindrome! You rock-n-roller! :D
Nice! Small nit perhaps: "SHALL NOT" appears twice at [1]
[1] https://dvcs.w3.org/hg/ttml/raw-file/72d5d67f1bcd/ttml-ww-profiles/ttml-ww-profiles.source.html
Operator error?
Yikes! also yikes, that document is not loading / processing respec when I load it. I will look right away.
On Thu, Oct 9, 2014 at 10:45 AM, palemieux notifications@github.com wrote:
Nice! Small nit perhaps: "SHALL NOT" appears twice at [1]
[1] https://dvcs.w3.org/hg/ttml/raw-file/72d5d67f1bcd/ttml-ww-profiles/ttml-ww-profiles.source.html
Operator error?
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58529648.
Shane McCarron halindrome@gmail.com
The document not loading is expected because:
"Blocked loading mixed active content "http://www.w3.org/Tools/respec/respec-w3c-common""
Yeah, I see that. I expect I need to normalize the content to ensure there is no extra whitespace. I thought that was done already, but it is probably only for definitions.
On Thu, Oct 9, 2014 at 11:32 AM, Marcos Caceres notifications@github.com wrote:
The document not loading is expected because:
"Blocked loading mixed active content " http://www.w3.org/Tools/respec/respec-w3c-common""
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58537032.
Shane McCarron halindrome@gmail.com
@palemieux can you please update your document to:
<script src='//www.w3.org/Tools/respec/respec-w3c-common'>
(i.e., drop the protocol)
Reopening to ensure that whitespace is normalized so that there are no duplicate entries in the list of keywords.
@marcoscaceres The script does not load locally if the <script> element is changed as proposed. Thoughts? Note that a rendered version of the document is generated at every commit, so the typical reader should not run into origin issues.
[1] https://dvcs.w3.org/hg/ttml/raw-file/72d5d67f1bcd/ttml-ww-profiles/ttml-ww-profiles.html
Yeah that's a good point. What if you put https at the front?
On Thu, Oct 9, 2014 at 11:58 AM, palemieux notifications@github.com wrote:
@marcoscaceres https://github.com/marcoscaceres The script does not load locally if the
— Reply to this email directly or view it on GitHub https://github.com/w3c/respec/issues/345#issuecomment-58541250.
Shane McCarron halindrome@gmail.com
yeah, then just put https on the front. I run a local web server while doing stuff locally. It's good practice to do that, as with all the mixed-content rules on the web nowadays, it can be easy to overlook stuff.
In the conformance section, the keyword boilerplate does not match RFC 2119. Specifically, the keywords "SHALL" and "SHALL NOT" are missing.
" The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119."