Skip to content

feat(launcher): quickstart dir auto-suffix, engine flag passthrough, plain Python remedy - #1108

Merged
abrichr merged 1 commit into
mainfrom
growth/launcher-polish
Aug 22, 2026
Merged

feat(launcher): quickstart dir auto-suffix, engine flag passthrough, plain Python remedy#1108
abrichr merged 1 commit into
mainfrom
growth/launcher-polish

Conversation

@abrichr

@abrichr abrichr commented Aug 22, 2026

Copy link
Copy Markdown
Member

Summary

Launcher-lane growth polish for the openadapt meta-package:

  1. Dir collision fixopenadapt quickstart with no --out now auto-suffixes the first free name (openadapt-quickstart, -2, -3, …) and prints the directory it used. An explicit --out is honored verbatim and an existing explicit path is still refused (output is never overwritten). No --replace flag added.
  2. Flag passthrough — quickstart now uses ignore_unknown_options + allow_extra_args and appends ctx.args, so engine tutorial flags (--guided, --interactive-record, and future additions) reach openadapt-flow verbatim instead of being whitelisted. --headed/--break-it remain declared first-class options.
  3. Plain-language version error — a preflight (sys.version_info >= (3, 13)) runs before delegation, and a PEP 668 externally-managed-environment error pattern from the invocation is translated; both print the same short uv remedy plus the installer-script URL, so users never see raw pip resolver noise for these cases.
  4. README — "Try it locally" now leads with the two-command installer-script path (uv + flow install.sh); the existing pip install 'openadapt[browser]' block stays as the labeled manual path. Minimal diff.
  5. pyproject.toml — description updated to the agreed compile-and-halt wording; nothing else touched.

Files changed

  • openadapt/cli.py
  • README.md
  • pyproject.toml (description field only)
  • tests/test_cli_quickstart_polish.py (new, focused)

Verification

  • ruff check openadapt tests — clean.
  • New tests: default suffix (-2, -4 counting), explicit --out verbatim, ≥3.13 preflight remedy via monkeypatched sys.version_info (engine not invoked), PEP 668 translation, passthrough of --guided / --interactive-record / --profile strict.
  • Existing CLI suite: all quickstart/flow/deploy tests pass unchanged (explicit---out refusal test still green).
  • Full pytest: 183 passed; 4 failures are pre-existing on clean HEAD in this environment (stale installed openadapt 1.5.1 dist metadata: test_distribution_metadata_matches_engine_python_range and 3 test_release_artifacts parametrizations) — reproduced identically via git stash baseline, unrelated to this diff.
  • python -m openadapt.cli --help exits 0.

Do not merge until reviewed.

- Auto-suffix the default quickstart output directory
  (openadapt-quickstart, -2, -3, ...) and print the directory used;
  an explicit --out stays verbatim and existing paths are refused.
- Forward unknown tutorial flags (--guided, --interactive-record, ...)
  to the openadapt-flow engine unchanged via extra-args passthrough.
- Add a Python >=3.13 preflight and translate PEP 668
  externally-managed failures into one plain-language uv remedy,
  shown before any raw pip noise.
- Reorder README install guidance installer-script-first; keep the pip
  two-command block as the labeled manual path.
- State the launcher description as the compile-and-halt outcome.
@abrichr
abrichr merged commit 5de1804 into main Aug 22, 2026
11 checks passed
@abrichr
abrichr deleted the growth/launcher-polish branch August 22, 2026 22:01
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.

1 participant