Skip to content

v4.1.0

Compare
Choose a tag to compare
@isabelle-dr isabelle-dr released this 26 Apr 21:43
· 223 commits to master since this release
80550f3

Overview

This release includes the addition of the Web version available at https://gtfs-validator.mobilitydata.org/, new notices, support for Fare Media that was adopted in GTFS in March 2023, and initial support to programmatically generate the notice documentation.
See the notice mapping between releases in NOTICE_MIGRATION.md.

New notices

  • invalid_currency_amount 🔴 ERROR
  • missing_stop_name 🔴 ERROR
  • stop_without_location 🔴 ERROR
  • too_many_rows 🔴 ERROR
  • duplicate_fare_media 🟠 WARNING
  • expired_calendar 🟠 WARNING
  • missing_feed_info_date 🟠 WARNING
  • mixed_case_recommended_field 🟠 WARNING
  • route_long_name_contains_short_name 🟠 WARNING
  • trip_coverage_not_active_for_next7_days 🟠 WARNING

Impacts on existing data

You can find the impact of this release on all existing datasets we have in the Mobility database in this spreadsheet.

What's Changed

Web-based validator

Bug fixes

Rules

Documentation updates

Generate the doc programmatically

  • feat: Initial entry for @GtfsValidationNotice annotation by @bdferris-v2 in #1361
  • feat: Update Notice source code such that field name comments match documentation in RULES.md by @bdferris-v2 in #1346
  • feat: Add unit-test to check consistency of Notice field names. by @bdferris-v2 in #1345
  • fix: Inconsistencies in RULES.md against underlying source by @bdferris-v2 in #1341
  • feat: Add unit test to verify that every Notice has an entry in RULES.md by @bdferris-v2 in #1331
  • feat: Extract notice docs from source-code for in-app use and schema export by @bdferris-v2 in #1365

Acceptance tests improvements

  • feat: Update acceptance test report to include changes in WARNINGS. by @bdferris-v2 in #1354
  • feat: Fail acceptance tests on significant change in warnings by @bdferris-v2 in #1377

General maintenance + other good stuff

  • Use smaller integer field types for GTFS entity classes by @aababilov in #1273
  • Introduce GtfsEntityBuilder interface by @aababilov in #1286
  • Use int instead of long to keep CSV row number by @aababilov in #1287
  • Generate registries of tables and validators by @aababilov in #1290
  • Avoid unchecked conversion in table and validator registries by @aababilov in #1293
  • build(deps): bump certifi from 2021.5.30 to 2022.12.7 in /scripts/mobility-database-harvester by @dependabot in #1299
  • Separate table loading logic from table structure by @aababilov in #1284
  • Do not invoke single file validators if table indices were not generated by @aababilov in #1300
  • Always invoke single file validators (revert #1300) by @aababilov in #1303
  • Discover tables and validators in runtime using io.github.classgraph by @aababilov in #1311
  • Initialize one field per line in the generated code by @aababilov in #1314
  • feat: Refactor JSON report comparison for better diffing in unit-tests. by @bdferris-v2 in #1352
  • feat: Move key annotation and entity interfaces into a new model module by @bdferris-v2 in #1362
  • feat: Initial support for GTFS Fares v2 - fare media by @bdferris-v2 in #1305
  • feat: Add a more descriptive test failure message to NoticeFieldsTest. by @bdferris-v2 in #1369
  • chore: Add unit tests to AnyTableLoader by @davidgamez in #1380

New Contributors

Full Changelog: v4.0.0...v4.1.0