Skip to content

Pin proteus-mpl 1.5.0 and make the validation plots again - #84

Merged
timlichtenberg merged 15 commits into
mainfrom
tl/validation-ci-pilot
Oct 24, 2026
Merged

timlichtenberg merged 15 commits into
mainfrom
tl/validation-ci-pilot

Conversation

@timlichtenberg

Copy link
Copy Markdown
Member

Description

Pin proteus-mpl 1.5.0, whose validation_plot fixture 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 to proteus-mpl>=1.5.0 in pyproject.toml and the install lines of ci_tests.yml and nightly.yml, and the 4 files of docs/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::UserWarning with 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 with proteus_mpl.validation.read_summary), and every file is under the 60 000 B cap.

Checklist

  • I have followed the contributing guidelines
  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • My changes generate no new warnings or errors
  • I have checked that the tests still pass on my computer
  • I have updated the docs, as appropriate
  • I have added tests for these changes, as appropriate
  • I have checked that all dependencies have been updated, as required

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.
@timlichtenberg
timlichtenberg requested a review from a team as a code owner October 24, 2026 11:27
Copilot AI balanced review requested due to automatic review settings October 24, 2026 11:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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

@timlichtenberg
timlichtenberg merged commit d21564c into main Oct 24, 2026
19 checks passed
@timlichtenberg
timlichtenberg deleted the tl/validation-ci-pilot branch October 24, 2026 13:50
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.

2 participants