Goal
Keep the core installation lightweight while preserving an excellent YAML profile experience.
Background
Generic consumers should not pay for YAML support they never use, while a missing optional dependency must fail with a precise remediation.
Scope
Move YAML support to a base-cli[yaml] extra; lazy-load the parser at the profile boundary; provide an actionable install hint; update docs/examples and metadata; add core-only and YAML-enabled CI jobs.
Acceptance Criteria
- Core imports, help, and non-YAML profiles work without PyYAML.
- YAML succeeds with
base-cli[yaml].
- Missing support gives a stable actionable error.
- Wheel metadata advertises the extra.
- Both CI paths pass.
Validation
Build/install the wheel in isolated environments with and without the extra; run focused profile/error tests and the full suite.
Non-Goals
Do not change profile semantics or make other optional integrations mandatory.
Project Fields
- Status: Backlog
- Priority: P2
- Area: Python
- Initiative: v1.0 Readiness
- Size: M
Ownership
Goal
Keep the core installation lightweight while preserving an excellent YAML profile experience.
Background
Generic consumers should not pay for YAML support they never use, while a missing optional dependency must fail with a precise remediation.
Scope
Move YAML support to a
base-cli[yaml]extra; lazy-load the parser at the profile boundary; provide an actionable install hint; update docs/examples and metadata; add core-only and YAML-enabled CI jobs.Acceptance Criteria
base-cli[yaml].Validation
Build/install the wheel in isolated environments with and without the extra; run focused profile/error tests and the full suite.
Non-Goals
Do not change profile semantics or make other optional integrations mandatory.
Project Fields
Ownership