Skip to content

Add topo/dtopo input roadmap to dev/design - #748

Open
mandli wants to merge 3 commits into
clawpack:masterfrom
mandli:topo-input-roadmap
Open

Add topo/dtopo input roadmap to dev/design#748
mandli wants to merge 3 commits into
clawpack:masterfrom
mandli:topo-input-roadmap

Conversation

@mandli

@mandli mandli commented Sep 7, 2026

Copy link
Copy Markdown
Member

Design document for tracking and future plans for the heavy redo of the input file formats, notably topo, dtopo and met input.

Signed-off-by: Kyle Mandli <kyle.mandli@gmail.com>
Assisted-by: claude claude-opus-5
@mandli

mandli commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

PR Detailed Description -- Summarized by Claude

Why this is tracked rather than in .plans/

dev/design/README.md makes the case already: a source of truth in a gitignored
path cannot be reviewed, cannot be updated in the same PR as the code, cannot be
git blamed, and can be lost — several met-forcing docs were lost that way.
This roadmap is the topo/dtopo equivalent, and until now there was no topo
design doc at all; only the met ones existed.

The Contents entry in dev/design/README.md is updated in the same commit,
which that file's own same-PR rule requires.

What it records

§1 — merge order. The topo stack is strictly linear (#739#741
topo-input-parity), verified with git merge-base --is-ancestor rather than
assumed, plus the five independent PRs and the geoclaw-before-clawutil ordering
for #745 / clawutil#208.

§1 — supersession, with the evidence inline. #727 and topo-input-unify are
being closed and deleted, so the reasoning has to survive them:

This is what makes the close/delete auditable after the fact. It also records
that c893f238 fixed a bug in the same area: leaving nbuf4 = 0 on the
nc_has_crop branch silently dropped topo_buffer for every file
topo_entries() writes. master still has the single assignment; #739 has both.

§2 — five deferred items, each with what blocks it rather than a bare TODO:

±180 seam gap design decision; three specific questions written out
dtopo Fortran crop/wrap parity mandli#15
1D preprocessing scope opened by #745; needs a decision, not a default
build-flag hygiene radial_flat hardcode; the ALL_LFLAGS question
-DNETCDF / make new documented, with both rejected fixes recorded

The seam-gap entry is the one worth reading: it explains why buffer cannot
close the hole (after #739 the buffer is applied, but clamped to the file's own
extent, and neither entry has data past its edge), so the next person does not
re-try tuning it.

§3 — the #740 correction on record. The topo0save bug in #742 was
initially believed to explain the missing tsunami. It does not: #740 coarsens
GEBCO 20× to 0.167° while dtopo_usgs100227.tt3 is 0.101° (read from the
file header), so the finer topo_for_dtopo grid outranks the topo entries and
is deformed regardless. Recorded so the theory is not re-tried.

§4 — how each claim was checked, including what was not: that parity
passes CI on a machine other than the author's, and the remote tests.

The CI correction in the second commit

The first version of §2.3 said CI selects only python and slow markers.
That is wrong — testing.yml also has a regression-tests job, and
slow-tests.yml has matrix regression/python jobs. Found while checking
whether parity's tests/regression/topo_crop/ suite would actually run in CI.

The conclusion was unaffected and still holds — git grep -l 1d_classic -- tests/ .github/ is empty, so no 1D example is built or run anywhere in CI
but the supporting detail would have misled anyone auditing coverage, and it
mattered in the other direction too: regression is a first-class CI selector,
which is what #742's topo0save test and parity's topo_crop suite rely on.

The paragraph now carries a table of all five jobs with their marker strings
quoted verbatim from the workflow files, each checked against
grep -hoE '\-m "[^"]+"' .github/workflows/*.yml.

Verification

Documentation only, so the check is that the references are real. Each was
confirmed against the repositories at 2026-09-07:

Signed-off-by: Kyle Mandli <kyle.mandli@gmail.com>
Assisted-by: claude claude-opus-5
…admap

Signed-off-by: Kyle Mandli <kyle.mandli@gmail.com>
Assisted-by: claude claude-opus-5[1m]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant