Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions gtfs-realtime/CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,30 +19,30 @@ When a producer or consumer is interested in adding a new field to the GTFS Real
1. Create a git branch with update of all relevant parts of protocol definition, specification and documentation files (except for translations).
1. Create pull request on https://github.com/google/transit. Pull request must contain an extended description of the patch. The creator of the pull request becomes the _advocate_.
1. Once pull request is registered, it must be announced by its advocate in the [GTFS Realtime mailing list](https://groups.google.com/forum/#!forum/gtfs-realtime). Once announced, the pull request is considered a proposal.
- Since the advocate is a contributor, they must sign the [Contributor License Agreement](../CONTRIBUTING.md) before pull request can be accepted.
- Since the advocate is a contributor, they must sign the [Contributor License Agreement](../CONTRIBUTING.md) before pull request can be accepted.
1. The discussion of the proposal follows. Pull request comments should be used as the sole discussion forum.
- The discussion lasts for as long as the advocate feels necessary, but must be at least 7 calendar days.
- The advocate is responsible for timely update of the proposal (i.e. pull request) based on the comments for which they agree to.
- At any point in time the advocate can claim proposal abandoned.
- The discussion lasts for as long as the advocate feels necessary, but must be at least 7 calendar days.
- The advocate is responsible for timely update of the proposal (i.e. pull request) based on the comments for which they agree to.
- At any point in time the advocate can claim proposal abandoned.
1. The advocate can call for a vote on a version of the proposal at any point in time following the initial 7-day interval required for discussion.
1. Vote lasts the minimum period sufficient to cover 7 full calendar days and 5 full Swiss business days. Vote ends at 23:59:59 UTC.
- The advocate should announce the specific end time at the start of the vote.
- During voting period only editorial changes to the proposal are allowed (typos, wording may change as long as it does not change the meaning).
- Anyone is allowed to vote yes/no in a form of comment to the pull request, and votes can be changed until the end of the voting period.
- The advocate should announce the specific end time at the start of the vote.
- During voting period only editorial changes to the proposal are allowed (typos, wording may change as long as it does not change the meaning).
- Anyone is allowed to vote yes/no in a form of comment to the pull request, and votes can be changed until the end of the voting period.
If a voter changes her vote, it is recommended to do it by updating the original vote comment by striking through the vote and writing the new vote.
- Votes before the start of the voting period are not considered.
- Votes before the start of the voting period are not considered.
1. The proposal is accepted if there is a unanimous consensus yes with at least 3 votes.
- The proposer's vote does not count towards the 3 vote total. For example, if Proposer X creates a pull request and votes yes, and User Y and Z vote yes, this is counted as 2 total yes votes.
- Votes against shall be motivated, and ideally provide actionable feedback.
- If the vote has failed, then the advocate may choose to continue work on the proposal, or to abandon the proposal.
- The proposer's vote does not count towards the 3 vote total. For example, if Proposer X creates a pull request and votes yes, and User Y and Z vote yes, this is counted as 2 total yes votes.
- Votes against shall be motivated, and ideally provide actionable feedback.
- If the vote has failed, then the advocate may choose to continue work on the proposal, or to abandon the proposal.
Either decision of the advocate must be announced in the mailing list.
- If the advocate continues the work on proposal then a new vote can be called for at any point in time but no later than 30 calendar days after the end of the previous vote.
- If a vote was not called within 30 calendar days from the original proposal or 30 calendar days since end of the previous vote, then the proposal is abandoned.
- If the advocate continues the work on proposal then a new vote can be called for at any point in time but no later than 30 calendar days after the end of the previous vote.
- If a vote was not called within 30 calendar days from the original proposal or 30 calendar days since end of the previous vote, then the proposal is abandoned.
1. If the proposal is abandoned, the corresponding pull request is closed. Note that the advocate may choose to implement the feature as an [custom extension](#extensions) instead of part of the official spec.
1. If the proposal is accepted:
- Google is committed to merging the voted upon version of the pull request (provided that the contributors have signed the [CLA](../CONTRIBUTING.md)), and performing the pull request within 5 business days.
- Google is committed to timely updating https://github.com/google/gtfs-realtime-bindings repository. Commits to gtfs-realtime-bindigs that are a result of a proposal, should reference the pull request of the proposal.
- Translations must not be included into the original pull request.
- Google is committed to merging the voted upon version of the pull request (provided that the contributors have signed the [CLA](../CONTRIBUTING.md)), and performing the pull request within 5 business days.
- Google is committed to timely updating https://github.com/google/gtfs-realtime-bindings repository. Commits to gtfs-realtime-bindigs that are a result of a proposal, should reference the pull request of the proposal.
- Translations must not be included into the original pull request.
Google is responsible for eventually updating relevant translations into supported languages, but pure translation pull requests from the community are welcome and will be accepted as soon as all editorial comments are addressed.

### Guiding Principles
Expand Down Expand Up @@ -96,3 +96,4 @@ extend transit_realtime.TripDescriptor {
|1007|NSW TrainLink|[Gregory Nicholls](mailto:gregory.nicholls@transport.nsw.gov.au)|[Group discussion](https://groups.google.com/d/msg/gtfs-realtime/G75O1zyQS_Q/VtNmTJvSAwAJ)|
|1008|SEPTA - Southeastern Pennsylvania Transportation Authority|[Gregory Apessos](mailto:GApessos@septa.org)|https://github.com/septadev|
|1009|Swiftly|[mike@goswift.ly](mailto:mike@goswift.ly)|[Group Discussion](https://groups.google.com/forum/#!msg/gtfs-realtime/mmnZV6L-2ls/wVWdknhLBwAJ)|
|1010|IBI Group|[Ritesh Warade](mailto:transitrealtime@ibigroup.com)|[GitHub proposal for new timestamps in Service Alerts](https://github.com/google/transit/pull/134)|
22 changes: 21 additions & 1 deletion gtfs-realtime/proto/gtfs-realtime.proto
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ message FeedMessage {
// Metadata about a feed, included in feed messages.
message FeedHeader {
// Version of the feed specification.
// The current version is 2.0.
// The current version is 2.0. Valid versions are "2.0", "1.0".
required string gtfs_realtime_version = 1;

// Determines whether the current fetch is incremental. Currently,
Expand Down Expand Up @@ -415,6 +415,7 @@ message Alert {
OTHER_EFFECT = 7;
UNKNOWN_EFFECT = 8;
STOP_MOVED = 9;
NO_EFFECT = 10;
}
optional Effect effect = 7 [default = UNKNOWN_EFFECT];

Expand All @@ -427,6 +428,25 @@ message Alert {
// Full description for the alert as plain-text. The information in the
// description should add to the information of the header.
optional TranslatedString description_text = 11;

// Text for alert header to be used in text-to-speech implementations. This field is the text-to-speech version of header_text.
// This field is still experimental, and subject to change. It may be formally adopted in the future.
optional TranslatedString tts_header_text = 12;

// Text for full description for the alert to be used in text-to-speech implementations. This field is the text-to-speech version of description_text.
// This field is still experimental, and subject to change. It may be formally adopted in the future.
optional TranslatedString tts_description_text = 13;

// Severity of this alert.
// This field is still experimental, and subject to change. It may be formally adopted in the future.
enum SeverityLevel {
UNKNOWN_SEVERITY = 1;
INFO = 2;
WARNING = 3;
SEVERE = 4;
}

optional SeverityLevel severity_level = 14 [default = UNKNOWN_SEVERITY];

// The extensions namespace allows 3rd-party developers to extend the
// GTFS Realtime Specification in order to add and evaluate new features
Expand Down
2 changes: 1 addition & 1 deletion gtfs-realtime/spec/en/examples/alerts.asciipb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# header information
header {
# version of speed specification. Currently "2.0"
# version of speed specification. Currently "2.0". Valid versions are "2.0", "1.0".
gtfs_realtime_version: "2.0"

# determines whether dataset is incremental or full
Expand Down
2 changes: 1 addition & 1 deletion gtfs-realtime/spec/en/examples/trip-updates-full.asciipb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# header information
header {
# version of speed specification. Currently "2.0"
# version of speed specification. Currently "2.0". Valid versions are "2.0", "1.0".
gtfs_realtime_version: "2.0"
# determines whether dataset is incremental or full
incrementality: FULL_DATASET
Expand Down
21 changes: 20 additions & 1 deletion gtfs-realtime/spec/en/reference.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
A GTFS Realtime feed lets transit agencies provide consumers with realtime information about disruptions to their service (stations closed, lines not operating, important delays, etc.) location of their vehicles, and expected arrival times.

Version 2.0 of the feed specification is discussed and documented on this site.
Version 2.0 of the feed specification is discussed and documented on this site. Valid versions are "2.0", "1.0".

### Term Definitions

Expand Down Expand Up @@ -66,6 +66,7 @@ Fields labeled as **experimental** are subject to change and not yet formally ad
* [Effect](#enum-effect)
* [TranslatedString](#message-translatedstring)
* [Translation](#message-translation)
* [SeverityLevel](#enum-severitylevel)

# Elements

Expand Down Expand Up @@ -265,6 +266,9 @@ An alert, indicating some sort of incident in the public transit network.
| **url** | [TranslatedString](#message-translatedstring) | Optional | One | The URL which provides additional information about the alert. |
| **header_text** | [TranslatedString](#message-translatedstring) | Required | One | Header for the alert. This plain-text string will be highlighted, for example in boldface. |
| **description_text** | [TranslatedString](#message-translatedstring) | Required | One | Description for the alert. This plain-text string will be formatted as the body of the alert (or shown on an explicit "expand" request by the user). The information in the description should add to the information of the header. |
| **tts_header_text** | [TranslatedString](#message-translatedstring) | Optional | One | Text containing the alert's header to be used for text-to-speech implementations. This field is the text-to-speech version of header_text. It should contain the same information as header_text but formatted such that it can read as text-to-speech (for example, abbreviations removed, numbers spelled out, etc.) **Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future. |
| **tts_description_text** | [TranslatedString](#message-translatedstring) | Optional | One | Text containing a description for the alert to be used for text-to-speech implementations. This field is the text-to-speech version of description_text. It should contain the same information as description_text but formatted such that it can be read as text-to-speech (for example, abbreviations removed, numbers spelled out, etc.) **Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future. |
| **severity_level** | [SeverityLevel](#enum-severitylevel) | Optional | One | Severity of the alert.<br>**Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future. |

## _enum_ Cause

Expand Down Expand Up @@ -304,6 +308,21 @@ The effect of this problem on the affected entity.
| **OTHER_EFFECT** |
| **UNKNOWN_EFFECT** |
| **STOP_MOVED** |
| **NO_EFFECT** |

## _enum_ SeverityLevel

The severity of the alert.

**Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future.

#### Values
| _**Value**_ |
|-------------|
| **UNKNOWN_SEVERITY** |
| **INFO** |
| **WARNING** |
| **SEVERE** |

## _message_ TimeRange

Expand Down
3 changes: 2 additions & 1 deletion gtfs-realtime/spec/en/service-alerts.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ What effect does this problem have on the specified entity? You may specify one
* Significant delays (insignificant delays should only be provided through [Trip updates](trip-updates.md)).
* Detour
* Additional service
* Modified service
* Modified service: Operations are different from what the rider would normally expect. An example is an alert that reminds riders of an upcoming holiday schedule that is different from normal service on that day of the week.
* Stop moved
* Other effect (not represented by any of these options)
* Unknown effect
* No effect: The alert provides information to riders but does not affect operations. Examples include advertising public meetings and soliciting feedback via surveys.
Loading