Skip to content

Latest commit

 

History

History
36 lines (34 loc) · 12.6 KB

File metadata and controls

36 lines (34 loc) · 12.6 KB

Active Tasks

release-drive-2026-08-03

  • issue: (no issue — a human-authorized manual release drive, not a dev task)
  • session: claude --resume e0105850-b98b-47ff-9ada-cba04a455a65
  • status: SHIPPED 2026-08-07 — superseded by release-drive-2026-08-07 below, which carried this drive's payload to PyPI as 2026.8.7.1. This entry is now history; do NOT re-run it. (Was: Stage 2/3 CLEAR TO RE-RUN on request, 2026-08-04.)
  • split-from: simulator-util-to-af-ex (#1444), closed out 2026-08-04 → complete/2026/08/simulator-util-to-af-ex.md. That task shipped; this release drive it opened did not, so it was split out rather than buried in a completion record.
  • why a release is owed: workspace main now calls af.ex.util helpers that exist on PyAutoFit main but NOT on PyPI. Control test PROVED the breakage — AttributeError on the first simulator call against released autofit 2026.7.29.2 in a clean venv with PYTHONPATH unset — and HowToFit ships NO datasets (dataset/ gitignored, 0 tracked files), so a new user gets no data at all. The pending-release gate was overridden 2026-08-03 on explicit human instruction ("all five once green") with that consequence stated, which makes publishing the remedy, not a preference.
  • release-drive: human authorized driving a release 2026-08-03 (chose "Drive the release" over merging early or re-cutting workspace-only). Drive via pyauto-brain release validate — NOT the nightly driver; AUTONOMY.md forbids converting a manual release into the scheduled-nightly exception.
  • release-progress: Stage 0/1 preflight PASS. Stage 2 rehearsal #1 (run 30841336540, dev69901) DISCARDED — PyAutoLens#686 merged 18:31:35Z DURING that build while the PyAutoLens job checked out at 18:27:31Z, so those wheels lacked #686; writing the post-build live-main sha would have attested to source the wheels never contained. Stage 2 rehearsal #2 = run 30841883371 SUCCESS → testpypi 2026.8.3.1.dev70001, verified every library main HEAD commit-time PREDATES its job checkout before writing commit_shas.json. Artifacts dir ~/.pyauto-heart/manual_validation_20260803_pm (rehearsal.json + testpypi_version.txt + commit_shas.json).
  • commit-shas (from rehearsal #2): PyAutoNerves e82c17fd / PyAutoFit 26033fb4 / PyAutoArray 54ba44e8 / PyAutoGalaxy 4249384b / PyAutoLens 4927738e. SUPERSEDED — do not use. The shipped SHAs are recorded under release-drive-2026-08-07 below; these were already stale on 2026-08-04 and the 2026-08-07 drive re-derived them from a fresh rehearsal.
  • release-outcome (Stage 3 run 30842349506, COMPLETE): 30 jobs, exactly 2 failures, both diagnosed and both now FIXED AND MERGED. (1) autolens/point_source — #453 updated only ONE of the two model blocks in scripts/point_source/start_here.py, leaving prose saying PointSolved and code saying Point; with PyAutoLens#686 making solved all-to-all the default that raises PointProfileMismatchException. Regression proven: the same script passed 40.4s in run 30788224561 and failed 4.5s here. Fixed by autolens_workspace#461, MERGED 2026-08-03T21:41:40Z. (2) verify_install check D (pip rc=0 import rc=1) — fixed by PyAutoHeart#134 (--pre on the TestPyPI path), squash-MERGED 2026-08-04 as 46a331a, both pytest legs green on head fb0eff4b, one file heart/checks/verify_install.sh +24/-1.
  • release-resume: re-rehearse (new wheels, so check D resolves the candidate family with --pre), re-dispatch integrate, then gh run download <run> -R PyAutoLabs/PyAutoHeart -n release-stage-report -D <artifacts-dir> and pyauto-brain release validate --ingest <artifacts-dir> --commit-shas <artifacts-dir>/commit_shas.json. Never --force a RED/YELLOW without a fresh human ack. On GREEN the PUBLISH step is a SEPARATE human decision.
  • release-scope-flag: RESOLVED 2026-08-04 — this release also carries PyAutoLens#686 (point-source defaults, 4927738e), which was not one of the fixes the drive set out to ship. Human answer: ship it. Verified before accepting: #686's exp-3 merge gate had landed two days before the merge, Tests+Docs green on 4927738e, it carries the ## API Changes heading the breaking-change release notes require, and a workspace sweep found all 8 al.AnalysisPoint call sites relying on the new all-solved default compose al.ps.PointSolved — the only mismatch (point_source/start_here.py) was autolens_workspace#461, merged.
  • do-not: do NOT pick up ep.py or any ep* script as a release blocker — human decision 2026-08-03 to park them for a while (PyAutoFit #1332 F10 tracks the underlying EP message-projection instability). They are parked NEEDS_FIX in autofit_workspace_test config/build/no_run.yaml via #82, which run.py loads unconditionally and profile-independently, so the parking holds for the RELEASE profile too.
  • dep-floor-regression: CLEARED 2026-08-03 21:30Z — complete/2026/08/dep-floors-source-chain-ci.md (PyAutoNerves#146). Root cause was the 1.0.dev0 source stamp, not the floors; the floors stand unchanged. All five previously-blocked workspace PRs re-ran green and merged.
  • correctives-worktree: REMOVED 2026-08-04 — both correctives merged, ~/Code/PyAutoLabs-wt/release-validate-correctives gone (worktrees + local/remote feature/release-validate-correctives branches deleted in autolens_workspace and PyAutoHeart, worktree prune run in both; the dir held only tracked files, no output/ artifacts).
  • heart-context (2026-08-04): verdict YELLOW, score 70, red_reasons: []. Reasons = workspace validation not passing / tenant-firewall manifest drift (2 mismatches vs repos.yaml) / release validation stale (source moved since rehearsal — expected, see commit-shas above). The workspace-validation reason has shrunk since the snapshot: autofit_workspace_test#84 fixed the jax_assertions entry it names.
  • repos-none-claimed: this entry claims NO repos — deliberately listed on one line, NOT as - Repo bullets, because worktree_check_conflict treats any 2-space - <Repo> bullet as a live claim regardless of which field it sits under.

release-drive-2026-08-07

  • issue: (no issue — a human-authorized manual release drive, not a dev task)
  • status: SHIPPED 2026-08-07. All five libraries published to PyPI at 2026.8.7.1. Verified independently against pypi.org (not just the run conclusion): each package reports latest = 2026.8.7.1, and autolens-2026.8.7.1-py3-none-any.whl + autogalaxy-2026.8.7.1-py3-none-any.whl were downloaded from the live index as proof of installability.
  • supersedes: release-drive-2026-08-03 (above). That drive's payload shipped here; its recorded commit_shas were stale and are NOT the shipped set.
  • commit-shas (SHIPPED, verified still at origin/main immediately before ingest): PyAutoNerves 5a67f181 / PyAutoFit f02ea7ed / PyAutoArray 828d5c13 / PyAutoGalaxy 63d69b87 / PyAutoLens e4c7ba70.
  • discharges: the mge-sigma-min-workspace-sweep RELEASE DEBT (see above) — sigma_min confirmed present in the released autogalaxy wheel.
  • root-cause of the stalled nightly (2026-08-06): the GitHub Actions outage dropped push triggers, so several merges to main had NO Tests run and two runs failed on runner provisioning. Not a code fault. Remedy: workflow_dispatch added to PyAutoGalaxy + PyAutoLens .github/workflows/main.yml (PRs #560 / #693, both merged) so a main-HEAD run can be re-requested on demand without an empty commit.
  • validation: Stage 0/1 preflight PASS. Stage 2 rehearsal run 31192317261 (PyAutoHands release.yml, rehearsal:true) → testpypi 2026.8.7.1.dev70601. Stage 3 integrate run 31193443960 (PyAutoHeart release-integrate.yml) → 51/51 jobs green, status: pass, 657p/0f/101s/0t, verify_install checks A–F all PASS. Artifacts ~/.pyauto-heart/manual_validation_20260807.
  • MGE-regression NOT reproduced: the 2026-08-06 integrate failed on scripts/interferometer/features/multi_gaussian_expansion/likelihood_function.py (numpy LinAlgError: Singular matrix). It passed here — and the script genuinely RAN rather than being silently dropped, proven by the count moving 324p+1f → 325p+0f with the total unchanged.
  • ingest-trap (cost one cycle): the first readiness tick after a clean ingest came back RED with stale_reasons: [] and only PyAutoGalaxy/PyAutoLens: 4 commit(s) behind origin. That is a LOCAL-clone signal, not a validation failure — the merged workflow_dispatch PRs had never been pulled. Fast-forwarding both local mains to the validated SHAs re-ticked GREEN score 100. Do not --force past this; sync the clone.
  • pre_build-trap (caught before it fired): pre_build runs black scripts/ then git add scripts/, and git add on a directory stages UNTRACKED files too — an uncommitted WIP script in autolens_assistant/scripts/ would have been reformatted and pushed public inside the "pre build" commit. This is the same leak class the script's own comments describe fixing for dataset//config/ (#126); the scripts/ path still has the hole. Mitigation used: move the file out of the repo before the run, restore after (verified byte-identical by md5). Worth a real fix so it is not left to operator vigilance. FIXED 2026-08-08 on branch claude/automind-task-planning-163wk7 (PyAutoHands) — prompt draft/bug/pyautohands/pre_build_stages_untracked_wip.md. The hazard was first REPRODUCED against the pre-fix script on throwaway fixture repos (private file committed as "pre build" and pushed to the remote, exit 0, silently), then closed by two legs: a fail-fast preflight sweeping all 13 repos for untracked files under notebooks//scripts//slam_pipeline/ before the first is touched (it must precede everything — run_workspace pushes each repo before moving to the next), and staging narrowed to git add -u plus explicit adds of run-created files, so the directory-wide form cannot return. Covered by tests/test_pre_build_staging.py, which runs the real script against fixture git repos with real bare remotes. No --allow-dirty override by design. Also answers the open atomicity question in PyAutoHands docs/pre_build_failure_audit.md §6. SHIPPED 2026-08-08: PyAutoHands#232 (issue, closed completed) → PyAutoHands#233 MERGED as a5bac76b, all three pytest legs green (3.12/3.13/3.14, 309 passed / 4 skipped — the count reconciles with local, confirming the new fixture tests actually ran rather than being collected-but-skipped). Mind bookkeeping PyAutoMind#152 MERGED as 62869a2e.
  • release-run: 31200419263 (PyAutoHands release.yml, rehearsal:false → live). All five release (...) publish jobs SUCCESS; tags pushed and PyPI agree, so the line-428 hazard (upload timing out AFTER tagging) did not occur.
  • post-publish failures (do NOT re-drive the release for these — the publish is complete and correct): (1) wiki_currency_check autolens — died on No matching distribution found for autolens==2026.8.7.1 ~4 min after upload; a PyPI index-propagation race, proven by wiki_currency_check_autofit starting 2s earlier and PASSING, and by the wheel downloading fine minutes later. RESOLVED 2026-08-07 — autolens_assistant is CLEAN on all five legs, so the race was the whole story and no autolens follow-up is owed. A CI job re-run was impossible (HTTP 403: The workflow run containing this job is already running), so it was graded locally by the documented method instead: a fresh venv with autolens==2026.8.7.1 from PyPI, PYTHONPATH cleared, and all four libraries verified to resolve to venv site-packages rather than this workspace's source checkouts (the baseline-repin-TRAP — grading against source installs would have been meaningless). Results: --check-version clean (baseline matches autolens 2026.8.7.1), --scope all 68 files / 143 symbols / 0 missing-broken, --lint-idioms clean (214 files), --check-citations 105 files / 413 citations / 0 missing, 0 warnings, --check-provenance 0 errors (49 pages). Contrast autogalaxy's 5 provenance errors — the two failures shared a red badge but not a cause. (2) wiki_drift_issue — pure fallout, Artifact not found: wiki-drift-report, because (1) died before writing it. (3) wiki_currency_check_autogalaxy — REAL drift, see the provenance prompt filed under draft/maintenance/autogalaxy_assistant/.
  • artifacts-are-laptop-only: Actions artifact downloads are blocked from cloud/mobile sessions (egress policy 403s productionresultssa2.blob.core.windows.net on CONNECT) — this is what stopped the cloud session finishing the ingest. Both wiki drift reports were captured to ~/.pyauto-heart/release_20260807_wiki_drift/ while on the laptop.
  • do-not: do NOT use the nightly driver for a manual release — AUTONOMY.md forbids converting a manual release into the scheduled-nightly exception.
  • repos-none-claimed: this entry claims NO repos — deliberately on one line, NOT as 2-space - Repo bullets, because worktree_check_conflict treats any such bullet as a live claim.