Task: Close out the grammar change

Table of Contents

This page documents a task in the Make the oresmd URI grammar explicit and typed story. It captures the goal, current status, acceptance, and any notes or results.

1. Goal

The three loose ends the grammar change left are tied: the corpus walk runs by default rather than behind a hidden tag, the record describes the grammar that ships, and todaysmarket.xml is settled as reference data beside the other ORE configuration documents.

The work rides the previous unit's branch, because promoting the walk is only meaningful once the walk passes.

2. Status

Field Value
State DONE
Parent story Make the oresmd URI grammar explicit and typed
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-01

3. Acceptance

  • The whole-corpus import runs in the default test set, so a regression is visible without a hidden tag.
  • The coverage record and the knowledge pages describe the grammar that ships.
  • todaysmarket.xml is recorded as owned by ores.refdata, with the placement rule that decides it, and report_market_binding's comment no longer calls it market data.

4. Plan

The acceptance is three edits, not a design:

  • service_corpus_import_tests.cpp: drop the leading . from the walk's tag, so Catch2 runs it, and say in the file header why it was hidden and why that was the wrong call.
  • market_data_urn.org and the codegen coordinate gate: already rewritten by the generation unit, so this unit only checks them against the shipped grammar.
  • ores.reporting.report_market_binding.org: its comment called todaysmarket.xml market data belonging to another component; the story's Decisions record says ores.refdata owns it, so the comment follows. ores.reporting is regenerated for the one comment.

5. Measurements

Every number this task claims about a tree, with the command that produced it and the commit it was measured at. A number without both is not a measurement, because a clean-up record describes a tree and trunk moves under a branch: a consumer count, a gate's component count and a suite's size all change with no code changing, and the reader of a bare number cannot tell which tree it came from. Where the raw output matters, put it in an evidence/ file beside the task and name that file in the Command column.

What Value Command Commit
Whole tree, final 89 of 89 suites green, 1,945s ctest -j 4 b0117e781c
Corpus walk in the default set Runs; suite about 1,800s ctest -R 'ores.marketdata.core.tests' b0117e781c

6. Notes

7. Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

8. PRs

PR Title
#2497 [marketdata] Store the datum's oresmd URI as the observation's coordinate

9. Review

Comment summary File Decision Notes
       

10. Result

The story's three loose ends are tied, and the corpus walk is the acceptance rather than a thing nobody ran.

  • The walk is promoted out of [.corpus-full] and runs by default. It takes about thirty minutes, which is why it was hidden; hiding it also hid the acceptance, so a change that broke the walk could merge green. The scheduled continuous-linux job carries the cost.
  • Its suite runs alone (RUN_SERIAL). Promotion put a half-hour, database-heavy suite beside every other suite in a parallel run, and that was enough to lose a race in report_definition_eventing_integration_tests: the test asserts its version history is unchanged immediately after a delete, while the service's notification re-drive can still be writing. The check is green in the serialized set and red in the parallel one, which is a defect in that generated test rather than in the walk; the serialization keeps the default set honest until the assertion is fixed.
  • The record describes the grammar that ships: market_data_urn.org was rewritten in the generation unit, and the codegen coordinate gate checks the new spelling rather than the retired point bag.
  • todaysmarket.xml is recorded as ores.refdata's beside curveconfig.xml, with the rule that decides it (a document that names curves is reference data; a document that configures an analytic's market is ores.analytics; a run document is ores.reporting). The story's Decisions section carries it, and report_market_binding's comment no longer calls the file market data that belongs to another component.

Verified by the previous unit's run: the walk green, all 89 ctest suites green, and the database rebuilt from the branch.

Emacs 29.3 (Org mode 9.6.15)