Skip to content
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

Change query support requirement from MUST to SHOULD for properties with support level SHOULD #319

Open
rartino opened this issue Sep 24, 2020 · 3 comments

Comments

@rartino
Copy link
Contributor

rartino commented Sep 24, 2020

From a call discussion:

We have a number of properties where the query support is marked as MUST, whereas support for the property itself is marked as SHOULD.

The consensus on the call was that this is a specification bug that should be fixed in the next minor release by lowering the requirement level on queries on those properties to SHOULD.

@merkys
Copy link
Member

merkys commented Sep 29, 2020

I am trying to remember/understand what we meant by using such combination of requirement levels (#210 seems to introduce them). Having OPTIONAL property support with REQUIRED (=MUST) query support makes certain sense:

  • If an implementation supports a property, then it MUST support queries on it;
  • If an implementation does not support a property, then it MUST treat it as having unknown values and MUST support filtering on that as described in section "Filtering on Properties with an unknown value".

Take nsites for example. Specification says:

Support: SHOULD be supported by all implementations, i.e., SHOULD NOT be :val:null.
Query: MUST be a queryable property with support for all mandatory filter features.

Thus if we (i.e., the COD) want to include non-null values for nsites, we also MUST make them queryable using numeric and other filters. If we cannot (and we do not right now), we MUST NOT include non-null values for nsites. While this paradoxically discourages a provider to include a valuable piece of information, it ensures client developers that if an implementation returns a non-null value for such property, this implementation will support meaningful queries for the property in question.

@rartino
Copy link
Contributor Author

rartino commented Sep 29, 2020

@merkys I think what you write could be a rationale for support at SHOULD level + query at MUST level. But are we not in agreement that not preventing implementations from including useful data in responses outweighs the usefulness that you describe for clients? SHOULD anyway means we strongly encourage inclusion. When (if) we implement 'feature sets' #91, I would suggest the first level raises all these SHOULDs to MUSTs.

@merkys
Copy link
Member

merkys commented Sep 29, 2020

@merkys I think what you write could be a rationale for support at SHOULD level + query at MUST level. But are we not in agreement that not preventing implementations from including useful data in responses outweighs the usefulness that you describe for clients?

I completely agree with you here. I am just trying to understand the preconditions and severity of this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants