Skip to content

Add stopsWithRegularTransfers build config parameter#7426

Draft
t2gran wants to merge 1 commit intoopentripplanner:dev-2.xfrom
entur:keep_transfers_for_stops
Draft

Add stopsWithRegularTransfers build config parameter#7426
t2gran wants to merge 1 commit intoopentripplanner:dev-2.xfrom
entur:keep_transfers_for_stops

Conversation

@t2gran
Copy link
Copy Markdown
Member

@t2gran t2gran commented Mar 15, 2026

Note: This PR builds on top of #7425 and should be merged after that PR.

Note: I do not intend to merge this, unless this feature is requested from someone else, we
will merge this into Enturs CI/DI pipeline. We need this until there is a better fix for this. We intend
to work on that soon.

Summary

Introduces a new (experimental) build configuration parameter stopsWithRegularTransfers that
allows operators to explicitly list stop IDs for which regular transfers are always pre-computed
during graph build, even if those stops have no scheduled trips in the static data.

This is a targeted workaround for stops that are unused in static GTFS/NeTEx data but may be
visited at runtime via real-time updates (e.g. a platform a train can be re-routed to). Without
this, such stops are excluded from transfer pre-computation and become unreachable islands when a
real-time update routes a trip to them. The parameter is marked experimental and is intended
as a temporary measure until automatic transfer updates driven by real-time data are implemented.

Configuration

build-config.json

{
  "stopsWithRegularTransfers": ["RB:NSR:Quay:102541", "RB:NSR:Quay:209876"]
}

Documentation

  • doc/user/BuildConfiguration.md updated with the new parameter entry, description, and
    experimental warning.

Breaking Changes

None. The new parameter is optional with an empty-list default; existing behaviour is unchanged.

Testing

Unit Tests

  • Additional unit tests for the new stopsWithRegularTransfers path not yet added — marked experimental.
  • The PatternNearbyStopFilter logic change (removing the feature-flag guard on
    isSometimesUsedRealtime) is covered by the existing filter tests.

Manual Testing

The feature has been tested manually and works.

Documentation

  • ✅ Code follows OTP style guidelines (Prettier, JavaDoc)
  • ✅ Java Documentation updated for new public fields and methods
  • ✅ Configuration option documented in BuildConfiguration.md

Changelog

  • ✅ Relevant to operators using real-time trip re-routing to platforms not in static data.
    Should be included in the changelog as an experimental build-config addition.

Bumping the serialization version id

  • ✅ The build configuration is changed, so bumping the serialization version is required.

Note The +Bump Serialization Id label should be set if this is merged, but due to some limitation in our CI/DI pipeline I will wait with this until we have decided to merge this - hopefully we are not merging this.

@t2gran t2gran added this to the 2.9 (next release) milestone Mar 15, 2026
@t2gran t2gran added !Improvement A functional improvement or micro feature Entur Test This is currently being tested at Entur +Real-Time The issue/PR is related to RealTime updates +Config Change This PR might require the configuration to be updated. labels Mar 15, 2026
@t2gran t2gran force-pushed the keep_transfers_for_stops branch from 1a8d796 to 9ddf243 Compare March 15, 2026 14:13
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 15, 2026

Codecov Report

❌ Patch coverage is 92.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.33%. Comparing base (a8bc029) to head (5d40a8d).
⚠️ Report is 6 commits behind head on dev-2.x.

Files with missing lines Patch % Lines
...odule/transfer/filter/PatternNearbyStopFilter.java 71.42% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             dev-2.x    #7426   +/-   ##
==========================================
  Coverage      71.32%   71.33%           
  Complexity     21018    21018           
==========================================
  Files           2339     2339           
  Lines          86908    86928   +20     
  Branches        8605     8606    +1     
==========================================
+ Hits           61991    62007   +16     
- Misses         21919    21920    +1     
- Partials        2998     3001    +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@t2gran t2gran modified the milestones: 2.9, 2.10 (next release) Mar 18, 2026
Introduces a new build configuration parameter
`stopsWithRegularTransfers` that allows operators to explicitly
list stop IDs for which regular transfers are always
pre-computed during graph build, even if the stop has no
scheduled trips in the static data.

This is needed for stops that are normally unused in static
GTFS/NeTEx data but may be visited at runtime via real-time
updates (e.g. a platform a train can be re-routed to). Without
this, such stops are excluded from transfer pre-computation.

The parameter is marked experimental and is intended as a
temporary workaround until automatic transfer updates based on
real-time updates are implemented.
@t2gran t2gran force-pushed the keep_transfers_for_stops branch from 9ddf243 to 5d40a8d Compare March 20, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

+Config Change This PR might require the configuration to be updated. Entur Test This is currently being tested at Entur !Improvement A functional improvement or micro feature +Real-Time The issue/PR is related to RealTime updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant