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.organd 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 calledtodaysmarket.xmlmarket data belonging to another component; the story's Decisions record saysores.refdataowns it, so the comment follows.ores.reportingis 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 scheduledcontinuous-linuxjob 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 inreport_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.orgwas rewritten in the generation unit, and the codegen coordinate gate checks the new spelling rather than the retiredpointbag. todaysmarket.xmlis recorded asores.refdata's besidecurveconfig.xml, with the rule that decides it (a document that names curves is reference data; a document that configures an analytic's market isores.analytics; a run document isores.reporting). The story's Decisions section carries it, andreport_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.