Closed msporny closed 3 years ago
We may find it helpful to review / agree to https://github.com/w3c/did-core/pull/600 before attempting further changes here.
There are also a few bugs fixed in this version (such as stating that a contentType must be specified for the resolve call
@msporny Where does the current text state that?
@msporny thanks for this new PR, I agree with a lot of changes, but am also confused by some others. Maybe it would be simpler to break this up into multiple PRs so they are easier to review?
This PR is not easy to review.. There are many many changes, most of which have nothing to do with the title of the PR (make resolution concrete and testable).
@OR13 wrote:
As long as we can agree to at least one testable resolution function which returns json / cbor I am good, I don't care what we call it.
At present, I believe both resolve
and resolveRepresentation
are testable. resolve
is now testable because we say you must be able to express didDocument
(which is a map) in a representation. resolveRepresentation
is testable because it returns a representation.
I believe I have addressed all of your concerns, @OR13 (and merged your change suggestions).
@rhiaro, @TallTed, and @peacekeeper, I believe I've addressed all of your concerns (and merged your change suggestions).
@jricher, I merged the majority of your change suggestions. There are three changes that I didn't apply with reasoning on why each one didn't go in. Please re-review and let us know if the current state of the PR works for you.
@jricher, I merged the majority of your change suggestions. There are three changes that I didn't apply with reasoning on why each one didn't go in. Please re-review and let us know if the current state of the PR works for you.
I believe we have discussed all of your concerns with the current PR @jricher, and while you think some of these changes weaken the specification and/or are unnecessary, you would not object to the PR if it was merged at this time. Can you please confirm this so I can merge the PR?
@msporny My concerns have been noted and discussed, and I disagree with the conclusions and solutions to those concerns that are part of this PR. That said my opinion is just one of many in the working group, and so I am not attempting to block this pull request with just my own stance, regardless of how and why I disagree.
@msporny My concerns have been noted and discussed, and I disagree with the conclusions and solutions to those concerns that are part of this PR. That said my opinion is just one of many in the working group, and so I am not attempting to block this pull request with just my own stance, regardless of how and why I disagree.
Acknowledged, thank you.
I am going to pull this PR in with the following caveat -- we still have a few weeks left to improve this section if anyone has a better idea on how to strike the abstract/testable balance. There are also legitimate concerns about the Representation sections and how they apply to some of the language in this PR that needs to be addressed; are they about serializing DID Documents only, or any data expressed using the ADM? We're almost certainly headed for a 2nd PR... I've never seen a specification with 130+ machine-testable normative statements get it right the first time -- but we're going to try. This PR addresses all the outstanding testability concerns with the Resolution section, but in a way that causes almost all of us heartburn... so if anyone has any better ideas in the meantime, please feel free to raise a PR -- the worst that can happen is that the group decides to not take it up before CR.
Normative, multiple reviews via #587, #591, #592, and #601, changes requested and made, remaining objections are non-blocking, merging with caveat in https://github.com/w3c/did-core/pull/601#issuecomment-777092645.
This PR is intended to address issue #549 by adding to the abstract functions discussed in the DID Resolution and DID URL Dereferencing sections and ensuring that all statements are testable using a "proof by construction". That is, all statements that return abstract data models are testable due to additional normative statements that effectively state: "anything that returns an abstract data model MUST be serializable in one of the representations". Previously, that statement didn't apply to
didDocument
, the metadata structure, some of the dereferencing values, etc. This PR fixes that.The PR also adds at-risk markers to some of the newer features requested by individuals (but not necessarily broadly requested by the WG -- such as nextUpdate, nextVersionId, equivalentId, and canonicalId. There are also a few bugs fixed in this version (such as stating that a contentType must be specified for the resolve call -- that returns an abstract didDocument... which is clearly wrong).
There are a LOT of reformatting changes in this PR, it might be best to look at the rendered preview for this PR.
Preview | Diff