-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Normative statements review #384
Comments
On the special topic call, we discussed how we might start breaking these down into assertions, inputs, outputs, etc... I think the next major action items are as follows: Get the WG to comment on proceeding with these tests.... Merge https://github.com/OR13/did-core-tests Setup CI, add some more realistic scenarios. |
4.2 RepresentationsIn the spreadsheet, comment on 4.2 Representations statements was "Move this to a "Guidance for Authors of Representation Specifications" section." (I'm not sure by who - probably @kdenhartog? - and +1ed by @msporny). But if we move these out there's nothing left in that section any more. My take is that the normative language is fine, we just have to treat it like the DID methods normative language - this is a checklist for anyone vetting by hand an implementation of a new representation (though when/where this vetting happens I'm not sure - nothing in Registries for representations afaik). But if that doesn't make sense, I propose to leave it where it is but adjust to use non-normative language. Let me know. |
5.3 Verification methodsSpreadsheet feedback from @kdenhartog:
I agree with your reading that the value of
I actually think these are two distinct statements, the first aimed at publishers and the second aimed at consumers, though I agree they're getting at the same basic premise. If we only use the latter though, there's no normative statement to test whether a DID doc producer produces the error, only if a consumer catches it correctly. |
…are more explicit in subsequent sentences) towards #384
Removes duplicate normative statements in introductory text in favour of more precise statements in the paragraphs which follow in the JSON and JSON-LD representation sections. Also fixes some spacing and formatting.
Normative requirements about dereferencing and and hashing contents of @context URIs are requirements on a producer rather than a consumer, so these statements have been moved accordingly. (#384) Also removes normative language around conforming to JSON-LD production rules as this is not a requirement on the consumer, but advisory.
Normative requirements about dereferencing and and hashing contents of @context URIs are requirements on a producer rather than a consumer, so these statements have been moved accordingly. (#384) Also removes normative language around conforming to JSON-LD production rules as this is not a requirement on the consumer, but advisory.
Removes redundant/untestable intro normative language. Also makes references to the Registries consistent with the rest of the spec by saying "SHOULD be registered in" rather than "are defined in". (#384)
…rity Considerations to Methods (#384) and fix spacing
PRs in for the rest of these, except the CBOR section which has completely changed and needs re-review. Question for method schemes as yet unresolved:
What is "as possible"? This isn't even human-testable really. Does rephrasing to say something like "each additional method-specific-id format MUST be justified in the Method spec" make sense? This can at least by eyeballed by a human reading the Method spec. |
are we required to test |
…are more explicit in subsequent sentences) towards #384
Removes redundant/untestable intro normative language. Also makes references to the Registries consistent with the rest of the spec by saying "SHOULD be registered in" rather than "are defined in". (#384)
…rity Considerations to Methods (#384) and fix spacing
Removes duplicate normative statements in introductory text in favour of more precise statements in the paragraphs which follow in the JSON and JSON-LD representation sections. Also fixes some spacing and formatting.
Normative requirements about dereferencing and and hashing contents of @context URIs are requirements on a producer rather than a consumer, so these statements have been moved accordingly. (#384) Also removes normative language around conforming to JSON-LD production rules as this is not a requirement on the consumer, but advisory.
This should be up to the DID method, doesn't make sense to constrain it as it is internal to DID method (no affect on interop); and "as possible" is not testable. See #384"
Addressing this issue requires tests to be written. Ideally we will have ample test coverage before CR. |
As stated in https://w3c.github.io/did-core/#conformance , "As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative." Therefore, there are many many normative statements in the spec that do not use RFC 2119 language. Our tests should therefore test important normative statements not using RFC 2119 language as well as those that do. |
In order that such normative statements are easily detectable, I propose we switch them to use RFC2119 language. If anyone spots statements they believe to be normative which do not use RFC2119 language, please note them in this issue. (This will also help with notifying people who are writing tests, otherwise we can't guarantee we're going to get them all.) |
Should we also update the conformance portion of the specification to state only usage of RFC2119 language should be considered a normative statement as well? |
Please see new IETF normative doc: https://tools.ietf.org/html/rfc8174 Specifically:
|
Yes, and the DID Core specification has followed RFC8174 guidance (and uses the suggested text) for a while now, see second paragraph in the section on Conformance here: https://w3c.github.io/did-core/#conformance Unless I'm missing something, @rhiaro @kdenhartog @jricher -- I think we're good? |
That's good enough for me |
PR #526 has been raised to deal with this issue. When that PR is merged, this issue will be closed. |
PR #526 has been merged, closing. |
I used a respec extension to pull out all the normative statements from the spec. They are listed here, with a note about their testability (if empty, assume it's automatically testable afaik), and proposals for changes to some.
Changes are to remove redundancy (it's not good to have more than one normative statement for the same feature, especially in different sections of the spec, and especially if the wording is different such that it might introduce ambiguity); to move statements to more appropriate sections; or to remove normative language where it's not needed (eg. doesn't make sense in terms of something for concrete implementations to follow).
Changes are not to alter the intent of the wording spec in a normative way that would actually require implementation changes. If there is a normative statement that you disagree with the content or existence (rather than clarity, location or structure) of, please raise that in a new issue (and check for existing issues) rather than commenting here.
I will start a series of PRs for the proposed changes and keep track of them here too.
The main purpose of this is to help with the test suite development.
Something being "not automatically testable" is fine - just means the implementer asserts that it is true. "Not testable" at all, is a problem.
Please comment if there are any further changes you would like to see to normative statements, or if you disagree with any of my proposed changes, or if you notice I've missed one.
@context
MUST NOT be used as this property is reserved for JSON-LD producers.@context
object member MUST be ignored as this is reserved for JSON-LD consumers.@context
would just be another 'unknown' property in this case - no need to call it out in particular?@context
property.@context
property MUST be one or more URIs, where the value of the first URI is https://www.w3.or/ns/did/v1.@context
property MUST exist be in the DID properties extension registry.@context
property MUST be one or more URIs, where the value of the first URI is https://www.w3.org/ns/did/v1.The text was updated successfully, but these errors were encountered: