Story: Fix missing ORES_REFDATA_CORE_EXPORT on refdata/scheduler service classes
Table of Contents
This page documents a story in Sprint 22. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Every *_service class meant to be called across .so boundaries (party_service, portfolio_service, and 17 other refdata services, plus scheduler's job_definition_service) is missing its ORES_<COMPONENT>_CORE_EXPORT annotation. With the project's -fvisibility=hidden default, this makes their methods unresolvable from any other shared library or executable, surfacing as undefined-reference linker errors (discovered via ores.iam.core.tests failing to link against party_service::get_party_at_version and counterparty_service::get_counterparty_at_version, and counterparty_repository::read_at_version needing a stale .o recompile). Add the export.hpp include and EXPORT macro to every affected class; leave *_mapper classes alone since those are internal-only, never called cross-.so.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 22 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-09 |
Acceptance
- All 19 ores.refdata.core service classes and ores.scheduler.core's job_definition_service carry their EXPORT macro.
- ores.iam.core.tests and a full project build link cleanly with no undefined-reference errors.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Scaffold story: Fix missing ORES_REFDATA_CORE_EXPORT on refdata/scheduler service classes | DONE | 2026-07-09 | 2026-07-09 | Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR. |
| Add missing EXPORT macros to service classes | DONE | 2026-07-09 | 2026-07-09 | Initial task for: Fix missing ORES_REFDATA_CORE_EXPORT on refdata/scheduler service classes |
Decisions
- Deliberately excluded
*_mapperclasses from the EXPORT sweep since they are internal-only, never called across a.soboundary. - Also touched
counterparty_repository.cpp(no content change) to force recompilation of a stale.othat predatedread_at_versionbeing added.