-
Notifications
You must be signed in to change notification settings - Fork 184
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
Add recommended presence: reconciling confusion between best practices and spec #376
Comments
Regarding
I'm not sure what is meant by contradictory in this case? I wouldn't consider it contradictory that something |
I'm very supportive of migrating the best practices as it lessens the burden on finding what I ideally should be doing w.r.t. dataset creation. I would want to make sure that as the migration happens the two places where they are are mutually exclusive - meaning the github repos with the best practices should get smaller and smaller. |
Confusing is perhaps better language here — there's no contradiction in severity/quality level. However the current experience as you highlighted over at #375 is already counterintuitive, and it seems worth it to make sure the new and improved experience is 100% clear:
The new experience we want here is: I can skim the spec and see everything that's Recommended with ease, so I know exactly what to add if I want to follow best practice. As opposed to: I see some fields are Optional and promptly ignore them, and don't notice that the Optional field's description told me I should use the field, or should use it in x, y, z conditional cases. |
Agreed! An intended step of this work is to remove the best practices from the best practices repo once this is adopted in transit repo (I will add it to the recommended scope information). |
@emmambd would you be willing to open up the audit spreadsheet to comments? |
@bdferris-v2 Yes! Apologies that it wasn't already. This has been fixed. |
Overall everything in the audit spreadsheet looks good to me. My only comment here is that the "Conditionally recommended, optional otherwise" category of fields still introduces some sense of ambiguity. I guess that ambiguity is that if it doesn't meet the conditionally recommended guidelines, would it be preferable to include or exclude the field. It's not necessarily the same for each field, although I will admit that in many cases it's unclear what the alternative designation would be. E.g. In general, it seems like the word "optional" tends to muddle things anywhere it appears. Perhaps because something that is optional but isn't recommended doesn't seem to have much reason to exist. |
In row 15: If I am reading correctly, I don't think this makes sense. Also made this comment in the spreadsheet. |
I can see how “Conditionally recommended” can overcomplicate things and confuse the meaning of Optional. I’ve edited the spreadsheet to remove the Conditionally recommended status and instead just include “should” language in the description for conditional cases. For example:
Now the Recommended presence is only used for cases like
Slightly revised in spreadsheet for clarity. I’ve also modified the Recommended definition slightly in the spreadsheet so it echoes the RFC definition and makes it clearer how it should be considered by producers. |
@antrim Commenting this here as well as the spreadsheet for visibility: Thanks for sharing that historical context — it's a massive help. Agreed. I've updated to just say "May be provided for frequency-based trips." at the end of the current description, since the intent of the original best practice seems to be to just emphasize that block_id can be used for frequency-based trips, not that it should be. Feel free to suggest alternate language. |
Problem
As originally mentioned in #375, MobilityData’s heard a need to merge best practices into the spec to increase their visibility to producers and reduce confusion between the two documents. We’ve been exploring what a good starting “release” or iteration would look like to begin this work. Based on feedback in #375 and some other discussions, it looks like the one key initial challenge to solve is reconciling places in the best practices and spec where their advice conflicts.
Some examples:
Solution
Adding a Recommended and Conditionally Recommended presence in the spec that conforms to RFC conventions. This would make it possible to clearly state that a field or file is not required, but adding it is a best practice that should be considered. Making it immediately obvious that a file or field is recommended in the spec reduces confusion, while preserving backwards compatibility.
This change would not affect validity or the quality evaluation of the dataset according to the Canonical Validator, since the best practices are already warnings in the validator. Any recommended field or file would generate a warning in the validator.
Recommended Scope
MobilityData has done an initial review of all places in the spec and best practices where they offer contradictory advice on when to add a file or field.
All conflicting best practices that don’t require adopting a new field into the spec relate to
feed_info.txt
file and fieldsroute_short_name
inroutes.txt
agency_id
inroutes.txt
,agency.txt
, andfare_attributes.txt
timepoint
instop_times.txt
block_id
intrips.txt
shape_dist_traveled
instop_times.txt
shape_dist_traveled
inshapes.txt
direction_id
intrips.txt
After the associated PR is adopted, MobilityData will open a PR on https://github.com/MobilityData/GTFS_Schedule_Best-Practices so that all best practices that have been reconciled + adopted into the spec are removed from the best practices repo.
It would be helpful to get feedback on:
Alternatives Considered
The text was updated successfully, but these errors were encountered: