Story: Hotfix: Keep the build warning-free on every toolchain
Table of Contents
This page documents a story in Sprint 29. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
(Describe the user-visible outcome this story delivers.)
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 29 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-11-08 |
3. Acceptance
The story closes on the tasks it finished:
- Point the web reads at the feed catalogue.
- Name the two types gcc refuses in a unity build.
- Share one run builder per test suite.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Name the two types gcc refuses in a unity build | DONE | 2026-10-31 | 2026-10-31 | gcc's -Wsubobject-linkage rejects a subobject whose type has no linkage. The nats client holds a latch from its anonymous namespace and the jwks coroutine holds a lambda from its own function scope, so the gcc nightly fails on ores.nats.lib and nothing in a clang build says so. |
| Point the web reads at the feed catalogue | DONE | 2026-10-31 | 2026-10-31 | The source entity became the feed, and the generated market_data_source protocol module went with it. The BFF still imported that module, so the web target stopped building on every platform. |
| Share one run builder per test suite | DONE | 2026-11-02 | 2026-11-02 | Two reporting tests and two marketdata tests each defined their own file-local run builder, which the unity build refuses; one marketdata copy had been renamed rather than shared. |
5. Decisions
6. Out of scope
The same nightly reports two more failures, and neither belongs to this story.
- The MSVC unity build runs out of template context.
tenor_basis_swap_pay_receive_entity.hpp'scolumns()spells its 23 bindings as a|-chained expression, andstd::tuple_catover them exhausts MSVC's template context insideunity_60_cxxofores.refdata.core. Unity batches 16 sources because7f2c4f037aturned it on (2026-10-27), so the batch is the unit MSVC runs out on. Either the binding expression wants a flatter shape or the batch wants to be smaller; both are a decision about generated code and build cost rather than a typo, and a Windows runner is the only place to check the answer.