Skip to content

Commit 7dd0c9a

Browse files
committed
docs: mark local ExitStack teardown as implemented in both tasks (§6b)
1 parent 9623715 commit 7dd0c9a

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

docs/STANDARDIZATION.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,13 @@ anything else, and mid opts into the same guarantee for one `stack.callback`. It
231231
per-task `run()` made of §1–§5 helpers. (Friendly `on_teardown` / `on_abort`
232232
aliases are trivial sugar over `callback` / `push` if the raw names read poorly.)
233233

234-
**Recommendation:** do (a) for every task; add (b) to core only once a second
235-
hardware task needs the teardown guarantee heat already has. Skip the
236-
phase-sequencing orchestrator entirely.
234+
**Status:** both tasks now wrap their `run()` teardown in a **local** `ExitStack`
235+
(heat dropped its `try/finally` + `halted_cleanly` flag and derives MMS stop-vs-
236+
abort from `exc_type`; mid gained the guaranteed teardown it previously lacked).
237+
Each calls `core.quit()` *after* the block so a genuine error still surfaces its
238+
traceback. Promoting this to a **shared** `psyexp_core.experiment_session` helper
239+
(the sketch above) stays deferred until a third — or second hardware — task makes
240+
the dedup worthwhile. The phase-sequencing orchestrator stays rejected.
237241

238242
---
239243

@@ -248,10 +252,11 @@ phase-sequencing orchestrator entirely.
248252
helpers from core; drop the duplicated placeholder/idioms.
249253
4. **heat-task**: bump to `>=0.8.0` first to fix the manifest kwarg (§5), then to
250254
`0.9.0`; replace its `phases.py` helpers with the core ones.
251-
5. **psyexp-core `0.10.0`** (optional): `LiveTableView` (§4), and — only if a
252-
second hardware task needs the same guarantee heat has — the teardown-only
253-
`experiment_session` (§6b). The phase-sequencing runner is explicitly **not**
254-
planned; `run()` stays per-task (§6a).
255+
5. **psyexp-core `0.10.0`** (optional): `LiveTableView` (§4). Both tasks already
256+
use a *local* `ExitStack` for teardown (§6b); consolidating that into a shared
257+
`experiment_session` helper is deferred until a second hardware task needs it.
258+
The phase-sequencing runner is explicitly **not** planned; `run()` stays
259+
per-task (§6a).
255260

256261
Sequencing keeps each step small and independently shippable, and never leaves a
257262
task repo importing a core symbol that isn't released yet.

0 commit comments

Comments
 (0)