Describe the problem
There is no reusable, infrastructure-agnostic module for computing the difference between two GTFS datasets. Any diff logic built inside mobility-feed-api risks being tightly coupled to MobilityData-specific infrastructure (feed IDs, GCS paths, database schemas), preventing reuse across projects or publication as a standalone community tool.
Proposed solution
Create a standalone GitHub repository containing a generic gtfs_diff Python package published to PyPI. The package takes two GTFS dataset sources (URLs or local paths) and produces a structured changelog. It must have zero knowledge of MobilityData-specific concepts (no feed IDs, no GCS paths, no database).
PyPI publishing: automated via GitHub Actions on tags matching v*, using pypa/gh-action-pypi-publish and a PYPI_API_TOKEN secret.
Acceptance criteria:
Alternatives considered
- Inline the diff logic inside
gtfs-change-tracker: creates tight coupling, prevents reuse as a standalone package.
- Keep the module inside
mobility-feed-api: still couples the logic to MobilityData infrastructure and makes PyPI publication awkward.
Describe the problem
There is no reusable, infrastructure-agnostic module for computing the difference between two GTFS datasets. Any diff logic built inside
mobility-feed-apirisks being tightly coupled to MobilityData-specific infrastructure (feed IDs, GCS paths, database schemas), preventing reuse across projects or publication as a standalone community tool.Proposed solution
Create a standalone GitHub repository containing a generic
gtfs_diffPython package published to PyPI. The package takes two GTFS dataset sources (URLs or local paths) and produces a structured changelog. It must have zero knowledge of MobilityData-specific concepts (no feed IDs, no GCS paths, no database).PyPI publishing: automated via GitHub Actions on tags matching
v*, usingpypa/gh-action-pypi-publishand aPYPI_API_TOKENsecret.Acceptance criteria:
GtfsDiff.compute()correctly identifies added, removed, and modified rows across all supported GTFS filespip install <package-name>README.mdincludes install instructions and a usage exampleAlternatives considered
gtfs-change-tracker: creates tight coupling, prevents reuse as a standalone package.mobility-feed-api: still couples the logic to MobilityData infrastructure and makes PyPI publication awkward.