Releases: OpenRailAssociation/osrd
Releases · OpenRailAssociation/osrd
Version 1.2.18
What's Changed
Bug fixes 🐛
- front: remove the residual line displayed in the TOD by @SarahBellaha in #17118
Full Changelog: v1.2.15...v1.2.16
Version 1.2.17
What's Changed
Features 🎉
- 🚧 New scenario interface
- Display new itinerary modal by default by @Uriel-Sautron in #16791
- Use new timestoptable by default by @Math-R in #16913
- Remove switch times stop tables by @Uriel-Sautron in #17071
- 🚧 Timestops table header
- Itinerary modal - computless tracks
- 🚧 Hourly patterns
- Change train_schedule start_time from datetime to ms offset by @aschantraine in #16702
- Add backwards compat for old start_time format by @emersion in #17044
- 🚧 Rolling stock permissions
- Add Rolling stock type migration to OPENFGA_MIGRATIONS by @younesschrifi in #16837
- Add rolling_stock_privileges protected operational by @younesschrifi in #16827
- 🚧 Space Time Diagram and Track Occupancy Diagram selection and drag&drop
- 🚧 New STDCM Debug Interface
Smaller enhancements:
- editoast: use specific svg for signal search list icons by @aschantraine in #16388
- create or update train without rolling stock by @Uriel-Sautron in #16857
- Add default cursor style when not over custom suggestion by @achrafmohye in #16903
- adapt railway manager interface to add simulated steps by @MartinBourbier in #16626
- allow no train selection in op studies by @RomainValls in #16384
Code refactoring ♻️
Core:
- Delete RJSTemporarySpeedLimit by @Khoyo in #16853
- Convert rjs track objects to kotlin by @Khoyo in #16852
- Convert rjs infra classes to kotlin by @Khoyo in #16855
- Make otel agent installed through gradle by @woshilapin in #16896
Editoast:
- Make stdcm core pathfinding input creation method take a consist as a parameter by @Erashin in #16556
- Divide
views/mod.rsin submodules by @leovalais in #16848 - Organize views files in an
operational_studiesmodule by @leovalais in #16859 - Doc: how to flush cache by @bougue-pe in #16849
- Authz: migrate get_infra_readers, get_infra_writers and get_infra_owners to v2 by @Sh099078 in #16263
- Authz: a few minor improvements by @leovalais in #16790
- Remove duplicate test by @woshilapin in #16893
- Authz: deprecate
StorageDriver::get_user_infoby @leovalais in #16858 - Type
fgaerrors properly by @leovalais in #16736 - Update install requirements in README by @neigeantre in #16911
- S3: fallback to lib default behavior on missing variables by @eckter in #16901
- Remove slice-of-reference pattern by @woshilapin in #16923
- Apply
tokio::testdecorator first by @woshilapin in #16924 - Remove flag used to return core payload by @eckter in #15657
- Some typos here and there by @woshilapin in #16862
- Core_client: compare mocked JSON, not strings by @leovalais in #16894
- Get rid of
enum Rejectionin authorizers by @leovalais in #16823 - Authz: simplify
Checks withenum Actorby @leovalais in #16941 - Make stdcm request validation tests parameterized by @woshilapin in #16895
- Add authorizers unit tests by @leovalais in #16965
- Add
on_bodyonMockingClientby @woshilapin in #16943 - Improve
/stdcmtests with.on_body()by @woshilapin in #16944 - Add 'can_revoke' privilege by @QuentinHayK in #16620
- Add get local_track_names from path_steps endpoint by @younesschrifi in #16609
- Use realistic values for rolling resistance in the tests by @neigeantre in #17054
- Replace infra grant in views by @younesschrifi in #16973
- Refactor user_privileges to deduplicate resource matching by @younesschrifi in #17083
- Migrate uses of
user_rolestov2::subject_rolesby @SaumonDesMers in #16281 - Move utoipa form to osrd-project by @flomonster in #17072
- Pathfinding, simulation, stdcm: refacto api backtrack field by @Erashin in #17027
- Use core_task for /train_schedules/:id/path by @Tristramg in #16904
- Authz: return can_revoke privileges in infra_privileges by @Sh099078 in #17070
Front:
- Remove now unused debug space-time chart in result tab by @eckter in #16825
- Disable NPM scripts for all dependencies by @emersion in #16819
- Replace RelatedOperationalPoint[] with RelatedOperationalPoint | null by @aschantraine in #16802
- Add usekeyboardshortcuts integration tests by @Yohh in #16939
- Remove references to removed flags by @eckter in #16934
- Remove unused updatetrainschedule helper by @theocrsb in #17065
Charts:
- docker: add lifecycle for s3 bucket by @gaetan-osrd in #16832
- chart: remove unnecessary comments by @gaetan-osrd in #16844
- ui-charts, storybook: various TOD-related fixes by @emersion in #16792
- editoast: install fga CLI from Docker by @emersion in #16900
- chart: add labels to editoast jobs by @flomonster in #16938
- chart: add editoast service account by @gaetan-osrd in #16910
osrd-schemas
- osrd_schemas_auto: make
models.pyhidden in review by @woshilapin in #16839 - osrd_schemas_auto: read spec from railway_manager_interface by @hamz2a in #16821
- ci: add codeowners entry for osrd_schemas_auto by @hamz2a in #16809
- editoast: avoid name collisions in
osrd_schemas_autoby @hamz2a in #16920 - python: use
osrd_schemas_autoinrailjson_generatorby @hamz2a in #16842 - python: move remaining schemas to
osrd_schemas_autoby @hamz2a in #16984
CI
- ci: check second line of commits is empty by @woshilapin in #16932
Miscellaneous:...
Version 1.2.16
What's Changed
Features 🎉
- ✅ Collapse nodes in NGE view
- ✅ NGE Traffic side
- Nge traffic side feature in OSRD by @Uriel-Sautron in #16628
- 🚧 Itinerary Modal
- Add operational point selection popup in itinerary modal by @achrafmohye in #16744
- 🚧 Consist change for STDCM
- 🚧 International operational point model
- 🚧 Rolling stock permissions
- editoast: add new rolling stock fga model by @younesschrifi in #16693
Smaller enhancements:
- Stdcm prevent ch default selection by @achrafmohye in #16358
- Block pathfinding in STDCM and show warning when CH is missing on any OP by @achrafmohye in #16800
- Add debug interface to access logged data by @eckter in #16301
Code refactoring ♻️
Core:
- core: reorganize worker command by @eckter in #16686
- core: avoid connection leak when editoast returns an error by @eckter in #16715
- core: scripts: bump urllib3 from 2.6.3 to 2.7.0 in /core/scripts by @dependabot[bot] in #16678
- core: handle a bunch of small warnings by @bougue-pe in #16795
- core: pathfinding: process path with backtracking by @bougue-pe in #16128
Editoast:
- editoast: stop inlining some named schemas in openapi by @hamz2a in #16675
- editoast: isolate infra_cache by @Khoyo in #16478
- editoast: update script to sync openapi by @bougue-pe in #16796
- osrd_schemas_auto: add auto-generated schemas lib by @hamz2a in #16687
- editoast: lighten the map tiles by @flomonster in #16708
- editoast: activate compression by @flomonster in #16728
- editoast: add --skip-if-exists to user add cli by @flomonster in #16722
- editoast: core_task: naming harmonization pass by @leovalais in #16741
- Models migration
- editoast: models: deprecate
trait Countby @leovalais in #16740
- editoast: models: deprecate
- Authz v2
- editoast: stop using
Regulator::ensure_userby @leovalais in #16356 - editoast: authz: stop using
Regulator::get_user_idby @leovalais in #16704 - editoast: remove
Regulator::group_membersby @leovalais in #16739 - editoast: authz: remove
StorageDriver::get_group_idby @leovalais in #16705 - editoast: authz: stop using
StorageDriver::get_group_infoby @leovalais in #16706 - editoast: reorganize
authz::v2content in submodules by @leovalais in #16709
- editoast: stop using
Front:
- Remove the need for useEffect in StdcmView, StdcmConfig and StdcmConsist by @DucNg in #16562
- front: use oxlint by @Signez in #16288
- front: test useCategoryOptions custom hook by @Yohh in #16689
- front: remove part field from projection data operational points by @SharglutDev in #16561
- front: handle RaiMI errors with forwarded status by @Synar in #16711
Misc:
- chart: lint chart with filled values by @gaetan-osrd in #16777
Bug fixes 🐛
- front: check convoy change incompatible constraints by @RomainValls in #16371
- front: fix suggestions filtering for rolling stock ComboBox by @achrafmohye in #16776
- front: preserve path step location when unfocusing without typing by @Akctarus in #16594
- editoast: fix path escape for sprites and fonts endpoints by @flomonster in #16768
- osrdyne: make the queue timeouts really long in single worker mode by @Khoyo in #16824
- editoast: skip group if does not exist by @QuentinHayK in #16775
- front: load conflicts last while fetching scenario data by @Pivouane in #14544
- editoast: fix bump generated version by @flomonster in #16822
E2E Tests
- front, e2e: migrate test assets to TypeScript and update times-stops … by @Maymanaf in #16625
- e2e: temporarily skip trainSchedule validity reason step by @Maymanaf in #16746
Dependency bumps 🗞️
- front: bump typescript-eslint from 8.58.2 to 8.59.2 by @SarahBellaha in #16692
- tests: bump pydantic from 2.13.0 to 2.13.4 in /tests in the patch group across 1 directory by @dependabot[bot] in #16650
- tests: update poetry-core requirement from >=2.3.2 to >=2.4.0 in /tests by @dependabot[bot] in #16652
- front: upgrade NGE with Angular v18 by @emersion in #16691
- ci: upgrade dco-check to 0.5.1 by @Khoyo in #16820
- nix: update the flake for playwright by @woshilapin in #16703
- core: build.gradle: update deprecated flag syntax by @eckter in #16798
From dependabot
- osrdyne: bump tokio from 1.52.2 to 1.52.3 in /osrdyne by @dependabot[bot] in #16737
- osrdyne: bump lapin from 4.7.1 to 4.7.2 in /osrdyne by @dependabot[bot] in #16738
- gateway: bump the opentelemetry group in /gateway with 3 updates by @dependabot[bot] in #16742
- front: bump the patch group in /front with 7 updates by @dependabot[bot] in #16762
- front: bump react-router-dom from 7.14.2 to 7.15.0 in /front by @dependabot[bot] in #16764
- front: bump jsdom from 28.1.0 to 29.1.1 in /front by @dependabot[bot] in #16656
- front: bump @tailwindcss/postcss from 4.2.4 to 4.3.0 in /front by @dependabot[bot] in #16763
- front: bump the react group across 1 directory with 2 updates by @dependabot[bot] in #16754
- front: bump i18next-http-backend from 3.0.6 to 4.0.0 in /front by @dependabot[bot] in #16766
- editoast: bump lz4_flex from 0.13.0 to 0.13.1 in /editoast by @dependabot[bot] in #16758
- core: bump the patch group in /core with 3 updates by @dependabot[bot] in #16757
- editoast: bump openssl from 0.10.79 to 0.10.80 in /editoast by @dependabot[bot] in #16808
- core: scripts: bump idna from 3.11 to 3.15 in /core/scripts by @dependabot[bot] in #16806
- tests: bump idna from 3.11 to 3.15 in /tests by @dependabot[bot] in #16805
- editoast: bump tower-http from 0.6.8 to 0.6.10 in /editoast by @dependabot[bot] in #16759
- front: bump @playwright/test from 1.59.1 to 1.60.0 in /front by @dependabot[bot] in #16788
- editoast: bump lapin from 4.7.2 to 4.7.4 in /editoast by @dependabot[bot] in #16781
- editoast: bump serde_with from 3.19.0 to 3.20.0 in /editoast by @dependabot[bot] in #16779
- front: bump vitest from 4.1.5 to 4.1.6 in /front in the vitest group by @dependabot[bot] in #16782
- editoast: bump tokio from 1.52.1 to 1.52.3 in /editoast by @dependabot[bot] in #16756
- actions: bump mikepenz/action-junit-report from 6 to 6.4.0 by @dependabot[bot] in http...
Version 1.2.15
What's Changed
Features 🎉
- 🚧 New itinerary modal
- front: enable rocket path filling without rolling stock by @Synar in #16221
- Handle scroll and spacing by @achrafmohye in #16291
- Add error messages for missing path steps in new itinerary modal by @Akctarus in #15995
- front: Allow saving itinerary modal with missing/unrecognized rolling stock by @theocrsb in #16560
- 🚧 Consist change for STDCM
- 🚧 New time table
- front: allow suggestions-list to overflow path-step-list by @Akctarus in #16595
- New times stop table: Add power restrictions column by @kmer2016 in #16005
- front: stdcm: display asked ops in grey on result by @sim51 in #16166
- front: show sign of margin diffs in times stops table by @Synar in #16243
- front: virtualize the new times stops table by @Signez in #16161
- 🚧 Train selection in space time diagram
Smaller enhancements:
- Display trains name below occupancy blocks on chronogram by @aschantraine in #16424
- STDCM - Progression: adding initializing computation message by @sim51 in #16175
- OSM to railjson script:
- Minor upgrades by @SaumonDesMers in #16209
- Block signals with speed limits by @SaumonDesMers in #16010
Code refactoring ♻️
Core:
- core: skip scheduled point that are already within the tolerance by @eckter in #16694
- core: explorer: save current block range by @eckter in #16619
- core: stdcm: trim nodes as they're added to the queue by @eckter in #16436
- core, front: move point filtering logic from front to core by @MartinBourbier in #16305
- core: script: add a script to download work schedules by @eckter in #16273
- core: script: update default profile names by @eckter in #16259
- core: scripts: add flag to trim exported trains by @eckter in #16298
Editoast:
- editoast: compress tiles with gzip to optimize valkey traffic by @flomonster in #16664
- editoast: simplify traces for authentication middleware by @woshilapin in #16480
- editoast: rename
core.Fooopenapi schemas toCoreFooby @hamz2a in #16613 - feature: new train schedules exceptions by @Wadjetz in #15653
- editoast, front: clean up stdcm api following consist schedule changes by @Erashin in #16545
- editoast: add title to error context objects in openapi by @hamz2a in #16591
- editoast:
/match_operational_pointreturn optional value instead of arrays by @QuentinHayK in #16274 - editoast, front: add tags for TrackOffset and OperationalPointPartReference by @younesschrifi in #15889
- editoast: openfga tuples gc by @aschantraine in #14115
- editoast: suppress unused trains_count field by @aschantraine in #16227
- editoast: update readme as the crates extension is deprecated by @JulesPeignier in #16242
- editoast: enforce unicity for signaling systems and electrifications by @woshilapin in #16283
- editoast: zero-copy From for NonBlankString by @hhirtz in #16320
- editoast: add titles to openapi variants by @hamz2a in #15974
- editoast: improve tracing for the health check by @woshilapin in #16422
- editoast: adapt authentication_validation_middleware db call by @flomonster in #16427
- editoast: disable payload compression for stdcm endpoint by @MartinBourbier in #16306
- editoast: rewrite using
TryFutureExtby @woshilapin in #16474 - Move models to
editoast_modelscrate - editoast: remove zstd and regex dependencies by @hhirtz in #16178
- editoast: models: move macro_node and macro_note to editoast_models by @Khoyo in #16477
- editoast: finish model migration by @Khoyo in #16483
- editoast: models: remove the use crate as editoast_models hack by @Khoyo in #16546
- editoast: models: add missing top level re-exports by @Khoyo in #16557
- editoast: models: move stdcm_search_env to editoast_models by @Khoyo in #16476
- editoast: models: move root tests to editoast_models by @Khoyo in #16475
- editoast: move TrainScheduleSet to editoast_models by @Khoyo in #16401
- Rename
paced_trainintotrain_schedule- editoast: replace paced_train with train_schedule with views/train_schedule.rs by @younesschrifi in #16208
- editoast: replace paced train with train schedule in scenario view by @younesschrifi in #16222
- Tasks
- editoast: ensure continuity of traces in
SimulationEnvby @woshilapin in #16473 - editoast: the
SimulationEnvshould not fail on missing path items by @woshilapin in #16352 - editoast: integration of SimulationEnv by @woshilapin in #15468
- editoast: fix PathfindingEnv deduplication by @leovalais in #16224
- editoast: ensure continuity of traces in
- Authz v2
- editoast: remove
StorageDriver::add_user_identitiesby @leovalais in #16311 - editoast: authz: remove
StorageDriver::ensure_groupby @leovalais in #16353 - editoast: remove role checking preambles by @leovalais in #16507
- editoast: authz: replace
StorageDriver::list_usersby direct DB access by @leovalais in #16302 - editoast: authz: remove
StorageDriver::list_groupsby @leovalais in #16350 - editoast: authz: remove
Regulator::infra_direct_grantby @leovalais in #16317 - Factorize editoast privilege check guardrail by @leovalais in #16176
- editoast: authz: removes
StorageDriver::delete_groupby @leovalais in #16309 - editoast: authz: removes
StorageDriver::delete_userby @leovalais in #16308 - editoast: fga: move client definitions in submodules by @leovalais in #16251
- editoast: port infra privileges retrieval to
authz::v2by @leovalais in #16139
- editoast: remove
Front:
- front: remove timetableitem by @SharglutDev in #16238
- front, test: add readme for integration and unit tests by @Yohh in #16672
- front: rework TimesStopsRowNew.id by @emersion in #16426
- front: drop getStepLocation() by @emersion in #16428
- front: ui: add custom value support to combobox by @theocrsb in #16559
- front: map: remove unused constants and simplify a bit by @Tristramg in #15650
- front: drop withoutSimulation param from upsertTimetableItems() by @emersion in ht...
osrd-ui v0.0.83
What's Changed
- front, ui: make sure eslint can be run from anywhere by @Signez in #15524
- ui-core: fix combobox outside click by @SharglutDev in #15553
- ui-charts: chronogram enhancements by @SarahBellaha in #15756
- front, ui: drop eslint-plugin-only-warn dependency by @emersion in #15887
- ui-charts: fix infinite loop when all occupancy zones overlap by @Akctarus in #16064
- front, ui: style checkbox inputs directly by @Signez in #15923
- front, ui: upgrade TypeScript to v6 by @emersion in #16225
- front: ui: add custom value support to combobox by @theocrsb in #16559
Full Changelog: ui-v0.0.82...ui-v0.0.83
Version 1.2.14
What's Changed
Features 🎉
- 🚧 New time table
- 🚧 STDCM - Edit a consist during travel
- ✅ STDCM - Progression on the map
Smaller enhancements:
- ✅ Add sponsors subsection to stdcm help module by @achrafmohye in #16171
Code refactoring ♻️
Editoast:
- 🚧 New authz API:
- editoast: introduce
UserAuthorizerforProtectedauthenticated operations by @leovalais in #15857
- editoast: introduce
- editoast: replace paced_train.rs with train_schedule.rs in views by @younesschrifi in #16140
- editoast: remove useless dependencies by @woshilapin in #16147
Bug fixes 🐛
- Fix crash when editing a train with unmatched path steps by @achrafmohye in #16117
- editoast: fix train_schedule_train_schedule_set_id_id_idx index creation by @flomonster in #16169
- editoast: fix scenario search by @aschantraine in #16179
- front: fix nge for asymmetric trainruns travelTime by @aschantraine in #16258
- front: fix list rolling stock in debug mode by @flomonster in #16267
- staging: bug fixes already merged in dev by @Synar in #16355
- front: fix crash when closing-reopening scenario by @RomainValls in #16373
- front: fix day change banner in times stops table by @Akctarus in #16006
- front: virtualize the new times stops table by @Signez in #16261
- staging: editoast: accept trigrams with 4 chars or more by @hhirtz in #16216
- front: increase op search size response by @RomainValls in #16303
- front: persist track selection when pathfinding fails by @RomainValls in #16276
- front: show error message on train name if empty by @RomainValls in #16314
- front handle enter on suggestions by @RomainValls in #16372
- editoast: disable payload compression for stdcm endpoint by @MartinBourbier in #16380
- core, front: move point filtering logic from front to core by @MartinBourbier in #16381
- editoast: add max pool size for valkey by @flomonster in #16437
- editoast: improve tracing for the health check by @woshilapin in #16430
- front: select edited train on update by @Synar in #16409
- front: fix crash when reloading conflicts by @Synar in #16395
E2E Tests
Dependency bumps 🗞️
From dependabot
- osrdyne: bump tokio from 1.50.0 to 1.51.0 in /osrdyne by @dependabot[bot] in #16138
- editoast: bump sha1 from 0.10.6 to 0.11.0 in /editoast by @dependabot[bot] in #16099
- front: bump eslint-plugin-storybook from 10.3.1 to 10.3.3 in /front in the storybook group across 1 directory by @dependabot[bot] in #16110
- front: bump @chromatic-com/storybook from 5.0.1 to 5.1.1 in /front by @dependabot[bot] in #16106
- front: bump lodash-es from 4.17.23 to 4.18.1 in /front by @dependabot[bot] in #16067
- front: bump vitest from 4.1.0 to 4.1.2 in /front in the vitest group across 1 directory by @dependabot[bot] in #16096
- front: bump oxfmt from 0.41.0 to 0.42.0 in /front by @dependabot[bot] in #16104
- core: bump the patch group in /core with 3 updates by @dependabot[bot] in #16184
- tests: bump the patch group in /tests with 2 updates by @dependabot[bot] in #16190
- core: scripts: bump the patch group in /core/scripts with 4 updates by @dependabot[bot] in #16193
- editoast: bump redis-test from 1.0.2 to 1.0.3 in /editoast by @dependabot[bot] in #16188
- editoast: bump inventory from 0.3.23 to 0.3.24 in /editoast by @dependabot[bot] in #16192
- editoast: bump tokio from 1.50.0 to 1.51.0 in /editoast by @dependabot[bot] in #16187
- editoast: bump postgres-openssl from 0.5.2 to 0.5.3 in /editoast by @dependabot[bot] in #16182
- editoast: bump insta from 1.47.1 to 1.47.2 in /editoast by @dependabot[bot] in #16183
- editoast: bump indexmap from 2.13.0 to 2.13.1 in /editoast by @dependabot[bot] in #16186
- editoast: bump axum-test from 19.1.1 to 20.0.0 in /editoast by @dependabot[bot] in #16189
- editoast: bump lapin from 4.3.0 to 4.4.0 in /editoast by @dependabot[bot] in #16191
Full Changelog: v1.2.13...v1.2.14
Version 1.2.13
What's Changed
Features 🎉
- ✅ Track occupancy diagram non simulated
- 🚧 New itinerary modal
- front: empty combobox value when pathstep is invalid by @RomainValls in #15836
- front: implement new itinerary map track selection by @achrafmohye in #15419
- 🚧 New time table
- 🚧 NGE - asymetry
- front: nge: set backwards travel time by @leovalais in #16028
- 🚧 STDCM - Edit a consist during travel
- core: handle consist changes by @Sh099078 in #15992
- front: stdcm: hide gesico button in case of consist change by @sim51 in #16086
- core: add a SubPhysicsPath implementation by @Khoyo in #15997
- editoast: add ConsistSchedule in the stdcm endpoint by @ppitou in #15850
- front: stdcm: adding english help section for consist change by @sim51 in #16080
- Edit consist form to allow consist change by @DucNg in #15587
- 🚧 Handle backtracking trains
- core: adapt routing requirements to backtracking by @bougue-pe in #15965
Code refactoring ♻️
Front
- Optimize TimesStopsTable row filtering by @kmer2016 in #16053
- Add decompression middleware by @flomonster in #15611
- front: add useScenario hook tests by @achrafmohye in #15761
- front: remove timetable item id by @SharglutDev in #15811
- front: remove useless stdcmupgrade component by @Yohh in #16076
- front: switch to oxfmt from prettier by @Signez in #15786
Editoast:
- 🚧 New authz API:
- editoast: minor
TestAppchanges forauthzV2 by @leovalais in #16038 - editoast: authz: slightly improve
modelsRust interface by @leovalais in #16039 - editoast: identity verification middleware by @leovalais in #15769
- editoast: minor
- editoast: make paced information a whole object in the model by @woshilapin in #15944
- editoast: drop DB connection after use in middleware by @leovalais in #16037
- editoast: add index (train_schedule_set_id, train_schedule_id) by @leovalais in #16036
- editoast: get rid of non-utoipa usage of
common::geometryby @leovalais in #15994 - editoast: derive: model generated row type derive
Selectableby @leovalais in #15972
Core:
- core: implement OffsetRangeMap to replace DistanceRangeMap when solely using offsets to index by @MartinBourbier in #16024
- core: move TrainPhysicsIntegrator and cie. to osrd-mp by @hhirtz in #16022
- core: convert EnvelopeBuilder to kotlin by @Khoyo in #15999
- core: scripts: use saved infra when reproducing request by @eckter in #16115
- core: save loaded infras to s3 when available by @eckter in #16029
- core: use DistanceRangeMap for electrification-related maps and tractive effort curves by @hhirtz in #15538
- core: Use a binary search for DistanceRangeMap.get by @hhirtz in #15789
- core: DistanceRangeMap: add foreach by @eckter in #15829
- core: stdcm: cache previous edges in nodes by @Erashin in #15838
- core: SpacingRequirementAutomaton: pass callbacks directly to processUpdate by @Khoyo in #16090
- core: remove @JvmRecord annotations in osrd-mp by @hhirtz in #16056
- core: migrate overlay builder to kt + fix small bug by @eckter in #16052
Ops:
- gateway: add subject_claim_field to the OIDC configuration by @flomonster in #16091
- gateway: oidc: log id token (debug level only) by @flomonster in #16030
Miscellaneous:
- nix: add playwright browsers by @woshilapin in #16111
- osm_to_railjson: Create fake UIC and name for op by @SaumonDesMers in #15744
Bug fixes 🐛
- front: train schedule sets - fix series label by @SharglutDev in #15966
- front: fix useless double call to usecontext by @theocrsb in #16002
- ui-charts: fix infinite loop when all occupancy zones overlap by @Akctarus in #16064
- editoast: set response timeout for deadpool_redis connection by @flomonster in #16082
- editoast: fix the number of generated occurrences by @woshilapin in #16131
- front: ensures the edit only applies to a specific occurrence by @Akctarus in #16042
- front, ui: style checkbox inputs directly by @Signez in #15923
- front: fix itinerary modal instantly writing the train header to the store by @MartinBourbier in #15806
- front: fix deletion of empty pathStepItem in ItineraryModal by @RomainValls in #16009
- front: stdcm: disable consist when algo is running by @sim51 in #16079
- core: routing_reqs: allow never exiting a zone we never enter by @Khoyo in #16116
- e2e: fix paced trains test isolation by @Maymanaf in #16087
- front: handle occurences in times stops table name by @Akctarus in #16035
- front: fix combobox overlapping by @Akctarus in #15971
- front: fix suggestion display after clicking the Rocket by @Akctarus in #15975
- front: dont show error message on train name if focused by @RomainValls in #16011
- core: avoid simulation step with zero distance and non zero speed diff by @eckter in #16088
- front: remove the minimum stop time warning for a consist change by @DucNg in #16078
- front: use the Container icon for the update consist change button by @DucNg in #16074
- front: fix click not working on lower half of a pathstep item by @RomainValls in #15809
- core: fix unlikely "negative time delta" by @eckter in #16072
- Improve operational point name resolution by @achrafmohye in #16023
- front: refresh nge to keep the macroEditor in sync by @Akctarus in #15937
- front: fix spaces and hyphens in locales by @Signez in #16070
- front: fix puttrainschedulesbyid invalidates tags by @Yohh in #15970
- front: fix full modal re render when typing on train name field by @Akctarus in #15939
- front: allow submit with invalid pathsteps in itinerary modal by @RomainValls in #15819
- editoast: ensure margin and power restriction are strictly increasing by @woshilapin in #15996
- front: display only one empty line when we create a train by @Akctarus in #15973
E2E Tests
- e2e: restructure stdcm page objects and extract test constants by @Maymanaf in #15736
- tests: add missing power_restrictions to the test rolling stocks jsons by @Sh099078 in #16003
Documentation
- core: docs: update stdcm...
Version 1.2.12
What's Changed
Features 🎉
- ✅ Level crossing
- Add chronogram occupancy layer in ui-charts by @SarahBellaha in #15378
- Chronogram enhancements in ui-charts by @SarahBellaha in #15756
- Enhance level crossing occupancy retrieval by @SarahBellaha in #15854
- Chronogram integration by @SarahBellaha in #15785
- 🚧 New itinerary modal
- Use rolling stock header by @RomainValls in #15414
- Add info for unrecognized waypoints by @Akctarus in #15500
- 🚧 New time table
- Preparatory work new columns by @Pivouane in #15227
- Add requested point dot indicator in name and track columns by @kmer2016 in #15544
- Add short slip distance and reception signal columns by @Akctarus in #15214
- Add D+N day change banner by @kmer2016 in #15570
- Remove s from translation in header by @Akctarus in #15931
- Add t in useMemo dependency array by @Akctarus in #15934
- Tweak auto-compute rules on changes by @Signez in #15697
- Modify empty time cell by @Caracol3 in #15548
- 🚧 Track occupancy diagram non simulated
- 🚧 NGE - asymetry
- Infer asymmetry from round trips by @leovalais in #14673
- 🚧 STDCM - Edit a consist during travel early stages
- 🚧 STDCM - Display progress on the map
- 🚧 Handle backtracking trains
- Handle backtracking for zone occupation by @bougue-pe in #15684
- Handle backtracking for signal's critical position processing by @bougue-pe in #15774
Smaller enhancements:
- ✅ Only display sendToRaimi button in STDCM page if user is authorized by @Synar in #15706
- ✅ Stabilize pathfinding when all is equal by @bougue-pe in #15526
- ✅ Add trigram to operational points when making railjson from OSM by @SaumonDesMers in #15360
- ✅ Change markers on stdcm map and form by @sim51 in #15633
- ✅ Add https://demo.osrd.fr/ environment to bug issue template by @louisgreiner in #15596
- ✅ Share identical caches across requests in core by @eckter in #15550
- ✅ Send impersonate user header to RaiMI by @Synar in #15661
Code refactoring ♻️
Front
- Make usePathOps() return a Map by @emersion in #15405
- Move exceptions to their own database table
- Make sure eslint can be run from anywhere by @Signez in #15524
- Remove smooth travel by @Yohh in #15902
- Refactor train schedule set inside a proper manager object by @Signez in #15798
- Use the new endpoint of tuiles en liberté by @Tristramg in #15631
- Display ch and uic of origin and destination in old itinerary modal by @Synar in #15729
- Improve train set modals by @Signez in #15686
- Add tests for usePrevious hook by @Maymanaf in #15759
- Add tests on useCachedTrackSections hook by @Signez in #15659
- Add tests on useOutsideClick hook by @theocrsb in #15805
Editoast:
- Rename
PacedTraintoTrainSchedule- Adapt simulation summary endpoint by @younesschrifi in #15463
- Rename occupancy blocks endpoints by @younesschrifi in #15513
- Rename DELETE paced_train endpoint by @younesschrifi in #15509
- Adapt etcs braking curves endpoint to the renaming of paced train to train schedule by @younesschrifi in #15586
- Adapt put endpoint to the renaming of paced train to train schedule by @younesschrifi in #15584
- Adapt get paced trains from train schedule set endpoint to the renaming of the paced train to train schedule by @younesschrifi in #15585
- Adapt project path endpoint to the renaming of paced train to train schedule by @younesschrifi in #15572
- Adapt track occupancy endpoint to the renaming of paced train to train schedule by @younesschrifi in #15580
- Adapt project path op to the renaming of paced train to train schedule by @younesschrifi in #15707
- Adapt path endpoint to the renaming of paced train to train schedule by @younesschrifi in #15708
- Adapt simulation to the renaming of paced train to train schedule by @younesschrifi in #15605
- Adapt round trips endpoints to the renaming of paced train to train schedule by @younesschrifi in #15709
- Rename paced train error tag to train schedule by @younesschrifi in #15780
- Replace paced_train tag with train_schedule tag by @younesschrifi in #15888
- Log errored authentication headers by @leovalais in #15849
- authz: make
ProtectedSendagain by @leovalais in #15768 - New authz model:
v2::remove_membersby @SaumonDesMers in #15546- Add remove_roles to v2 by @SaumonDesMers in #15634
Protected::<T>::mapby @leovalais in #15753- New authentication model and middleware by @leovalais in #15762
- Use prebuilt binary to install diesel_cli by @Khoyo in #15637
- Keep building diesel_cli for non x86_64 archs by @Khoyo in #15757
- Cargo fmt by @leovalais in #15725
- Attempt to fix rust-analyzer type inference false negative by @leovalais in #15782
- Remove direct dependency to
geojsonby @leovalais in #15935 - Renaming of schedules into path waypoints by @woshilapin in #15843
- Do not send origin/destination in boundaries by @woshilapin in #15818
- Make similar train endpoint error codes more consistent by @leovalais in #15890
- Remove useless
.into_iter()by @leovalais in #15891 - Group everything that define what is Train by @woshilapin in #15855
- Replace
track_referencewithlocal_track_nameby @hamz2a in #15630 - Check arrival time on origin is zero by @woshilapin in #15920
Core:
- Extend the use of DistanceRangeMap as iterable by @bougue-pe in #15601
- Basic optimizations on linked lists and expensive assert by @eckter in #15603
- Implement toString for Neutral and Electrified by @hhirtz in #15608
- Store a single constraint in InfraExplorer implementations by @Sh099078 in #15711
- Use iterable even more to reduce alloc around DistanceRangeMap by @bougue-pe in https://github.com/OpenRailAssociation/osrd/pu...
Version 1.2.11
What's Changed
Features 🎉
- ✅ Train Schedule Set is now finalized
- Implement train schedule set import from catalog by @achrafmohye in #14947
- 🚧 Track Occupancy Diagram non-simulated:
- ️🚧 New Itinerary Modal
- Integrate rocket search in the new itinerary modal by @SarahBellaha in #14876
- Line management by @RomainValls in #14870
- Allow to submit all the time by @SharglutDev in #15448
- Add stop type toggle in path step item by @Yohh in #14845
- 🚧 New time table
- 🚧 STDCM - Edit a consist during travel early stages
Smaller enhancements:
- ✅ Display raimi stdcm request url as link by @Synar in #15400
- ✅ Paced Train can now be selected in timetable by @Uriel-Sautron in #15282
- ✅ The map within scenario is always visible now by @SharglutDev in #15235
Code refactoring ♻️
Front
- Add tooltip for acronyms in board names by @emersion in #14204
- Rename trainschedule to unique train by @SharglutDev in #15298
- Use create train helper everywhere by @Synar in #15071
- stdcm: make the layout horizontal instead of vertical (use css grid) by @DucNg in #15387
- Add useDebounce and useDebounceFunc tests by @Yohh in #15522
- Replace commited overrides.json with readme by @Synar in #15375
Editoast:
- Rename
PacedTraintoTrainSchedulePacedTrainResponseintoTrainScheduleResponseby @younesschrifi in #15288PacedTrainRoundTripsby @younesschrifi in #15284schemas::PacedTrainintoschemas::TrainScheduleby @younesschrifi in #15289GETPacedTrainsByTimetableIdendpoint by @younesschrifi in #15382PacedTrainIdParamintoTrainScheduleIdParamby @younesschrifi in #15396POSTTrainScheduleSetsIdendpoint by @younesschrifi in #15391GETpaced_trainby id endpoint by @younesschrifi in #15397PacedTrainIdsintoTrainScheduleIdsby @younesschrifi in #15462PacedTrainErrorinto TrainScheduleError by @younesschrifi in #15398PATCHpaced_train/moveendpoint by @younesschrifi in #15512
- Move exceptions to their own database table
- Editoat new authz model:
- editoast: setup next
authzmodel by @leovalais in #15296 - editoast: authz:
v2::add_rolesby @leovalais in #15539
- editoast: setup next
- editoast: improve doc on offset unit by @bougue-pe in #15464
- editoast: move path_item_respect_(times|margins) as free functions by @woshilapin in #15319
- editoast: remove
path_item_positionsfromSimulationSummaryby @woshilapin in #15321 - editoast: streamline the code avoiding intermediary variable by @woshilapin in #15470
- editoast: Use itertools to remove references to unstable API by @woshilapin in #15320
- editoast: front: change handling of null secondary_code in operational point matching by @aschantraine in #15055
- front, editoast: drop
ignore_secondary_codeparam from/match_operational_pointsby @emersion in #15499 - Return 201 status on timetable creation instead of 200 by @aschantraine in #15385
- Adapt mq_client to handle multiple responses by @ppitou in #15349
Core:
- Store and Restore elements from S3:
- core: scripts: add basic uv environment by @eckter in #15332
- Update paced_trains_url in download-timetable.py by @younesschrifi in #15515
- Refactor Pathfinding by @bougue-pe in #14490
- Log file describing why no solution was found by @eckter in #15399
- Convert ElectrificationRange to kotlin by @hhirtz in #15527
- Remove calls to DistanceRangeMap.asList by @hhirtz in #15537
Ops:
- chart: add resources value in openfga by @younesschrifi in #15429
- chart: add resources to migration_job.yaml by @younesschrifi in #15432
Miscellaneous:
- Remove grcov from test docker images by @flomonster in #15523
- osm_to_railjson: generate signals automatically by @SaumonDesMers in #14767
- raimi, front: add created_request_url to sendLastMinuteRequestResponse by @Synar in #15266
- osm_to_railjson: add a tracing subscriber by @SaumonDesMers in #15336
- front: improve macOS onboarding experience by @Signez in #15404
Bug fixes 🐛
- editoast: increase macro_node.trigram length to varchar(255) by @louisgreiner in #15519
- front: fix empty pathstepitem in itinerary modal by @RomainValls in #15416
- front: itinerary modal - fix marker update by @SharglutDev in #15449
- editoast: fix mm rounding inconsistencies with core by @bougue-pe in #15460
- osm_to_railjson: temporary fix for routes issue by @SaumonDesMers in #15434
- docker: fix editoast user add command invocation in pr-test script by @hhirtz in #15495
- compose: fix script shebang for nixos by @flomonster in #15520
- front: fix stopsCount for train schedules by @hhirtz in #15287
- front: fix invalid occurrence train marker color by @hhirtz in #15335
- front: fix empty input behavior in itinerary modal by @RomainValls in #15048
- front: fix max-height on scheduled table rows by @Akctarus in #15303
- front: fix scroll table in board wrapper by @Akctarus in #15386
- front: simulation results map - fix marker positions by @SharglutDev in #15444
- front: fix nge not refreshed on round trips by @Synar in #15389
- front: fix train schedule set rtk-query cache invalidation by @emersion in #15237
- front: right align OP names when width is beyond 1240px by @Akctarus in #15309
- front: add missing source-layer in the infra editor by...
Version 1.2.10
What's Changed
Features 🎉
- Train schedule sets
- Display only sets from current scenario in train set selector by @theocrsb in #15110
- Add endpoint to get paced trains for train schedule sets by @flomonster in #15050
- New itinerary modal
- New time table
- OSM Import
- Add sncf extensions by @Tristramg in #15046
- Import / Export
- Refactor roundTrips import export by @Wadjetz in #14949
- Clarify "import" button hover by @bougue-pe in #14974
- Simulax
- Railway Manager Interface
- Add requested departure date by @SharglutDev in #15293
- STDCM
- Others
- Filter rolling stocks by categories in rolling stock selector by @ppitou in #14907
- Display imported rolling stock names even if editoast does not recognize them as its own by @Pivouane in #14809
- Infrastructure editor can now auto-fix new type of errors 🪄 by @aschantraine in #14847
- Level crossings and operational points located outside the track length range are limited to the track length.
Code refactoring ♻️
Editoast:
- Rename
PacedTrainstruct model intoTrainSchedule(models) by @younesschrifi in #15231 - Rename
TrainSchedulestruct by @younesschrifi in #15201 - Change
PathItemCacheintoOperationalPointCacheby @ppitou in #14154 - Rename
paced_trainandpaced_train_round_tripstables by @younesschrifi in #15059 - Add
SimulationEnvby @leovalais in #14100 - Support
x-osrd-skip-authzin/authz/grantsby @leovalais in #15099
Core:
- scripts: clean up and document core scripts by @eckter in #15286
- scripts: remove unnecessary del after format change by @eckter in #15310
- Move
Action,BrakingType,IntegrationStepandUnitEqualityto osrd-mp by @hhirtz in #14905 - Convert
TestRollingStockto kotlin by @hhirtz in #14962 - Rename train path implementation by @eckter in #14983
- Move
EtcsBrakeParamsto osrd-mp by @hhirtz in #14954 - Convert
EnvelopeSimPathBuilderto kotlin by @hhirtz in #15066 - Add details to valkey telemetry by @eckter in #14985
- Make S3 writes async by @eckter in #15056
- S3 add sts dependency by @eckter in #14823
- Add telemetry spans for infra loading by @eckter in #15073
Ops:
- Change
rustfsport to 9900 by @Khoyo in #15238 - Remove
osrd-imagesservice by @flomonster in #14977
Miscellaneous:
- readme: add instructions to setup STDCM by @emersion in #15291
- github: add backport label to PRs targeting "staging" by @emersion in #15018
- ci: make
osrd-uinpm publication use trusted publishers by @Khoyo in #15041 - ci: update
flake.lockby @github-actions[bot] in #14980 - scripts: move core-related scripts from
scripts/tocore/scripts/by @eckter in #15257 - ci: unpin buildx version by @Synar in #15230
- ci: build and push
osrd-frontagain by @hhirtz in #15225 - ci: ensure
**/uv.lockare up to date by @hhirtz in #15102 - railway-manager-interface: make
SimulationReport.max_speeda number by @Castavo in #15024 - railway-manager-interface: remove
TrainSchedulelist from expected timetable transform response by @Castavo in #14966
Bug fixes 🐛
- editoast:
is_paceddepends ontime_windowANDintervalby @woshilapin in #15305 - front: fix nodes import in macro editor by @aschantraine in #15232
- front: fix z-index of invalid border in new table by @Akctarus in #15312
- front: fix
frameAllPathStepsfunctions in itinerary modal by @RomainValls in #15064 - core: fix a few backtracking bugs by @eckter in #15144
- editoast: fix projection with empty secondary_code by @aschantraine in #14935
- editoast: fix level crossings out of range check by @aschantraine in #14864
- nix: fix some outdated package names by @woshilapin in #15049
- editoast: fix auto-fixes test by @aschantraine in #15078
- editoast, front: fix typo by @aschantraine in #15077
- editoast: fix return status code for
post_paced_trainendpoint by @aschantraine in #15079 - front: fix rolling stock loader state before data is ready by @Maymanaf in #14846
- front: fix translation of the Space Time Chart Linear axis by @ppitou in #15117
- front: set waypointRef and isActive to Track Occupancy Diagram manchette items by @hhirtz in #15262
- editoast, front: lighter light rolling stock by @leovalais in #14933
- Keep new itinerary modal footer visible with scrollable body by @Caracol3 in #15116
E2E Tests
- Update E2E Tests README by @Maymanaf in #15185
- Add train category selection by @Maymanaf in #14989
- Add start new query steps for stdcm tests by @Maymanaf in #14914
Dependency bumps 🗞️
- tests: bump pytest from 7.2.2 to 9.0.2 by @hhirtz in #15096
- front: bump @playwright/test from 1.57.0 to 1.58.2 by @Maymanaf in #15146
- front: bump storybook to 10.2.6 by @SharglutDev in #15143
- editoast: bump lapin from 3.7.2 to 4.0.0 by @hhirtz in #15218
- osrdyne: bump lapin to 4.0.0 by @Khoyo in #15281
From dependabot
- editoast: bump the opentelemetry group in /editoast with 2 updates by @dependabot[bot] in #14791
- osrdyne: bump uuid from 1.19.0 to 1.20.0 in /osrdyne by @dependabot[bot] in #14976
- core: bump org.assertj:assertj-core from 3.27.6 to 3.27.7 in /core by @dependabot[bot] in #14975
- core: bump software.amazon.awssdk:s3 from 2.41.13 to 2.41.14 in /core by @dependabot[bot] in #14950
- front: bump postcss-preset-env from 10.6.0 to 11.1.1 in /front by @dependabot[bot] in #14892
- editoast: bump clap from 4.5.54 to 4.5.55 in /editoast by @dependabot[bot] in #14999
- core: bump com.diffplug.spot...