-
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
Formalizing freeform notes #1
Comments
OK, I'm going through the list of all "notes" fields that are in profiles now, and I'm breaking them down into a few general categories: Errata
Sort of like errata, but harmless, and pretty much an irrelevant detail
Citations of data that is (mostly?) represented in the schema
Directions beyond what's in the schema
Directions so bad they're practically errata
Nuanced contradictions of what the codified data suggests per schema
Circumstantial UI
Further requirements and restrictions
Entirely unusual requirement
Alternatives
Trivia and details outside of what's expected
Sort of an important detail
So, from this, here's what I'm thinking:
|
The way I see it, there are two options for dealing with the long tail of notes encapsulated by the last two kinds of note:
Of the two, I'm leaning more toward the latter, since the whole discussion around these notes was that they're bad catch-alls for things that should probably be described structurally (for example, the nuance of CAPTCHAs only appearing after a few failed requests should probably be represented by a dedicated "transient" field or something like that), and having a long-form place for them introduces awkward situations where consumers are trained to read for something that will eventually potentially disappear. Basically, as a better lifecycle infrastructure emerges, we can start putting these details in pull requests / commit comments and referring out to them in schemata issues (and vice versa), so there's less harm in just leaving these aspects of the site completely undefined until the appropriate structure to accommodate them within the schema exists, where endpoint consumers can make decisions based on their information. That's really the fundamental guiding principle to how each of these will be codified: does their presence send a clear signal to the program about how to proceed with its use case? If not, it's not worth codifying until it can be structured in such a way that does. |
Perhaps a |
Also, I figure stuff like Google's |
I think a few of these unusual registration flows could be described by having a |
I'm just going to propose |
Okay, now I'm going to propose EDIT: Actually, I'm going to keep it to just |
I'm proposing |
Based on the list above (with some recategorizations and reconsiderations), my plan for migrating issues to the new structure:
|
Actually, I'm gonna take the fairly radical step of classifying the two instances where a site has an opaque "password strength" requirement as errata rather than rules, because it fails the main litmus test of a rule, in that there is no way the user can tell whether a password would satisfy the rule or not. (There are a couple other profiles that have rules of "must satisfy the following formula", but, as bad as that is, it's not the complete failure that having opaque strength limits is, because that's at least small enough to read and understand.) All password rules are problematic, but within the scope of the rules defined in this spec, they're at least problems that can be evaluated. Anything that makes it impossible to definitively evaluate what password may have been derived for that site's use qualifies as "errata". |
OK, all the lingering notes have been removed (opws/opws-dataset#309), time to finish this:
If done in this order, this should all cooperate well enough with CI. |
This removes the last bastion of notes in profile documents, as tracked in #1.
This removes the last bastion of notes in profile documents, as tracked in #1.
Actually, I'm going to cut the note about the terms checkbox for steampowered.com since, after consulting the Steam Subscriber Agreement, being at least 13 years of age is a requirement for agreeing anyway (they just highlight it, presumably to deter all the 12-year-olds that sign up for Steam anyway). |
This removes the special case for filtering out .notes, which was never specified in the v0.1 schema, but was considered "valid" as a compromise with the existing data. In v0.2, most of the uses for .notes are covered in new properties that *are* specified as part of the schema: see opws/opws-schemata#1. To validate documents that would have been previously considered valid under this exemption, strict schema adherence must be disabled with the `--loose` option. (Note that this will ignore any *other* properties that are not defined by the schema as well.) This closes issue #2.
This removes the special case for filtering out .notes, which was never specified in the v0.1 schema, but was considered "valid" as a compromise with the existing data. In v0.2, most of the uses for .notes are covered in new properties that *are* specified as part of the schema: see opws/opws-schemata#1. To validate documents that would have been previously considered valid under this exemption, strict schema adherence must be disabled with the `--loose` option. (Note that this will ignore any *other* properties that are not defined by the schema as well.) This closes issue #2.
OK... now I need to update the builder so it knows how to handle schema versions later than v0.1. |
See opws/opws-dataset#137 and opws/opws-validate#2: right now, many profiles have
notes
fields in arbitrary locations, which are specially ignored by validation.The sustainable solution here is to understand ways in which notes are used, and put them in predictable locations, with codified semantics around how they would be presented in given use cases.
The text was updated successfully, but these errors were encountered: