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).

See also

Emacs 29.1 (Org mode 9.6.6)