Skip to content

[v1.0] Move YAML configuration behind an optional dependency extra #190

Description

@codeforester

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions