feat(launcher): quickstart dir auto-suffix, engine flag passthrough, plain Python remedy - #1108
Merged
Conversation
- 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Launcher-lane growth polish for the
openadaptmeta-package:openadapt quickstartwith no--outnow auto-suffixes the first free name (openadapt-quickstart,-2,-3, …) and prints the directory it used. An explicit--outis honored verbatim and an existing explicit path is still refused (output is never overwritten). No--replaceflag added.ignore_unknown_options+allow_extra_argsand appendsctx.args, so engine tutorial flags (--guided,--interactive-record, and future additions) reach openadapt-flow verbatim instead of being whitelisted.--headed/--break-itremain declared first-class options.sys.version_info >= (3, 13)) runs before delegation, and a PEP 668externally-managed-environmenterror 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.pip install 'openadapt[browser]'block stays as the labeled manual path. Minimal diff.Files changed
openadapt/cli.pyREADME.mdpyproject.toml(description field only)tests/test_cli_quickstart_polish.py(new, focused)Verification
ruff check openadapt tests— clean.sys.version_info(engine not invoked), PEP 668 translation, passthrough of--guided/--interactive-record/--profile strict.--outrefusal test still green).openadapt 1.5.1dist metadata:test_distribution_metadata_matches_engine_python_rangeand 3test_release_artifactsparametrizations) — reproduced identically viagit stashbaseline, unrelated to this diff.python -m openadapt.cli --helpexits 0.Do not merge until reviewed.