Skip to content

maint: design lock-in + results/dashboard groundwork (polish phase 1)#53

Merged
Jammy2211 merged 3 commits into
mainfrom
feature/profiling-polish-design
Jul 8, 2026
Merged

maint: design lock-in + results/dashboard groundwork (polish phase 1)#53
Jammy2211 merged 3 commits into
mainfrom
feature/profiling-polish-design

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Phase 1 of the pre-PreOptimizationTimes polish (closes the groundwork half of #52): one final holistic design review before the baseline profiling campaign, locking the core design in for extension and putting the results-presentation story in place so campaign results land as browsable .md/.json on GitHub. Decisions recorded in-repo at results/notes/design_lock_in.md. Three commits: the design/docs work, a repo-wide ruff 0.15 cleanup (CI installs unpinned ruff — the next PR faces 0.15.x regardless), and a review-leg fix.

Scripts Changed

  • likelihood_runtime/sweep.py — default --output-root now in-repo results/runtime/ (was autolens_workspace_developer/jax_profiling/results/jit); _DEFAULT_PYTHONsys.executable (was a hard-coded venv path); imaging/mge added to CELLS; new --sparse passthrough (w-tilde rows, _sparse-suffixed filenames/logs)
  • likelihood_runtime/aggregate.py — same in-repo default root; discovery and aggregation now filter to config-shaped stems (_is_config_stem) so versioned standalone summaries sharing a cell dir cannot corrupt comparison.json; _sparse rows order after canonical configs
  • likelihood_runtime/<class>/<model>.py (all 9 per-cell scripts) — standalone/HPC default output dir retargeted from the retired results/likelihood/<class>/ to results/runtime/<class>/<model>/, so SLURM jobs (which pass no --output-dir) land exactly where a local sweep writes
  • latent/sweep.py, latent/aggregate.py — default output root retargeted from workspace_developer to in-repo results/latent/
  • scripts/build_readme.py — rewritten for the post-split layout: scans results/{breakdown,simulators,searches} versioned artifacts + results/runtime/**/comparison.json; renders headline dashboard (top-level README), per-package tables, and a named-baseline column hook reading results/baselines/<Name>/
  • vram/probe.py — loop variable default-bound in the tree_map lambda (B023); latent/imaging/effective_einstein_radius.py — dead AnalysisImaging construction removed
  • _profile_cli.py, remaining *.py — docstring fixes + mechanical ruff 0.15 auto-fixes/format (import sorting, PEP 604 annotations); ruff.toml gains B905/B007 ignores with rationale
  • READMEs — dashboard sentinels added (top-level headline + runtime/breakdown/searches); results/README.md rewritten around the two artifact shapes + baselines convention; new quick_update/, hpc/, scripts/ READMEs; stale likelihood/, z_projects/, PyAutoPrompt references fixed in AGENTS.md/READMEs; roadmap updated

Test Plan

  • ruff check . + ruff format --check . clean (ruff 0.15.20, matching CI's unpinned install)
  • python scripts/build_readme.py --check idempotent (CI gate); dashboard renders the existing v2026.5.29.4 breakdown artifacts
  • pytest test/ — 8/8
  • AUTOLENS_PROFILING_SMOKE=1 import gate on one script per area (runtime, breakdown, latent, vram, simulators)
  • sweep.py --dry-run (incl. --sparse) targets results/runtime/<class>/<model>/ with correct flags
  • Functional test: aggregate.py on a synthetic cell dir mixing config JSONs + a versioned summary → comparison.json contains only config rows

Validation checklist (--auto run — plan was not pre-approved interactively)

  • Effective level: supervised (header: supervised, cap: maintenance → safe)
  • Plan: on the issue (maint: design lock-in + results/dashboard groundwork (polish phase 1) #52), written at start, unmodified since
  • Gate: tests 8/8 (downstream library suites n/a — standalone leaf, no PyAuto* source touched) · smoke n/a for the six curated workspaces (no downstream script surface; repo's own smoke-import gate passes) · review CLEAN (one finding — per-cell output defaults — fixed in commit 3) · Heart YELLOW, human-acknowledged at ship sign-off (issue comment): reason set is organism-wide and predates this task
  • Human: plan sound in hindsight?
  • Human: diff matches plan (no scope creep)?
  • Human: merge, amend, or reject — then log the outcome

🤖 Generated with Claude Code

Jammy2211 and others added 3 commits July 8, 2026 15:32
- results live wholly in-repo: sweep.py/aggregate.py default --output-root
  is now results/runtime/ (workspace_developer tree stays as history)
- sweep.py: sys.executable default (no machine-specific path), imaging/mge
  joins CELLS, --sparse passthrough for the w-tilde rows
- build_readme.py retargeted from the retired likelihood/ layout to the
  real results sections (breakdown/runtime/simulators/searches), with
  comparison.json support and a named-baseline column hook
- dashboard sentinels added to README + runtime/breakdown/searches READMEs
- PreOptimizationTimes baseline convention defined
  (results/notes/design_lock_in.md); results/README.md rewritten
- stale docs fixed (retired likelihood/ refs, z_projects HPC refs,
  PyAutoPrompt roadmap ref); quick_update/hpc/scripts READMEs added

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CI installs unpinned latest ruff, so the next PR faces 0.15.x: 204
pre-existing violations repo-wide. Applied ruff check --fix (import
sorting, PEP 604 annotations, f-string placeholders) + ruff format
(44 files); removed a dead AnalysisImaging construction in
latent/effective_einstein_radius.py; default-bound the loop variable in
vram/probe.py's tree_map lambda (B023 false positive — invoked
synchronously). B905/B007 added to the ruff.toml ignore list with
rationale (equal-length zips and warm-up loops are the dominant timing-
script patterns). Verified: ruff check + format --check clean,
build_readme --check idempotent, compileall, 8/8 unit tests, smoke
imports (AUTOLENS_PROFILING_SMOKE=1) on one script per area.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ding)

The HPC submit scripts pass no --output-dir, so per-cell defaults decide
where A100 results land — and those still pointed at the retired
results/likelihood/<class>/ section (latent/ still at the old
workspace_developer root). Retargeted all likelihood_runtime per-cell
defaults to results/runtime/<class>/<model>/ (matching the sweep layout)
and latent sweep/aggregate to results/latent/. aggregate.py now filters
to config-shaped stems so versioned standalone summaries sharing a cell
dir cannot corrupt comparison.json (covered by a functional test run).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 8, 2026 14:58
@Jammy2211 Jammy2211 added the pending-release Queued for the next release label Jul 8, 2026

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Jammy2211 Jammy2211 merged commit 4c66ced into main Jul 8, 2026
1 check failed
@Jammy2211 Jammy2211 deleted the feature/profiling-polish-design branch July 8, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-release Queued for the next release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants