Skip to content

Commit 902d848

Browse files
authored
Merge pull request #562 from openmobilityfoundation/release-1.0.0
Release 1.0.0 - Tech Council Review
2 parents 9c6b158 + 8d2eb21 commit 902d848

16 files changed

Lines changed: 167 additions & 92 deletions

.github/PULL_REQUEST_TEMPLATE/release-final.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

.github/pull_request_template.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: Default
3+
about: Suggest changes to MDS
4+
title: <Insert Title>
5+
6+
---
7+
8+
# MDS Pull Request
9+
10+
Thank you for your contribution! Please review our OMF [contributing page](https://github.com/openmobilityfoundation/governance/blob/main/CONTRIBUTING.md) to understand guidelines and policies for participation, and our [Code of Conduct page](https://github.com/openmobilityfoundation/governance/blob/main/CODE_OF_CONDUCT.md).
11+
12+
To avoid complications and help make the Review process as smooth as possible, make sure to:
13+
14+
1. Target [**`dev`**](https://github.com/openmobilityfoundation/mobility-data-specification/tree/dev) branch. Please ensure you are targeting **`dev`**, not **`main`**.
15+
1. Keep the *"Allow edits from maintainers"* button checked to help us resolve some issues for you.
16+
1. Be ready to resolve any merge conflicts before we approve your Pull Request.
17+
1. Have an up to date profile, per our Github [community profile](https://github.com/openmobilityfoundation/governance/blob/main/CONTRIBUTING.md#community-profile) guildance.
18+
19+
## Explain pull request
20+
21+
Please provide a clear and concise reason for this pull request and the impact of the change
22+
23+
## Is this a breaking change
24+
25+
A breaking change would require consumers or implementors of the API to modify their code for it to continue to function (ex: renaming of a required field or the change in data type of an existing field). A non-breaking change would allow existing code to continue to function (ex: addition of an optional field or the creation of a new optional endpoint).
26+
27+
* Yes, breaking
28+
* No, not breaking
29+
* I'm not sure
30+
31+
## Impacted Spec
32+
33+
Which spec(s) will this pull request impact?
34+
35+
* `agency`
36+
* `policy`
37+
* `provider`
38+
39+
## Additional context
40+
41+
Add any other context or screenshots about the feature request here.

MDS-state-machine-diagram.svg

Lines changed: 1 addition & 1 deletion
Loading

README.md

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
# Mobility Data Specification
22

3+
## Table of Contents
4+
5+
- [About](#about)
6+
- [Endpoints](#endpoints)
7+
- [Get Involved](#get-involved)
8+
- [Versions](#versions)
9+
- [Cities Using MDS](#cities-using-mds)
10+
- [Providers Using MDS](#providers-using-mds)
11+
- [Use Cases](#use-cases)
12+
- [Related Projects](#related-projects)
13+
14+
## About
15+
316
The Mobility Data Specification (**MDS**), a project of the [Open Mobility Foundation](http://www.openmobilityfoundation.org) (OMF), is a set of Application Programming Interfaces (APIs) focused on dockless e-scooters, bicycles, mopeds and carshare. Inspired by projects like [GTFS](https://developers.google.com/transit/gtfs/reference/) and [GBFS](https://github.com/NABSA/gbfs), the goals of MDS are to provide a standardized way for municipalities or other regulatory agencies to ingest, compare and analyze data from mobility service providers, and to give municipalities the ability to express regulation in machine-readable formats.
417

518
**MDS** helps cities interact with companies who operate dockless scooters, bicycles, mopeds and carshare in the public right-of-way. MDS is a key piece of digital infrastructure that supports the effective implementation of mobility policies in cities around the world.
619

720
**MDS** is an open-source project. It was originally created by the [Los Angeles Department of Transportation](http://ladot.io) (LADOT). In November 2019, stewardship of MDS and the ownership of this repository was transferred to the Open Mobility Foundation. GitHub automatically redirects any links to this repository in the `CityOfLosAngeles` organization to the `openmobilityfoundation` instead. MDS continues to be used by LADOT and many other municipalities.
821

22+
[Top][toc]
23+
24+
## Endpoints
25+
926
**MDS** is currently comprised of three distinct components:
1027

1128
* The [`provider`][provider] API endpoints are intended to be implemented by mobility providers and consumed by regulatory agencies. When a municipality queries information from a mobility provider, the Provider API has a historical view of operations in a standard format. It was first released in June 2018. Development takes place under the guidance of the OMF's Provider Services Working Group.
@@ -16,9 +33,14 @@ The Mobility Data Specification (**MDS**), a project of the [Open Mobility Found
1633

1734
MDS is designed to be a modular kit-of-parts. Regulatory agencies can use the components of the API that are appropriate for their needs. An agency may choose to use only `agency`, `provider`, or `policy`. Or they may select specific elements (endpoints) from each to help them implement their goals.
1835

19-
You can read more about the different APIs here: **[Understanding the different MDS APIs](https://github.com/openmobilityfoundation/mobility-data-specification/wiki/Understanding-MDS-APIs)**
36+
Many parts of the MDS definitions and APIs align across each other. In these cases, consolidated information can be found on the [General Information](/general-information.md) page.
37+
38+
You can read more about the different APIs here: **[Understanding the different MDS APIs](https://github.com/openmobilityfoundation/governance/blob/main/technical/Understanding-MDS-APIs.md)**
39+
40+
[Top][toc]
41+
42+
## Get Involved
2043

21-
## Learn More / Get Involved / Contributing
2244
To stay up to date on MDS releases, meetings, and events, please **subscribe to the [mds-announce](https://groups.google.com/a/groups.openmobilityfoundation.org/forum/#!forum/mds-announce) mailing list.**
2345

2446
The Mobility Data Specification is an open source project with all development taking place on GitHub. Comments and ideas can be shared by [creating an issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues), and specific changes can be suggested by [opening a pull request](https://github.com/openmobilityfoundation/mobility-data-specification/pulls). Before contributing, please review our OMF [CONTRIBUTING page](https://github.com/openmobilityfoundation/governance/blob/main/CONTRIBUTING.md) to understand guidelines and policies for participation and our [CODE OF CONDUCT page](https://github.com/openmobilityfoundation/governance/blob/main/CODE_OF_CONDUCT.md).
@@ -36,6 +58,8 @@ You can view info about past releases and planning calls in the [wiki](https://g
3658

3759
For questions about MDS please contact [info@openmobilityfoundation.org](mailto:info@openmobilityfoundation.org). Media inquiries to [media@openmobilityfoundation.org](mailto:media@openmobilityfoundation.org)
3860

61+
[Top][toc]
62+
3963
## Versions
4064

4165
The latest MDS release is in the [`main`](https://github.com/openmobilityfoundation/mobility-data-specification/tree/main) branch, and preparation for the next release occurs in the [`dev`](https://github.com/openmobilityfoundation/mobility-data-specification/tree/dev) branch.
@@ -48,6 +72,8 @@ The MDS specification is versioned using Git tags and [semantic versioning](http
4872
* [Release Timeline](https://github.com/openmobilityfoundation/mobility-data-specification/wiki#mds-releases)
4973
* [Release Guidelines](https://github.com/openmobilityfoundation/governance/blob/main/technical/ReleaseGuidelines.md)
5074

75+
[Top][toc]
76+
5177
## Cities Using MDS
5278

5379
More than 90 cities and public agencies around the world use MDS, and it has been implemented by most major mobility providers. Below are links to some of the specific agency programs/policies:
@@ -74,14 +100,22 @@ for Shareable Dockless Mobility Device Permit Holders](https://www.atlantaga.gov
74100
* **San Francisco, CA**: [SFMTA Policy Document](https://www.sfmta.com/sites/default/files/reports-and-documents/2018/05/powered_scooter_share_program_permit_application.pdf) and [Guideance Page](https://www.sfmta.com/projects/powered-scooter-share-permit-and-pilot-program).
75101
* **San Jose, CA**: [Shared Micro-mobility Permit Administrative Regulations](https://www.sanjoseca.gov/home/showdocument?id=38091).
76102
* **Santa Monica, CA**: The rules and guidelines are on the Santa Monica [Shared Mobility Pilot Program page](https://www.smgov.net/Departments/PCD/Transportation/Shared-Mobility-Services/).
77-
* **Seattle, WA**: SDOT's [Free-floating Bike Share Permitting](https://www.seattle.gov/transportation/projects-and-programs/programs/bike-program/bike-share#permityearpermit2.1) program and [permit requirements](https://www.seattle.gov/Documents/Departments/SDOT/BikeProgram/Seattle_Bike_Share_Permit_Requirements_v2.1_20181219.pdf).
103+
* **Seattle, WA**: SDOT's [Free-floating Bike Share Permitting](https://www.seattle.gov/transportation/projects-and-programs/programs/bike-program/bike-share#permityearpermit2.1) program, [permit requirements](https://www.seattle.gov/Documents/Departments/SDOT/BikeProgram/Seattle_Bike_Share_Permit_Requirements_v2.1_20181219.pdf), and [Mobility Data Privacy and Handling Guidelines](http://www.seattle.gov/Documents/Departments/Tech/Privacy/SDOT_Mobility_Data_Guidelines.pdf).
78104
* **Ulm, Germany**: A draft of the guidelines can be found at [the city's GitHub presence](https://github.com/stadtulm/mds-zonen).
79-
* **Washington, DC**: [Dockless Vehicle Permits](https://ddot.dc.gov/page/dockless-vehicle-permits-district), [terms and conditions](https://ddot.dc.gov/sites/default/files/dc/sites/ddot/2019.11.6%20Shared%20dockless%202020%20Terms%20and%20Conditions%20scooter.pdf), [data reporting standards](https://ddot.dc.gov/sites/default/files/dc/sites/ddot/2019.11.6%20Dockless%20Permit%20TC%20Attatchments.pdf), and [FAQ](https://docs.google.com/document/d/1G2ddANcXl3lShCZInV3uX2NTBfRRu4Fm-tiaCi203QM/).
105+
* **Washington, DC**: Information about the program can be found on [DDOT’s dockless mobility](https://ddot.dc.gov/page/dockless-vehicle-permits-district) page along with the [terms and conditions](https://ddot.dc.gov/sites/default/files/dc/sites/ddot/2019.11.6%20Shared%20dockless%202020%20Terms%20and%20Conditions%20scooter.pdf) and [Attachment C data standards](https://ddot.dc.gov/sites/default/files/dc/sites/ddot/2019.11.6%20Dockless%20Permit%20TC%20Attatchments.pdf). Further information on the dockless data policies are available [here](https://ddot.dc.gov/page/dockless-api).
80106

81107
* _add a city here by [opening a pull request](https://github.com/openmobilityfoundation/mobility-data-specification/compare/dev...dev) or [making an issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/new?assignees=&labels=&template=feature-request---proposal.md&title=)_.
82108

83109
Other cities include Baltimore, Bellevue, Charlotte, and Oakland, as mentioned in the [NACTO Guidelines for Regulating Shared Micromobility](https://nacto.org/wp-content/uploads/2019/09/NACTO_Shared_Micromobility_Guidelines_Web.pdf), page 48.
84110

111+
[Top][toc]
112+
113+
## Providers Using MDS
114+
115+
Over two dozen mobility service providers around the world use MDS, allowing them to create tools around a single data standard for multiple cities. For a full list, see the MDS [provider list](/providers.csv).
116+
117+
[Top][toc]
118+
85119
## Use Cases
86120
Some examples of how cities are using MDS in practice:
87121

@@ -97,6 +131,10 @@ Some examples of how cities are using MDS in practice:
97131
- Inform micromobility policy making – number of scooters, distribution, etc.
98132
- Develop ways to communicate dynamic information on unplanned events, such as emergency road closures, water main breaks, etc. to mobility providers to help them keep their users and contractors informed for better route planning and re-balancing efforts.
99133

134+
More details and examples can be seen on our [Wiki](https://github.com/openmobilityfoundation/governance/wiki/MDS-Use-Cases).
135+
136+
[Top][toc]
137+
100138
## Related Projects
101139

102140
### Open Mobility Foundation
@@ -127,6 +165,9 @@ Some examples of how cities are using MDS in practice:
127165

128166
Please open a pull request if you create open source or private tools for implementing or working with MDS data.
129167

168+
[Top][toc]
169+
130170
[agency]: /agency/README.md
131171
[provider]: /provider/README.md
132172
[policy]: /policy/README.md
173+
[toc]: #table-of-contents

ReleaseNotes.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33
> Release Date: TBD
44
5-
> Release Candidate Date: week of June 29, 2020
5+
> Release Candidate submitted 2020-07-01
66
7-
The 1.0.0 release reconciles many parts of the MDS specifiction and adds features and updates requested by the community, including support for Stops (for docked vehicles, dockless corrals, parking areas) and adding rates to Policy.
7+
The 1.0.0 release reconciles many parts of the MDS specification and adds features and updates requested by the community, including support for Stops (for docked vehicles, dockless corrals, parking areas) and adding rates to Policy.
88

99
### CHANGES
1010

1111
See the PRs tagged with [Milestone 1.0.0](https://github.com/openmobilityfoundation/mobility-data-specification/milestone/9) for a full list of changes.
1212

13-
_Here is some of what was added or changed._
14-
1513
*_MDS_*
1614

1715
* [Reconcile the Provider and Agency language differences](https://github.com/openmobilityfoundation/mobility-data-specification/pull/506)
@@ -24,11 +22,11 @@ _Here is some of what was added or changed._
2422
* Update [Austin](https://github.com/openmobilityfoundation/mobility-data-specification/pull/488), [Louisville](https://github.com/openmobilityfoundation/mobility-data-specification/pull/515) links
2523
* [Add link to State of Practice](https://github.com/openmobilityfoundation/mobility-data-specification/pull/477)
2624
* [Update GBFS references and links](https://github.com/openmobilityfoundation/mobility-data-specification/pull/508)
27-
* Move [Code of Conduct](https://github.com/openmobilityfoundation/mobility-data-specification/pull/514), [Contributing Guide](https://github.com/openmobilityfoundation/mobility-data-specification/pull/513), and [Release Guidelines](https://github.com/openmobilityfoundation/mobility-data-specification/pull/512) to new [Governace repo](https://github.com/openmobilityfoundation/governance)
25+
* Move [Code of Conduct](https://github.com/openmobilityfoundation/mobility-data-specification/pull/514), [Contributing Guide](https://github.com/openmobilityfoundation/mobility-data-specification/pull/513), and [Release Guidelines](https://github.com/openmobilityfoundation/mobility-data-specification/pull/512) to new [Governance repo](https://github.com/openmobilityfoundation/governance)
2826
* [Updating 'master' to 'main' as default branch name](https://github.com/openmobilityfoundation/mobility-data-specification/pull/522)
2927
* [Update providers.csv to add Superpedestrian](https://github.com/openmobilityfoundation/mobility-data-specification/pull/535)
3028
* [Removed Options version negotiation](https://github.com/openmobilityfoundation/mobility-data-specification/pull/536#pullrequestreview-439364663)
31-
* [Added 'other' vechicle type](https://github.com/openmobilityfoundation/mobility-data-specification/issues/518)
29+
* [Added 'other' vehicle type](https://github.com/openmobilityfoundation/mobility-data-specification/issues/518)
3230

3331
*_Provider_*
3432

agency/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Mobility Data Specification: **Agency**
22

3-
This specification contains a collection of RESTful APIs used to specify the digital relationship between *mobility as a service* Providers and the Agencies that regulate them.
3+
The Agency API endpoints are intended to be implemented by regulatory agencies and consumed by mobility providers. Providers query the Agency API when events (such as a trip start or vehicle status change) occur in their systems.
4+
5+
This specification contains a collection of RESTful APIs used to specify the digital relationship between *mobility as a service* providers and the agencies that regulate them.
46

57
## Table of Contents
68

@@ -108,7 +110,6 @@ Body Params:
108110
| `vehicle_id` | String | Required | Vehicle Identification Number (vehicle_id) visible on vehicle |
109111
| `vehicle_type` | Enum | Required | [Vehicle Type][vehicle-types] |
110112
| `propulsion_types` | Enum[] | Required | Array of [Propulsion Type][propulsion-types]; allows multiple values |
111-
| `provider_id`| UUID | Optional | Provider to which the vehicle belongs if different from the authenticated provider |
112113
| `year` | Integer | Optional | Year Manufactured |
113114
| `mfgr` | String | Optional | Vehicle Manufacturer |
114115
| `model` | String | Optional | Vehicle Model |

agency/get_stops.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"capacity": {
4848
"$id": "#/definitions/stop/properties/capacity",
4949
"$ref": "#/definitions/vehicle_type_counts",
50-
"description": "Number of total spaces per vehicle_type"
50+
"description": "Number of total places per vehicle_type"
5151
},
5252
"num_vehicles_available": {
5353
"$id": "#/definitions/stop/properties/num_vehicles_available",
@@ -94,15 +94,15 @@
9494
"$ref": "#/definitions/string",
9595
"description": "Cross street of where Stop is located"
9696
},
97-
"num_spaces_available": {
98-
"$id": "#/definitions/stop/properties/num_spaces_available",
97+
"num_places_available": {
98+
"$id": "#/definitions/stop/properties/num_places_available",
9999
"$ref": "#/definitions/vehicle_type_counts",
100-
"description": "Number of spaces free to be populated per vehicle_type"
100+
"description": "Number of places free to be populated per vehicle_type"
101101
},
102-
"num_spaces_disabled": {
103-
"$id": "#/definitions/stop/properties/num_spaces_disabled",
102+
"num_places_disabled": {
103+
"$id": "#/definitions/stop/properties/num_places_disabled",
104104
"$ref": "#/definitions/vehicle_type_counts",
105-
"description": "Number of spaces disabled an unable to accept vehicles per vehicle_type"
105+
"description": "Number of places disabled an unable to accept vehicles per vehicle_type"
106106
},
107107
"parent_stop": {
108108
"$id": "#/definitions/stop/properties/parent_stop",

agency/post_stops.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"capacity": {
4848
"$id": "#/definitions/stop/properties/capacity",
4949
"$ref": "#/definitions/vehicle_type_counts",
50-
"description": "Number of total spaces per vehicle_type"
50+
"description": "Number of total places per vehicle_type"
5151
},
5252
"num_vehicles_available": {
5353
"$id": "#/definitions/stop/properties/num_vehicles_available",
@@ -94,15 +94,15 @@
9494
"$ref": "#/definitions/string",
9595
"description": "Cross street of where Stop is located"
9696
},
97-
"num_spaces_available": {
98-
"$id": "#/definitions/stop/properties/num_spaces_available",
97+
"num_places_available": {
98+
"$id": "#/definitions/stop/properties/num_places_available",
9999
"$ref": "#/definitions/vehicle_type_counts",
100-
"description": "Number of spaces free to be populated per vehicle_type"
100+
"description": "Number of places free to be populated per vehicle_type"
101101
},
102-
"num_spaces_disabled": {
103-
"$id": "#/definitions/stop/properties/num_spaces_disabled",
102+
"num_places_disabled": {
103+
"$id": "#/definitions/stop/properties/num_places_disabled",
104104
"$ref": "#/definitions/vehicle_type_counts",
105-
"description": "Number of spaces disabled an unable to accept vehicles per vehicle_type"
105+
"description": "Number of places disabled an unable to accept vehicles per vehicle_type"
106106
},
107107
"parent_stop": {
108108
"$id": "#/definitions/stop/properties/parent_stop",

agency/post_vehicle.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,6 @@
6161
"propulsion_types"
6262
],
6363
"properties": {
64-
"provider_id": {
65-
"$id": "#/definitions/vehicle/properties/provider_id",
66-
"$ref": "#/definitions/uuid",
67-
"description": "The UUID for the Provider, unique within MDS"
68-
},
6964
"device_id": {
7065
"$id": "#/definitions/vehicle/properties/device_id",
7166
"$ref": "#/definitions/uuid",

0 commit comments

Comments
 (0)