Release Notes


  • Support for "extensions", allowing users of the library to add new GTFS fields for existing files, for reading and writing, without needing to modify OneBusAway source code. For more details, see Reading Custom Fields.
  • Support for the proposed route_sort_order field in routes.txt.
  • Support for the pathway_type field in pathways.txt.
  • Bug fix for default-value timepoint field in stop_times.txt - issue
  • Bug fix to ensure fare_attributes.txt transfers column is always included in GTFS output - issue
  • Support for "path" expressions in GTFS transformer update ops - issue
  • Support for "substitute" expressions in GTFS transformer update ops - issue
  • Full Documentation:


  • Support for the proposed timepoint field in stop_times.txt.
  • Support for bikes_allowed field in both routes.txt and trips.txt, with 0 = undefined, 1 = bikes allowed, 2 = bikes NOT allowed. Matches the wheel-chair accessibility semantics.
  • New transformer to simply calendar.txt and calendar_dates.txt entries, combining service_ids that resolve to the exact same set of service dates.
  • New transform strategy to fix shapes which are used for the wrong direction of travel.
  • Fix to properly handle using the library in non-English locales. issue
  • Full Documentation:


  • Introduce onebusaway-gtfs-hibernate-cli, a utility for loading GTFS into a database - details
  • Support for stops.txt platform_code field - issue
  • Support for negative arrival and departure times in stop_times.txt, along with a "shift_negative_stop_times" GTFS transformer operation for normalizing feeds with negative stop-times.
  • Fix workaround for Java timezone bug - issue
  • Introduce RemoveRepeatedStopTimesInSameTripStrategy, a GTFS transformer strategy - javadoc
  • Full Documentation:


  • Support for stops.txt stop_timezone field - issue
  • Support trip-2-trip transfers extension to transfers.txt - issue
  • Reduced memory consumption for ShapePoints and StopTimes - issue
  • Always include route_short_name and route_long_name in routes.txt output - issue
  • onebusaway-gtfs-transformer-cli:
    • Use GTFS file and field names instead of OBA Java object and property names in matchers and updaters.
    • Support for "any(...)" matches.
    • New transforms: "trim_trip", "stop_times_factory", "calendar_extension", and "calendar_simplification".
  • onebusaway-gtfs-merge-cli:
    • Introduce a new OneBusAway GTFS merge tool for combining GTFS feeds.
  • Bug fixes:
    • NPE in ServiceDateUserType - issue
    • Better handling of routes.txt agency resolution - issue
    • Crash with calendar simplification transform for service_id with no active dates - issue
    • More useful file name when throwing CsvEntityIOException -issue
  • Full Documentation:



  • Migrate to GitHub.
  • When doing GTFS graph retention, allow the agency id referenced by stops, shapes, and service ids to refer to a non-existent agency. These elements don't technically require an agency in the same way routes do, so it's ok if they have a non-existent reference.
  • Add a custom field mapping for stop_lat and stop_lon in stops.txt that will better serialize their values when writing back to the output file. We ran into an issue when working with stop locations very close to the prime meridian where the stop_lon value was serialized using scientific notation. The new field mapping introduces a custom formatter that will enforce a more normal decimal representation when the value is written to the output file.
  • Allow input of multiple GTFS files to GTFS importer.
  • Better support for missing values when reading entity ids in the CSV-to-Object serialization library.
  • Support for frequencies.txt label_only field.
  • Better support for injecting new entities with the GtfsTransformer.
  • Full Documentation: