-
Notifications
You must be signed in to change notification settings - Fork 0
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
RFC for moving some elements to utility profile #31
base: master
Are you sure you want to change the base?
Conversation
# Motivation | ||
|
||
The main motivation is to make the base specification as simple as possible. In | ||
ever implementation we've created for consuming Refract, such as from the Parse |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor typo
In ever implementation...
In every implementation.
I am not sure this is the reason refract is complex ... |
Furthermore I would love to solve inheritance and mixins as we have solved to do so (and that is why DS namespace has to have its own https://github.com/refractproject/refract-spec/blob/master/namespaces/data-structure-namespace.md#inheritance-and-expanded-element |
Totally agree. But this reduces complexity.
Let's do it :) |
|
||
The main motivation is to make the base specification as simple as possible. In | ||
ever implementation we've created for consuming Refract, such as from the Parse | ||
Result or API Description results, we have not needed to use any of these |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is false statement. We have used in in the Data Structure namespace and since API Description and Parse Result are building on it they are using these elements (albeit indirectly).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This document extends Refract Data Structure Namespace to define REST Resource data structure elements.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note I mention here that we have no needed the values in "consuming" because these elements do not show up. We also have not needed them in the Fury adapter. So while we do need them in this particular namespace, my point is that:
- You could remove them from the base spec
- Build a library that conforms to the base spec
- Still be able to build/consume the structures we're using
The point was to move these out of the spec so that a library conforming to Refract would be smaller, yet still be able to get the job done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BUT I'm all for leaving in the spec as well. That's really the topic of discussion, as to whether they are needed for every possible profile/namespace. If we think so, let's close this RFC.
Note: you @zdne have mentioned we should address inheritance in the base spec, and if so, these element may become more important. So far, we have left the inheritance up to the Data Structure spec, which is really the place these elements are needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will have to support @zdne here. We are using extend
, select
and option
extensively in Data Structure namespace.
@smizell I am not saying the elements being subject of this RFC should remain in the base spec. But if the new namespace is for the data structure namespace (hereafter DSN) only (at this point) I see it as very unfortunate because the way extended is defined caused so many problems in the DSN. Ideally, what I would suggest is:
|
@smizell in the meantime, to provide a solution for the simplification of base spec, lets move |
This proposes we move `extend`, `select`, and `option` from the base | ||
specification to its own profile. | ||
|
||
Note that I'm calling this a "profile" versus a "namespace." This is pending |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since that RFC is merged, please change this paragraph.
@zdne This works for me IF AND ONLY IF this is best for reducing complexity of the base spec while retaining all necessary functionality of data structures. And I would vote we revisit inheritance ASAP. I've created an issue for this. |
No description provided.