Providers can now offer opt-in, rule-selectable configuration advice from every configurable component. Pyvider 0.8.1 is the first published 0.8 release; 0.8.0 was tagged but stopped by its publication guard before reaching PyPI.
A public lint API lets provider authors attach advisory rules to all seven configurable framework surfaces.
Linting is default-off and explicitly selected by rule, group, or all, with exclusions.
Rule failures fail open, and findings travel as ordinary validation warnings.
0.8.1 is the published release; 0.8.0 was halted before any registry upload.
Stronger schema and returned-state validation, safer lifecycle planning, corrected state-store behavior, and hardened protocol diagnostics move failures to the boundary where provider authors can act on them.
Terraform-invalid schemas now fail where provider authors declare them.
Returned state is checked for completeness and write-only values are removed recursively.
Lifecycle planning preserves live resources, computed values, and private state.
State storage, protocol values, and operational diagnostics are safer and more faithful.
The development wrapper preserves Terraform's working directory so relative configuration paths and the default filesystem state root resolve where practitioners expect.
Development providers now inherit Terraform's working directory unchanged.
Provider configuration is pinned explicitly with PYVIDER_CONFIG_FILE.
Lifecycle errors now identify the offending attribute, while provider-name resolution consistently honors configuration and reports where the installed name came from.
Lifecycle contract errors identify the attribute that violated the plan.
Provider names resolve consistently from both supported configuration keys.
Installation reports the source of the resolved provider name.
Recursive defaults, replacement planning, versioned state-schema migrations, and a broad audit of silent wrong-answer failures make provider behavior safer and more explicit.
Defaults now resolve recursively through objects and nested blocks.
Schema declarations and plan hooks can require resource replacement.
Resources can version, migrate, and validate stored state.
A codebase-wide audit fixed paths that silently returned the wrong answer.
From the first public release through Protocol 6.11: the Python provider framework, its component model, and the state-store, list-resource, action, deferral, and identity work that established the current surface.
0.3.0 marked the first public release; 0.3.32 delivered the initial framework implementation.
0.4 was a maintenance release rather than a new capability milestone.
0.5 added the Protocol 6.11 component and capability surface.
0.5.1–0.5.3 repaired function deferral, list identity, and state-store wire contracts.