Skip to content

docs: OED reference site (spec-generated fields & coded values) - #286

Open
sstruzik wants to merge 6 commits into
mainfrom
docs/migration
Open

docs: OED reference site (spec-generated fields & coded values)#286
sstruzik wants to merge 6 commits into
mainfrom
docs/migration

Conversation

@sstruzik

@sstruzik sstruzik commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Stands up a Sphinx documentation site for OED, generated from the specification, so the standard is documented where it is defined.

Part of the cross-repo Oasis documentation restructure (Option B): each repository owns the docs for what it owns, and GenerateDocs aggregates them into the published site.

What this adds

  • A reference site generated from the spec. The field definitions and coded values are produced at build time from this repository's own specification data, so they cannot drift from it — edit the spec, and the pages follow.
  • Diátaxis structure — explanation and reference — with the shared Oasis branding used across all six component sites (Furo, the maroon/red palette, the logo, and a link back to the aggregated documentation home).
  • Cross-component links via intersphinx, driven by the orchestrator so references resolve between components in the assembled site.

OasisLMF and ODS_Tools link here for OED definitions rather than restating them, so this landing removes duplication elsewhere as well as adding pages here.

Review-round changes

  • Dead links repointed. The new link check over the assembled site found two links to OpenDataStandards/tree/master/OpenExposureData/Docs, a path that went when the Open Data Standards repository was split. Now ODS_OpenExposureData/tree/main/Docs, verified 200.
  • conf.py no longer aborts when OASIS_INTERSPHINX_MAP is exported empty: environ.get(NAME, "{}") only substitutes its default when the variable is unset, so an empty value reached json.loads("") and killed the build with a traceback. Now environ.get(NAME) or "{}", verified with the variable unset, set-but-empty and mapped.
  • style: split the one-line import in conf.py that autopep8 flagged as E401, so the cross-component block is lint-clean and identical to the other components'.

Two links in import-format.rst still point at OpenDataStandards/tree/master/OpenExposureData. Those resolve today, so nothing flags them, but they reference the superseded repository — left for a follow-up rather than widened into a fix for what is actually broken.

Build is 0 warnings standalone and in the aggregated build.

Add a Sphinx documentation site for OED, with fields and coded values generated from the specification.

…alues

Standalone Furo/MyST site for the Open Exposure Data standard. Field reference (by
input file: Loc/Acc/ReinsInfo/ReinsScope) and coded-value lists (perils, occupancy,
construction, country, coverage) are generated at build time from oed.json
(_ext/gen_oed_reference.py, which regenerates oed.json from the CSVs if absent);
plus the migrated spec chapters and an overview/hierarchy explanation. Cross-component
links via intersphinx (orchestrator-driven).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Build Preview

You can find files attached to the below linked Workflow Run URL (Logs).
Please note that files only stay for around 14 days!

Name Link
Commit 31bf943
Build https://github.com/OasisLMF/ODS_OpenExposureData/actions/runs/29595728157
Excel File excel_spec.zip
JSON File extracted_spec.zip

Add the Oasis logo (light/dark, always visible in the Furo sidebar), the maroon/red
Raleway palette matching oasislmf.github.io, and a persistent 'Oasis documentation home'
link (rewritten to page-relative by the aggregator) so you can return to the top of the
aggregated site from anywhere.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Build Preview

You can find files attached to the below linked Workflow Run URL (Logs).
Please note that files only stay for around 14 days!

Name Link
Commit 0b99e0d
Build https://github.com/OasisLMF/ODS_OpenExposureData/actions/runs/29597794013
Excel File excel_spec.zip
JSON File extracted_spec.zip

The sidebar logo now returns to the aggregated landing, so the redundant 'Oasis
documentation home' announcement bar is removed. Add the GitHub link in Furo's
conventional spot — the footer icons (bottom of every page).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Build Preview

You can find files attached to the below linked Workflow Run URL (Logs).
Please note that files only stay for around 14 days!

Name Link
Commit 61e484b
Build https://github.com/OasisLMF/ODS_OpenExposureData/actions/runs/31019937445
Excel File excel_spec.zip
JSON File extracted_spec.zip

@sstruzik
sstruzik marked this pull request as ready for review August 11, 2026 08:58
@sstruzik
sstruzik requested a review from benhayes21 August 11, 2026 14:05
`environ.get(NAME, "{}")` only substitutes the default when the variable is UNSET, so
exporting it empty reached json.loads("") and aborted the build with a traceback instead
of falling back to no cross-component inventories. Now `environ.get(NAME) or "{}"`.

Latent rather than live: the GenerateDocs orchestrator always writes valid JSON via
json.dumps, so it triggers only when the variable is exported empty by hand or by a CI
step. Found while reworking the same block in ODS_Tools (#289, 10e38ba) and applied
across the remaining components for consistency.

Verified by executing conf.py with the variable unset, set-but-empty and mapped: all
three succeed, and any pre-existing intersphinx_mapping entries are preserved.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Build Preview

You can find files attached to the below linked Workflow Run URL (Logs).
Please note that files only stay for around 14 days!

Name Link
Commit 04ce9bc
Build https://github.com/OasisLMF/ODS_OpenExposureData/actions/runs/32131775216
Excel File excel_spec.zip
JSON File extracted_spec.zip

autopep8 --diff --exit-code, which OasisLMF runs recursively over the repo, flagged
`import json as _ix_json, os as _ix_os` as E401. Pre-existing, and dormant only because
the code-quality workflow is not among the checks triggered on the docs PRs.

Same change ODS_Tools already took in eb349ea, so all six components now have an
identical, lint-clean cross-component block.

Verified: 0 autopep8 findings for this file (was 3), the CI flake8 selection is clean,
and conf.py still executes with OASIS_INTERSPHINX_MAP unset, set-but-empty and mapped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Build Preview

You can find files attached to the below linked Workflow Run URL (Logs).
Please note that files only stay for around 14 days!

Name Link
Commit cefb348
Build https://github.com/OasisLMF/ODS_OpenExposureData/actions/runs/32132142032
Excel File excel_spec.zip
JSON File extracted_spec.zip

The link check (GenerateDocs#54) found two links to
OpenDataStandards/tree/master/OpenExposureData/Docs, which 404s — that path went when the
Open Data Standards repo was split. The equivalent lives here:
ODS_OpenExposureData/tree/main/Docs (verified 200).

Note two further links in import-format.rst still point at
OpenDataStandards/tree/master/OpenExposureData. Those resolve today, so the check does not
flag them, but they reference the superseded repository rather than this one — worth a
follow-up sweep, kept out of here to stay a fix for what is actually broken.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Build Preview

You can find files attached to the below linked Workflow Run URL (Logs).
Please note that files only stay for around 14 days!

Name Link
Commit fc7d993
Build https://github.com/OasisLMF/ODS_OpenExposureData/actions/runs/32232654503
Excel File excel_spec.zip
JSON File extracted_spec.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants