E3SM-Project / E3SM-Project/simboard

[Enhancement]: Require case_hash and remove fallback subgroup behavior (follow up to #195 and #209)

Open
#215 0 comments 0 reactions 0 assignees View on GitHub
type: ui/ux
Dominant language
Python
Stars
1
Forks
2
Avg merge
24m
Merged PRs (30d)
15

Description

### Is your feature request related to a problem?

Follow-up to #195 and #209.
After removing the reference model, SimBoard still has two behavior paths:

- normal subgroup-oriented workflows for runs with `case_hash`
- fallback behavior for runs missing `case_hash`

Long term, that keeps extra branches in ingest, validation, and UI grouping.

### Describe the solution you'd like

Require `case_hash` for all simulations and remove the missing-hash fallback path.

High-level target behavior:

- every simulation has non-null `case_hash`
- every run belongs to exactly one `(case_id, case_hash)` subgroup
- ingest and manual create flows reject missing `case_hash`
- frontend no longer shows `Missing Case Hash` fallback grouping
- subgroup-oriented compare setup can assume `case_hash` is always present

### Describe alternatives you've considered

Keep fallback support indefinitely for missing-`case_hash` data.

That preserves compatibility with older or incomplete data, but it also preserves extra backend and frontend branches that weaken the long-term `case_hash`-scoped model.

### Additional context

Suggested follow-up scope:

- audit and remediate existing rows with null `case_hash`
- enforce non-null `case_hash` at the DB level
- reject missing `case_hash` in parser, ingest, and manual create flows
- remove missing-hash fallback UI/backend paths
- update tests and docs for `case_hash`-required behavior

This issue assumes #195 lands first so the system already uses `case_hash` grouping without the old reference simulation model. We also need to remove existing data in the dev build at NERSC (simboard-dev.e3sm.org) before the migration can work.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.