Skip to content

Committed output.json references index.html / cmec_output.log that are never produced (absent from manifest native) #763

Description

@lewisjared

Summary

Committed regression output.json bundles reference two artefacts — index.html (top-level index) and cmec_output.log (provenance.log) — that the diagnostics never actually produce, so they are absent from the test case's manifest.json native block. The committed bundle and the native manifest are therefore out of sync: a consumer reading output.json would expect those files to exist, but ref test-cases replay has nothing to materialise for them.

Surfaced in review of #762 on extratropical-modes-of-variability-nam/cmip7:

output.json still references index.html and cmec_output.log, but neither artefact is listed under native here. Add them to native, or remove those references from output.json.

Root cause

OutputBundle.create_template() seeds every CMEC output bundle with hardcoded defaults:

packages/climate-ref-core/src/climate_ref_core/pycmec/output.py:202-218

return {
    OutputCV.INDEX.value: "index.html",
    OutputCV.PROVENANCE.value: {
        ...
        OutputCV.LOG.value: "cmec_output.log",
    },
    ...
}

These defaults persist into the committed output.json even when the diagnostic writes neither file.

Scope (committed baselines on main, 43 cases scanned)

Artefact Referenced by Present in native
cmec_output.log all 43 0 — never generated by any provider
index.html all 43 ilamb 20/20; pmp 0/21, example 0/2

So cmec_output.log is a universal dangling reference, and index.html dangles for the 23 pmp + example cases (ilamb genuinely produces it). esmvaltool baselines (pending in #760) most likely follow the pmp/example pattern.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions