Embed CloudXRLauncher lifecycle inside TeleopSession
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
Inizia dagli entry point TeleopSession e CloudXRLauncher e analizza i context manager annidati dell'esempio mcap esistente. Traccia l'ordine di avvio, errore di connessione e teardown, quindi aggiungi coverage che mostri l'ownership interna, l'opt-out del launcher esterno e una pulizia corretta in caso di errore; l'esempio mcap esistente deve continuare a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Embed CloudXRLauncher lifecycle inside TeleopSession
Context
In the live teleop path, users currently have to set up the CloudXR runtime
launcher and the teleop session as two separate context managers:
```python
with launcher_ctx as launcher:
if launcher is not None:
print(f"[live] CloudXR runtime started (WSS log: {launcher.wss_log_path})")
print("[live] waiting for headset connection… (Ctrl+C to stop)")
with TeleopSession(config) as session:
...
```
This was raised in review on the mcap-example PR (@aristarkhovNV): the nested
launcher context is extra plumbing the caller shouldn't have to wire up by hand.
Deferring it out of that PR to keep its scope on the mcap example only.
Proposal
Have TeleopSession optionally own the CloudXRLauncher lifecycle so the
common case collapses to a single context manager:
python with TeleopSession(config) as session: ...
TeleopSession.__enter__ would start the launcher (when configured for the
live/CloudXR path) and __exit__ would tear it down, surfacing wss_log_path
and any launcher state via the session object.
Motivation
- Removes boilerplate and the nested
withfrom every caller. - Single ownership point for startup/teardown ordering (launcher must come up
before the session connects, and tear down after). - Centralizes the
launcher is not Noneguard instead of leaking it to callers.
Open questions / considerations
- Opt-out path: keep the ability to inject an externally-managed launcher
(e.g. passlauncher=...ormanage_launcher=False) for callers that need to
share one launcher across sessions or control its lifecycle themselves. - Backward compatibility: does anything depend on the current two-context
shape? If so, keep the standalone launcher context working. - Failure semantics: if the launcher starts but the session fails to
connect, ensure the launcher is cleanly torn down (no orphaned runtime). - Logging: preserve the
[live] CloudXR runtime started (WSS log: …)and
"waiting for headset connection" messages, moved inside the session.
Acceptance criteria
-
TeleopSessioncan start/stop the CloudXR launcher internally when configured. - Single
with TeleopSession(config)works for the live path. - An escape hatch exists for an externally-managed launcher.
- Startup/teardown ordering and failure cleanup are covered by a test.
- Existing mcap example still works.
- Lingua principale
- Python
- Stelle
- 403
- Fork
- 94
- Merge medio
- 2g 17m
- PR unite (30g)
- 121
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/IsaacCapture
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
NVIDIA/IsaacCapture#910 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
NVIDIA/IsaacCapture#891 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
NVIDIA/IsaacCapture#1217 ·
I maintainer di solito rispondono entro 1 giorno
-
Release Notes Draft: 1.5Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 20/100
NVIDIA/IsaacCapture#1214 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
NVIDIA/IsaacCapture#1181 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di NVIDIA/IsaacCapture
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
noontide-co/mainbranch#1211 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[1.x Bug] run-operation --sql reports success but rolls back writes on transaction-capable adaptersApertatriage
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
dbt-labs/dbt#16784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
bug settings ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DewaldOosthuizen/py-tray-command-launcher#162 ·
I maintainer di solito rispondono entro 1 giorno
-
run_all sleeps after the final job despite documenting delays between jobsForse già presa @Gambit-Checkmate l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100