Releases: MobilityData/gtfs-validator
v2.0.0
What's new 🆕
We're excited to bring you this v2 release of the gtfs-validator! A lot has changed since v1, and we think you'll appreciate the new features.
- Faster 🚀 and stronger 💪 thanks to a new multi-threaded architecture (thank you @aababilov!) (PR #486)
- Supports the largest known real-world GTFS datasets. For example, the Netherlands GTFS previously failed with an
OutOfMemory
error, and now it can be validated in 2 minutes and 12 seconds on an ordinary laptop! - Validates datasets much faster. For example, MBTA used to take 38 seconds to validate, and now it only takes 14 seconds - less than half the time!
- Supports the largest known real-world GTFS datasets. For example, the Netherlands GTFS previously failed with an
- ⏬ Reduces the amount of code needed for adding new validation rules and support for new GTFS files and fields by leveraging Java annotations and AutoValue
- A new rule can now be added in a single
.java
file. See the "Adding new rules" documentation for examples. - Basic data type, range, and primary key validation for new GTFS files and fields can be added in a few lines of code. See the "Adding new files and fields" documentation for examples.
- A new rule can now be added in a single
- 📝 Notice definitions for validation rules have been updated
- Notice severities now align with the canonical GTFS spec (e.g., issues #472, #417). ERRORS are for items that the spec explictly requires or prohibits, and WARNINGS are for items that will impact the quality of GTFS datasets but aren't strictly required (suggestions or best practices).
- Notices have ported to the new architecture (e.g., PR #592, PR #710). See the "Rules" documentation for the new v2 notice definitions and the "v1 to v2 Migration Guide" for a table mapping v1 notices to v2 notices.
- 🛠 Better error handling and reporting
- In case of problems with the validator software itself, an error report is now written to a file
system_errors.json
to help with troubleshooting (PR #596). Normal validation results can be found inreport.json
.
- In case of problems with the validator software itself, an error report is now written to a file
- 🗺 New project roadmap
- Check out the project wiki. Please feel free to add things you are interested in!
v1.4.0
What's new 🆕
- We now generate a validation report even if the software unexpectedly crashed: users will be informed that it happened and are invited to report the error.
- The validation report name has been reworked to include information regarding the feed's
feed_info.publisher_name
oragency.agency_id
. - Various bug fixes.
- Our documentation for releases has been updated to match the latest development.
NPEs ❌
Fixes 🔧
Changes ⚠️
Doc 📖
v1.3.1 -- Deep Dive Oct. 28th
v1.3.0
What's new
You can now run the validator directly on GitHub, see the relevant readme section: https://github.com/MobilityData/gtfs-validator/blob/master/README.md#via-github-actions---run-the-validator-on-any-gtfs-archive-available-on-a-public-url
We now have a local web UI
We now provide Docker images, see https://github.com/orgs/MobilityData/packages/container/gtfs-validator/192493
Release process completely automated, release cycle should be on a fixed schedule now
Our README has been updated.
NPEs
Fixes
Changes
v1.2.2
Description
Extend the number of supported rules to achieve feature parity with the python Google validator for what is strictly in spec.
New rules
- conditional presence of calendar.txt or calendar_dates.txt - #355
stops
- stops too far from trip shape - #340
agency
- agency.agency_lang match feed_info.feed_lang - #352
shapes
- increasing shape_dist_traveled along a shape - #363
csv
routes
- names unicity - #351
stop_times
- stop times departure time after arrival time - #198
- stop times travel backward in time - #338
- fast travel between stops - #332
- increasing distance stop times - #350
stop_times and trips
- verify no overlap in trip block #346
trips
frequencies
Behavior changes
- abort on error - #339
v1.2.1
Release notes
-
Complete implementation of CSV validation
- agency.txt, stops.txt, routes.txt, trips.txt, stop_times.txt, levels.txt, transfers.txt, calendar.txt, pathways.txt, calendar_dates.txt, shapes.txt, feed_info.txt
-
Agency related validation
-
Validate route id reference in trips
-
Cross validation between agency.txt and routes.txt
-
Validate trips.service_id
-
Validate shape_id references
-
Feed related validation
Additional info
- Starting with this release we provide our tests results as well as javadoc
- You can find the complete set of implemented rules in RULES.md
- You can find snapshot versions of the latest merge on master via our GitHub action page
v1.2.0
-
Notice format has been reworked
- level and code have been separated
- extra data is serialized in a
noticeSpecific
object in the JSON output
-
Add feature to run the validator with a json configuration file in place of command line arguments
-
Add a feature to run the validation only on a subset of files
-
Add GTFS semantics validation
-
Add documentation detailing implemented rules
-
Add documentation on how to extend the validation rules
-
Various bug fixes
v1.1.0
First stable release
- add supports for all files that can be contained in a GTFS archive
- add support of all GTFS types for CSV validation and base GTFS validation (numeric ranges and string formats)
- add JSON export of validation results
- add protobuf export of validation results
See the v1.1.0 README for usage information.
Note that command-line parameters in the master branch have changed since this release.
Note: README.md link to GTFS specification schema should point here
v1.0.1
v 1.0.0 - MVP release
First public release
Base validation
- header presence
- row length
- numeric types parsing
- valid ranges according to schema file
Applied to feed_info.txt, agency.txt, stops.txt, routes.txt, trips.txt, pathways.txt and levels.txt
Validation results are visible in the console as well as in result.txt in your output folder.
Requires Java 11