Skip to content

v4: Make drivers declarative-only (no method overrides) #222

@jtdub

Description

@jtdub

Description

Currently drivers can extend behavior two ways: declarative rules (via HConfigDriverRules) and imperative method overrides (idempotent_for(), swap_negation(), config_preprocessor()). This dual mechanism makes behavior harder to predict and prevents drivers from being fully serializable.

Proposed Change

Move all imperative overrides into the rule system:

Benefits

  • All driver behavior lives in HConfigDriverRules
  • Drivers become fully serializable (could be loaded from YAML/JSON)
  • Easier to test — no method mocking needed, just rule configuration
  • Users can extend drivers without subclassing

Breaking Change

Yes — all drivers that override methods must be rewritten to use rules.

Metadata

Metadata

Assignees

No one assigned

    Labels

    v4-enhancementEnhancement planned for hier_config v4.0.0

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions