Story: ORE domain roundtrip
Table of Contents
This page documents a story in Sprint 17. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Implement the ORE domain roundtrip as Thing 3 Phase 5: a CLI command that exports to ORE XML, re-imports, and verifies fidelity. Extend coverage to all four ORE XML document types (portfolio, market data, fixings, calendar).
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 17 |
| Now | Completed 2026-05-08. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-05-08 |
Acceptance
- All tasks complete; PR-by-PR breakdown in
git log.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Task: Add ore roundtrip command and retire Thing 2 coverage check | DONE | 2026-05-22 | 2026-05-22 | - Phase 1 (`ores.ore`): Implements `exporter::roundtrip_portfolio` — walks a directory of ORE portfolio XMLs recursively |
| Task: [ore] Add initial ORE domain roundtrip baseline (Thing 3, Phase 5) | DONE | 2026-05-22 | 2026-05-22 | - Fixes `leg_type_from_string` in `swap_instrument_mapper.cpp`: only 6 of 17 `legType` enum values were mapped, causing |
| Task: [ore,cli,scripts] Extend roundtrip to all four ORE XML document types | DONE | 2026-05-22 | 2026-05-22 | - Add `reverse()` to `calendar_adjustment_mapper` and `conventions_mapper` so all four ORE XML document types can be ser |
Decisions
- Retire Thing 2
- the Thing 2 coverage check was superseded by the Thing 3 roundtrip; the old check was removed to avoid maintaining redundant test infrastructure.
- All four document types
- coverage was immediately extended beyond portfolio to market data, fixings, and calendar to make the roundtrip meaningful as a regression gate.
Out of scope
- Convention document roundtrip (coverage deferred to a later sprint).