-
-
Notifications
You must be signed in to change notification settings - Fork 306
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
Gregsdennis/improve scopes #1588
base: main
Are you sure you want to change the base?
Conversation
I still have some work to do here for |
Just did a close/open to rekick the build. It had been a while and couldn't do it manually. |
Reviewed the changes in #1589, and they seem to align with the rest of what I've updated here, so I'm going to leave |
8f29265
to
767debd
Compare
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 an improvement, but I still really dislike the way dynamic scope is defined. I think it should be the stack of schema resources and not include subschemas. The extra complexity makes learning how dynamic references work more complicated.
Also, I desperately hope we wouldn't ever add another keyword that uses dynamic scope. My preference would be to remove this whole concept from the spec and address it only in the context of dynamic references and recommend that extension keywords not use dynamic scope.
All of that can be debated elsewhere and done as a follow up if there's consensus.
root schema. | ||
root object. |
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 think "root schema" is better here. Yes, it's an object, but more specifically, it's a schema. Maybe "root schema object" or "root object schema" if you want to be clear that boolean schemas aren't relevant.
What kind of change does this PR introduce?
clarification
Issue & Discussion References
Summary
Improve readability, definitions, and explanations of lexical and dynamic scopes.
Does this PR introduce a breaking change?
No.
There is a
MUST
requirement that was previously listed as undefined behavior before, but thisMUST
was stated in the scopes section anyway. It's just nowMUST
in both places.