Skip to content

chore: harden v0.7 prerelease data contracts - #200

Merged
mwyau merged 2 commits into
mainfrom
release/v0.7.0-hardening
Aug 27, 2026
Merged

chore: harden v0.7 prerelease data contracts#200
mwyau merged 2 commits into
mainfrom
release/v0.7.0-hardening

Conversation

@mwyau

@mwyau mwyau commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Finished the v0.7 documentation/release-hardening follow-up without changing tracker algorithms or the package version.
  • Corrected stale external-data wording; promoted roadmap §§3.1 Xarray generalized ufunc integration, 3.2 Distributed backends, and 5.16 Reduced Gaussian grids to ✅ Implemented based on current code and tests; genuinely incomplete scope remains 🚧.
  • Replaced the unsupported roadmap math macro and repaired the Hodges Mermaid diagram with a vertical, readable frame-task/MGE-splice layout.
  • Routed the remote-Zarr integration URL through the centralized test-data helper and fixed two documentation cross-references so strict Sphinx builds cleanly.
  • Package version remains 0.7.0.dev0.

Why

The pinned external-data contract is now live and used by the test suite. The documentation now distinguishes available ERA5 inputs and routine data/slow selection from the one missing scientific parity product: the NCL-generated VODV reference fields. The roadmap also distinguishes implemented execution boundaries from optional scaling, benchmark, and independent-reference validation work. No algorithm, feature, test-data download, PyStormTracker-Data, or Validation-repository changes are included.

External test-data contract

All network-backed test data access uses the centralized helpers in tests/utils.py and the single pin:

PyStormTracker-Data v0.2.0-data

Both RAW_BASE and RELEASE_BASE are derived from DATA_VERSION; the integration and parity tests do not embed older Data tags or ad-hoc GitHub URLs.

Available assets used or supported by current tests include:

  • ERA5 MSLP and VO850, including N320 and regular-grid inputs;
  • ERA5 UV850 at 0.25° and 2.5°;
  • the raw-Git 2.5° MSLP Zarr store;
  • historical v0.0.2 Simple-track references; and
  • the 2024 monthly F320 MSLP/VO850 release assets.

Only the required NCL-generated VODV reference fields are missing from v0.2.0-data, so broader NCL/Spherepack kinematics parity remains deferred rather than skipped or replaced with a self-generated reference.

The committed December MSLP input and small NCL T5-42 output remain intentional offline fixtures; they are not alternate external-data pins.

Validation

  • uv run pytest -vv tests/unit/test_utils.py — 13 passed
  • uv run pytest -vv tests/unit/preprocessing/test_spectral.py — 16 passed
  • uv run pytest -vv tests/unit/test_cli.py — 54 passed
  • uv run pytest -vv — 521 passed
  • uv run pytest -vv tests/integration/ -m "not slow and not data" — 20 passed, 9 deselected
  • uv run pytest -vv tests/parity/ -m "not slow and not data" — 1 passed, 2 deselected
  • Ruff check/format, ty, and mypy
  • sphinx-build -W --keep-going -b html docs docs/_build/html — succeeded with no warnings
  • Full CI matrix for new head 55a9f65 — pending; not claimed as passed

No version bump, release tag, PyPI publication, Validation-repository change, or PyStormTracker-Data change is included in this follow-up.

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.31%. Comparing base (2f00f62) to head (55a9f65).
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #200      +/-   ##
==========================================
+ Coverage   77.95%   78.31%   +0.36%     
==========================================
  Files          58       58              
  Lines        9621     9621              
  Branches     1870     1870              
==========================================
+ Hits         7500     7535      +35     
+ Misses       1407     1370      -37     
- Partials      714      716       +2     
Flag Coverage Δ
integration 51.58% <0.00%> (ø)
parity 17.49% <0.00%> (ø)
unit 57.06% <100.00%> (+0.36%) ⬆️
unit-jit-coverage 72.48% <100.00%> (+0.36%) ⬆️
unit-jit-disabled 73.82% <100.00%> (+0.36%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/pystormtracker/preprocessing/spectral.py 74.40% <100.00%> (+12.99%) ⬆️
src/pystormtracker/utils/cli.py 85.71% <100.00%> (+4.76%) ⬆️

@mwyau
mwyau marked this pull request as ready for review August 26, 2026 05:21
@mwyau
mwyau merged commit 22e1507 into main Aug 27, 2026
23 checks passed
@mwyau
mwyau deleted the release/v0.7.0-hardening branch August 27, 2026 02:15
@mwyau mwyau changed the title chore: harden v0.7 prerelease contracts chore: harden v0.7 prerelease data contracts Aug 27, 2026
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