{"record":{"id":"6e5fa87b88704299","repo":"zed-industries/zed","slug":"choose-at-least-one-swe-atlas-part-with-parts-e","errorCode":null,"errorMessage":"choose at least one SWE-Atlas part with --parts (e.g. --parts rf,qna or --parts all)","messagePattern":"choose at least one SWE-Atlas part with --parts \\(e\\.g\\. --parts rf,qna or --parts all\\)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"crates/eval_cli/zed_eval/launch.py","lineNumber":608,"sourceCode":"        benchmark_ids,\n        suite_id=mint_suite_id(args, len(benchmark_ids)),\n        label_for_benchmark=lambda benchmark_id: benchmark_id,\n    )\n\n\ndef command_run(args: argparse.Namespace) -> int:\n    return execute_prepared_runs(\n        args,\n        prepare_benchmark_runs(args),\n        benchmark_plan_entry,\n    )\n\n\ndef resolve_suite_parts(args: argparse.Namespace) -> list[str]:\n    parts = parse_parts([args.parts] if getattr(args, \"parts\", None) else [])\n    if parts:\n        return parts\n    raise ValueError(\n        \"choose at least one SWE-Atlas part with --parts (e.g. --parts rf,qna or --parts all)\"\n    )\n\n\ndef suite_plan_entry(\n    part: str, run_request: dict[str, Any], build_request: dict[str, Any] | None\n) -> dict[str, Any]:\n    return {\n        \"part\": part,\n        **benchmark_plan_entry(\n            run_request[\"benchmark\"][\"id\"], run_request, build_request\n        ),\n    }\n\n\ndef suite_entry_label(benchmark_id: str) -> str:\n    for part, part_benchmark_id in benchmarks.SWE_ATLAS_PART_BENCHMARKS.items():\n        if part_benchmark_id == benchmark_id:","sourceCodeStart":590,"sourceCodeEnd":626,"githubUrl":"https://github.com/zed-industries/zed/blob/bc538def4545534201bbfcac4e95ac34ea6501b6/crates/eval_cli/zed_eval/launch.py#L590-L626","documentation":"Raised by launch.resolve_suite_parts() when the swe-atlas suite command has no usable --parts value. The swe-atlas flow (command_swe_atlas) either uses explicit benchmark selectors or, when none are given, falls back to prepare_suite -> resolve_suite_parts, which requires --parts. parse_parts expands the literal \"all\" to qna+rf+tw and validates each remaining token via config.canonical_part.","triggerScenarios":"Running zed-eval swe-atlas with neither --parts nor benchmark selectors (e.g. in interactive mode where configure_interactive_suite leaves parts unset unless chosen); passing --parts \"\" or --parts \",\" which parse to an empty list; a wrapper script that only sets --parts conditionally.","commonSituations":"New users running the swe-atlas command bare, expecting it to default to all parts; scripted invocations where the parts variable is empty; declining the interactive part picker and the flag never being set.","solutions":["Add --parts with at least one of qna, rf, tw, or the shorthand all: zed-eval swe-atlas --parts all.","Alternatively pass explicit benchmark selectors to the swe-atlas command to bypass --parts entirely.","In scripts, default the value: --parts \"${PARTS:-all}\"."],"exampleFix":"# before\nzed-eval swe-atlas\n# -> ValueError: choose at least one SWE-Atlas part with --parts ...\n\n# after\nzed-eval swe-atlas --parts all","handlingStrategy":"validation","validationCode":"if not getattr(args, \"parts\", None) and not getattr(args, \"benchmark\", None):\n    raise SystemExit(\"pass --parts (qna/rf/tw or all) or explicit benchmark selectors\")","typeGuard":null,"tryCatchPattern":"try:\n    parts = resolve_suite_parts(args)\nexcept ValueError as error:\n    raise SystemExit(str(error))","preventionTips":["Default to --parts all in scripts unless a subset is intended.","The swe-atlas command needs either --parts or benchmark selectors; running it bare always fails.","Interactive mode configures parts for you; non-interactive wrappers must pass the flag."],"tags":["cli","validation","swe-atlas"],"backgroundTag":null,"analyzedSha":"bc538def4545534201bbfcac4e95ac34ea6501b6","analyzedAt":"2026-08-16T07:30:46.435Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}