V0.8 Release Readiness#
Release Target#
package version:
0.8.0git tag:
v0.8.0
Done#
the canonical stable object set from
v0.7remains in place, includingInvariantMapSpecthe stable derivative backend remains
spectral_fdanalytic Heat and Burgers residual evaluators remain in place unchanged
the
v0.7structured-ingestion runtime surface remains in place:pdelie.data.from_numpy(...)pdelie.data.from_xarray(...)
M0 is complete:
v0.8was frozen as the next committed release before runtime implementationthe weak residual report shape, weak-profile family, and benchmark matrix were documented explicitly
M1 is complete:
the quartic-bump weak profile, exact Heat/Burgers weak identities, and deterministic benchmark fixtures were frozen
M2 is complete:
pdelie.residuals.evaluate_weak_heat_residual(...)is implementedpdelie.residuals.evaluate_weak_burgers_residual(...)is implementedboth APIs return deterministic window-indexed weak residual report dicts rather than canonical
ResidualBatch
M3 is complete:
internal report-space fitting and verification feasibility landed under
tests/_helpersstable contract integration remains deferred
M4 is complete:
the frozen representative robustness benchmark landed
the compact
v0_8-release-gatetest module and CI visibility job are implementedrequired
from_numpyimported parity landed for the frozen subset
M5 is complete:
weak KdV stress was explicitly deferred because the frozen
v0.8quartic-bump profile is not boundary-regular enough for an honest KdV weak form
M6 is complete:
release metadata and release-facing docs are aligned with the implemented
v0.8surfacewheel smoke covers a tiny weak Heat report path in addition to the existing example smoke
Observed M4 Release Signal#
The v0.8 degraded release signal is intentionally narrow.
It is a frozen representative release signal, not a general claim of weak superiority.
Observed degraded winners on the current benchmark:
Heat:
passing degraded condition:
noisyrobustness_signal_source = "contract_stability_signal"weak
contract_mode = "canonical_fallback"weak
fallback_reason = "svd_translation_span_drift"weak ratio:
17.93xstrong ratio:
18.65x
Burgers:
passing degraded conditions:
noisyandcoarserepresentative recorded case:
noisyrobustness_signal_source = "contract_stability_signal"weak
contract_mode = "canonical_fallback"weak
fallback_reason = "weak_report_contract_span_drift"weak ratio:
9.90xstrong ratio:
60.39x
Interpretation:
degraded weak-path wins are fallback-backed contract-stability signals
they are not direct in-tolerance weak-fit recoveries
they are not separation-superiority claims over the strong path
Explicitly Deferred#
weak derivatives
weak
ResidualBatch/ResidualEvaluatorintegrationstable KdV runtime promotion
multidimensional, multivariable, or nonuniform-grid weak paths
broader PDE, grid, or adapter expansion
paper-specific experiment logic
Final Release View#
The current repository is ready for the final 0.8.0 release for the frozen v0.8 weak residual report slice, subject to release-path checks passing on the release branch and CI passing on the release PR.
There are no known scientific-scope blockers inside the frozen v0.8 slice.
The stable v0.8 claim remains narrow:
stable weak residual report APIs landed under
pdelie.residualsdegraded release wins are representative fallback-backed contract-stability signals
stable contract integration and weak derivatives remain deferred
no stable KdV public surface is added
Packaging And Public API Notes#
pdelie.residuals.evaluate_weak_heat_residualis a stable runtime public API inv0.8pdelie.residuals.evaluate_weak_burgers_residualis a stable runtime public API inv0.8both APIs are exposed under
pdelie.residuals, not rootpdeliethe report shape and diagnostic surface are frozen by
docs/planning/V0_8_SCOPE.mdpdelie.data.from_numpyandpdelie.data.from_xarrayremain stable runtime public APIs carried forward fromv0.7the runtime discovery, portability, invariant, and visualization layers remain in place unchanged in stable scope
KdV remains tests-first feasibility only and does not add a stable runtime API in
v0.8the
v0_4-release-gate,v0_5-release-gate,v0_6-release-gate,v0_7-release-gate, andv0_8-release-gateCI jobs are explicit visibility checks; post-v0.8CI consolidation is a follow-up item and is not part of this release
Final Tag Checklist#
Before tagging v0.8.0:
inspect consistency across:
pyproject.tomlREADME.mdCHANGELOG.mddocs/releases/V0_8_RELEASE_READINESS.mddocs/specs/API_STABILITY.md
run
python -m pytestfrom the repo rootrun
python -m build --sdist --wheelinstall the built wheel into a clean environment and verify:
stable root imports
weak residual runtime imports under
pdelie.residualsone tiny weak Heat report smoke
run
python -m pdelie.examples.heat_vertical_sliceif TestPyPI trusted publishing is already available, run a packaging preflight on a temporary
v0.8.0rc1tag via the existing publish workflow with:target=testpypigit_ref=v0.8.0rc1then verify installation from TestPyPI
if TestPyPI is not available/configured, record that explicitly and continue
confirm GitHub Actions jobs
v0_4-release-gate,v0_5-release-gate,v0_6-release-gate,v0_7-release-gate,v0_8-release-gate,editable-tests, andpackage-smokepass on the release PR commitmerge the release PR into
maintag the merged
maincommit asv0.8.0run the publish workflow manually with:
target=pypigit_ref=v0.8.0confirm_pypi=publish-to-pypi
verify installation from PyPI