Repository navigation
Pin proteus-mpl 1.5.0 and make the validation plots again - #84
Merged
Merged
Conversation
The core module verification is docs/Validation/core.md and the first-principles verification docs/Validation/numerics.md, in a Validation tab between Explanations and Reference. The old paths keep a short page that links to the new one, the links of the other pages point to the new paths, and test_core_verification_page.py reads the core page at its new path.
docs/Validation/index.md lists every reference_pinned case with its process, test, reference and page. The young-layer test of the core shell writes its temperature rise against the ierfc half-space solution through the validation_plot fixture, for both of its times, and the core page shows the 0.1 Myr pair with its reference, tolerance, test id and command. proteus-mpl 1.4.0 joins the test extra and the test installs of both CI workflows, since the fixture comes from it.
AGENTS.md holds the commands that decide whether a change is ready, the package layout, the solver and coupling facts a contributor needs and the conventions, under the shared blocks synced from PROTEUS; tests/AGENTS.md the shared test rules and the Aragog specifics (markers, the SPIDER P-S tables, the core page test, the plot fixture). Each CLAUDE.md imports AGENTS.md, and .github/copilot-instructions.md is a short summary for review tools. The broken .claude/rules link is removed. tools/agents/check_agents_md.py, the same file as in PROTEUS, checks the block hashes, the CLAUDE.md files and the size caps, and the CI test job runs it on Linux with Python 3.12.
The marker script checks for at least one tier marker; CI clears addopts, so strict markers apply only to a local run; most test files set no timeout; the JAX smoke tests need diffrax. AGENTS.md names the ruff rule that enforces the future import and the PROTEUS_SCRIPTS need of three figure scripts. The copilot file gives the comment limit of AGENTS.md. The Validation overview says what the linked sections hold, splits the leeds cross-check of the Nimmo tests into its own row, and the core page says that the cooling term of the ierfc case comes from the shell's own rates and which case separates it. The Explanations group is renamed Diagnostics.
The 0.1 Myr case of the young-layer test now asserts that the ierfc profile without the cooling term misses the tolerance, and its docstring describes eq. 27 of Greenwood et al. (2021) as the page does. The Validation overview links a section only where one exists and gives the Nimmo and leeds sources of each row; the agent files state that the structure script catches only a missing tier marker, that 8 tests carry two, and that ruff enforces the future import in the linted folders.
The young-layer test carries physics_invariant next to reference_pinned, and its discrimination assert says what failed. The core page says that the test asserts the separation, tests/AGENTS.md gives the command that lists the double-marked tests without a count, and AGENTS.md says ruff enforces the future import and CI lints src/ and tests/.
The young-layer test now asserts at both times that erfc in place of ierfc, and a halved amplitude, miss by more than ten times the tolerance; the check that the profile without the cooling term misses stays as a second guard at 0.1 Myr. The docstring names the constant-flux half-space solution and eq. 27 of Greenwood et al. (2021) as its sources.
The young-layer case is section 14 of the core page and quotes no run result, so the statement that every number of sections 1 to 13 comes from the verification script holds; section 12 names the right-hand-side parity test. The overview gives the tolerance of each case and says which cases have their own section. The coupling page lists every hf_row key the Aragog wrapper returns, says that it writes neither T_surf nor dt_actual, and that PROTEUS refuses a dilatation key. The numerics page names the test-table lookup order, the figures README says where its seven figures are shown, and the agent files state the reference_pinned exceptions.
Install proteus-mpl from the tl/validation-ci commit, which renders the validation plot on every run and compares its data summary with the committed pair. The erfc pairs are made again so that they carry the summary. A session hook prints each rendered summary as a warning, so the log holds the full summary of each job for a comparison with the committed one. This branch is a trial and is not meant for main.
Install proteus-mpl from the tl/validation-ci commit with the summary format 1 and make the pairs again. This branch is a trial and is not meant for main.
Install proteus-mpl from the newest tl/validation-ci commit and make the pairs again. This branch is a trial and is not meant for main.
Install proteus-mpl from the newest tl/validation-ci commit and make the pairs again. This branch is a trial and is not meant for main.
Install proteus-mpl from the newest tl/validation-ci commit and make the pairs again. This branch is a trial and is not meant for main.
# Conflicts: # .github/workflows/ci_tests.yml # docs/Explanations/proteus_coupling.md # docs/assets/validation/core_layer_erfc_half_space_0p03myr.svg # docs/assets/validation/core_layer_erfc_half_space_0p03myr_dark.svg # docs/assets/validation/core_layer_erfc_half_space_0p1myr.svg # docs/assets/validation/core_layer_erfc_half_space_0p1myr_dark.svg
proteus-mpl 1.5.0 compares the data summary of each validation plot with the committed pair in every test run, so the pair is made again with 1.5.0 and now carries the summary.
There was a problem hiding this comment.
🟢 Approval recommended
The dependency updates are consistent, paired plot summaries match, and no blocking issues remain in this narrowly scoped change.
No open issues 🎉
What changed in this PR
This PR raises the minimum proteus-mpl version to 1.5.0 so Aragog’s validation tests can compare plot data against summaries embedded in committed assets. Solver behavior is unchanged.
Changes:
- Align the test dependency and both CI workflows on
proteus-mpl>=1.5.0. - Add version-1 data summaries to the four light and dark half-space validation plots.
| File | Description |
|---|---|
pyproject.toml |
Raise the minimum proteus-mpl test dependency. |
docs/assets/validation/core_layer_erfc_half_space_0p1myr.svg |
Add the 0.1 Myr light plot summary. |
docs/assets/validation/core_layer_erfc_half_space_0p1myr_dark.svg |
Add the matching 0.1 Myr dark plot summary. |
docs/assets/validation/core_layer_erfc_half_space_0p03myr.svg |
Add the 0.03 Myr light plot summary. |
docs/assets/validation/core_layer_erfc_half_space_0p03myr_dark.svg |
Add the matching 0.03 Myr dark plot summary. |
.github/workflows/nightly.yml |
Update the nightly dependency requirement. |
.github/workflows/ci_tests.yml |
Update the PR CI dependency requirement. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Pin proteus-mpl 1.5.0, whose
validation_plotfixture compares each validation plot with a data summary stored in the committed files in every test run (FormingWorlds/proteus-visual-language#25). The pin moves toproteus-mpl>=1.5.0inpyproject.tomland the install lines ofci_tests.ymlandnightly.yml, and the 4 files ofdocs/assets/validation/core_layer_erfc_half_space_*(45960 and 46410 B) are made again with 1.5.0, so each now carries the summary the fixture compares against.Validation of changes
pytest tests/test_core_layer.py -k erfc -W error::UserWarningwith proteus-mpl 1.5.0: 2 passed. CI on the branch, Ubuntu and macOS, Python 3.12 and 3.13, with proteus-mpl 1.5.0 installed: https://github.com/FormingWorlds/aragog/actions/runs/40087793193. Each committed file carries a summary of format 1 (read withproteus_mpl.validation.read_summary), and every file is under the 60 000 B cap.Checklist