Proposal to update GTFS Schedule to RFC 2119#277
Conversation
Changed heading to "File Conventions" from "File Requirements" since, by RFC 2119 definition, this section also contains recommendation.
- Corrected TOC heading - Corrected tabs, carriage returns or new lines to "must not" - Typo fix in "Date" field type - Differentiated "may" and "can"
timMillet
left a comment
There was a problem hiding this comment.
1 note, otherwise LGTM!
lionel-nj
left a comment
There was a problem hiding this comment.
Thanks @scmcca for working on that! I added a few comments that actually may be addressed in a separate PR according to your workflow :)
|
I think the two sections below could be part of this review as well. |
I can think of a clarification to make this sentence less instructional and more descriptive: "Values greater than 24:00:00 are allowed to define times occurring after midnight for the service day on which the trip schedule begins." What is also missing from the "Time" definition are invalid values. There is no maximum time value described. perhaps after some value like +12 or +24 hours above 24:00:00 a warning is issued in the validator? Any other suggestions?
I'd like to reduce the "Timezone" description more generally to: "TZ timezone as described in https://www.iana.org/time-zones. Refer to http://en.wikipedia.org/wiki/List_of_tz_zones for a list of valid values. |
|
@scmcca
Currently, the Canonical GTFS Validator accepts values in formats H:MM:SS, HH:MM:SS, as well as HHH:MM:SS, and emits an ERROR otherwise. I think those two suggestions work perfectly in the context of this PR! |
As per isabelle-dr and aababilov feedback.
As I understand it, trips may begin after 24:00:00, i.e. times over 24:00:00 are not restricted to trips beginning before 24:00:00. This is because some agencies internally define an overnight service break (when no service runs, maintenance can be done, etc.) and the next service day only begins after that overnight service break. If the service break is 3-5AM for example, a final trip of the day from 2-2:30 AM could reasonably be coded on the previous day using 26:00:00-26:30:00. This pull request is described as being focused on the use of certain specific terms, so I think it would be best to avoid any potential changes to the meaning of the specification.
I agree it is reasonable to issue warnings on strange values of the time field. However there are services that run for several days and will exceed these limits - notably some ferries in Norway that are known to be represented in GTFS data. The values that are considered "unusual" are somewhat subjective and might be different in different validation contexts. To me this seems like good material for the "best practices" guide, with the specification addressing only more objective limits.
This wording seems good to me, but this change seems out of scope for the current pull request. Given that some people may decide to read, comment, and vote on the PR based on its title and initial description, it might be better to make such changes in another PR. |
Revert stop_name clarification for separate PR.
|
Thanks to everyone involved in the revisions. This was a lot of work! We seem to have reached a stable consensus. As per the Specification Amendment Process, I am calling a vote to update GTFS Schedule to RFC 2119 as outlined in this PR. Voting will end on 2021-08-26 at 23:59:59 UTC. |
|
+1 (OpenGeo) |
|
+1 from Trillium |
|
+1 (Conveyal) |
|
+1, TriMet |
|
+1 Cal-ITP |
|
+1 Moovit |
|
The vote ended on 2021-08-26 at 23:59:59 UTC with 6 votes in favor and 0 votes opposed. As per the Specification Amendment Process, this proposal passes! Big thanks to everyone involved in bringing RFC 2119 to GTFS Schedule. |
|
A BIG GIANT thanks to @scmcca for leading the process to get to an RFC 2119 compliant spec 🍾 ! |
As discussed in #273, this PR contains a proposal to update GTFS Schedule to RFC 2119 in order to disambiguate interpretations and make the spec easier for producing, consuming, and creating products (i.e., validators) around GTFS. Additionally, these changes aim to be useful when articulating obligations in contract requirements.
Note that BCP 14 (containing RFC 2119 and RFC 8174) has not been implemented in this initial proposal. Thus, I have not CAPITALIZED the keywords as seen in GBFS. This has the purpose of making the initial proposal easier to review with pre-existing instances of lowercase RFC 2119 keywords, but we can decide if the CAPITALIZATION is useful and if this proposal should be updated to BCP 14, or alternative styling as seen in IMDF (i.e., only capitalizing "MUST"s, "SHOULD"s, and "MAY"s).
The PR contains separate commits for each applicable section of the GTFS Schedule reference to ease review (the changes are mostly light).
See all the most up-to-date changes in the "Files changed" tab. Feel free to provide in-line comments and any actionable feedback if any sections have mistakenly altered interpretations or otherwise.
Thanks!
Edits