Repository navigation
Repo - BUGFIX! - Make reruns self-contained and flag vanished harness outputs - #639
Conversation
…tputs, and remove the placeholder RLAR and CLAR torque - Rerun: record the kinetic profiles (Input/RawInputs/Kinetic) and a file wall's text (Input/RawInputs/Wall/wall_file_raw) in gpec.h5; a rerun writes them back out as <stem>_kinetic.h5 and <stem>_wall.dat, and equilibrium_from_h5 reads the profiles from the snapshot, so a replay never re-reads the files the source run named. A stored deck naming either file without its snapshot stops with a re-run-from-the-deck error. - Rerun: refuse an output or side file that is the source under another name (symlink, hardlink, case-only alias), not only the same path. - Regression harness: a quantity that disappears is CHANGED (missing) and a storage-type change is CHANGED (type), and both fail --fail-on-change; a quantity only the newer ref has is NEW. - KineticForces: remove the RLAR method (a linear-amplitude placeholder for the kappa integral) and CLAR (which returned zero); rlar_flag and clar_flag are no longer keys. - Vacuum: build the 3D singular quadrature under a lock and return the data built for the caller's parameters. - Repo: drop the committed __pycache__ bytecode and ignore __pycache__/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merged develop in (8dcd34f) so this merges cleanly. The only conflict was a #625 had already removed RLAR and CLAR, so that part of this PR's diff is gone. I dropped it from the title and the release note so the changelog doesn't list it twice. Harness stamp: the "Title and release note" check will now flag Also checked on the merged tree: the kinetic snapshot round trip now includes the |
Release note
gpec.h5written before this change whose deck names akinetic_fileor a file wall can no longer be replayed or loaded withequilibrium_from_h5; re-run it from its deck.A rerun from
gpec.h5is now self-contained: the run records its kinetic profiles and its wall file, and the replay uses those copies instead of re-reading the files the original deck named. Previously, an edited or deleted kinetic file silently changed a "frozen" replay. The regression harness now reports a tracked output that disappears, or changes storage type, as a change, so--fail-on-changecatches it.Changes
Rerun.jl):save_input_files!writes the equilibrium's kinetic profiles toInput/RawInputs/Kinetic, in the kinetic HDF5 schema, and a file wall's text toInput/RawInputs/Wall/wall_file_raw. The kinetic profiles are recorded even when they were attached through the API rather than by a deckkinetic_file.<stem>_kinetic.h5and<stem>_wall.datand points the deck at them, as it already did for<stem>_forcing.h5and<stem>_tolerances.toml.equilibrium_from_h5builds the kinetic profiles from the snapshot and applies the stored deck's composition.write_kinetic_h5and_read_kinetic_h5are split into group-levelwrite_kinetic_group!and_read_kinetic_group, so the same schema code reads and writes the snapshot.samefile. Before, only an identical path was caught.CHANGED (missing).CHANGED (type).--fail-on-change.NEW, which is counted in the summary but does not fail, so PRs that add outputs still pass.N/A.docs/development/regression-harness.mdnow defines every status.ci/conventions/__pycache__/check_subject.cpython-310.pycis deleted, and__pycache__/is added to.gitignore.Tests
equilibrium_from_h5reading the snapshot, a kinetic deck run recordingInput/RawInputs/Kinetic, and the harness statuses (regression-harness/test/runtests_compare.jl).runtests_rerun_from_h5,runtests_frozen_equilibrium,runtests_error_fields,runtests_kinetic,runtests_vacuum,runtests_h5_schema,runtests_deck_roundtrip, and the harness test.Regression report
The baseline is the branch's base,
9a25490c1, so develop commits merged after the branch was cut do not appear in the diff. Develop has since been merged in (8dcd34f); its only conflict was a docstring both sides edited, and this PR's own src/ changes are unchanged from the stamped commit. This run also uses the branch's own harness code, which applies the new statuses.Notes for reviewers
Input/RawInputs/KineticandInput/RawInputs/Wallare new groups underInput/, anddocs/development/hdf5-conventions.mdanddocs/src/workflow.mdlist them. The composition and closure keys (ion species, impurity, defaults) are not recorded, because the deck restates them. That means kinetic profiles attached through the API with non-default composition keywords still replay with the deck's composition; I left that for the deck/API parity work.🤖 Generated with Claude Code
https://claude.ai/code/session_014wKUyAaxKdTJ5ch1boMFE1