Plugin SDK Release Notes
This page tracks releases of the formae Plugin SDK packages:
- pkg/plugin - Core SDK for building plugins
- pkg/plugin-conformance-tests - Conformance test framework
- formae-plugin-template - Scaffold for new plugins
March 2026
conformance-tests v0.1.25
Released March 17, 2026
Feature: Regex support for test filter
The TEST= parameter now supports /…/ delimited regular expressions for
flexible test group selection. For example, TEST='/.*-chart/' selects all chart
tests and TEST='/^cluster.*/' selects all cluster-scoped resources. Regex and
literal segments can be mixed in a single comma-separated filter (e.g.,
TEST='/.*-chart/,namespace'). Invalid regex patterns cause immediate failure
with a clear error message. See
Filtering Tests for details.
Feature: Configurable discovery timeout
The discovery test timeout is now configurable via the FORMAE_TEST_DISCOVERY_TIMEOUT
environment variable (in minutes). Previously hardcoded to 2 minutes, this can now be
increased for plugins with many resource types or chart-based test cases that need more
time for discovery to complete. See
Environment Variables for details.
conformance-tests v0.1.24
Released March 12, 2026
Fix: Retry create/delete operations on recoverable errors
The test harness now retries CreateResource and DeleteResource operations
when the plugin returns a recoverable error, instead of failing the test
immediately. This reduces flaky test failures caused by transient cloud provider
errors during conformance runs.
conformance-tests v0.1.23
Released March 10, 2026
Fix: Honor @HasProviderDefault annotation in property comparison
Previously, conformance tests ignored extra fields returned by plugins, which
could hide issues where plugins return unexpected data. Tests now validate that
extra fields in the actual state are only allowed if marked with
@HasProviderDefault in the schema.
Unexpected extra fields will now correctly fail the test.
conformance-tests v0.1.22
Released March 9, 2026
Fix: Property comparison for Listing fields containing resolvables
Previously, conformance tests would fail for schemas with Listing fields where
elements contained resolvable references (e.g., subjects: Listing<Subject> with
a resolvable namespace property inside Subject). The test framework now
correctly compares these nested resolvables.
February 2026
plugin v0.1.14
Released February 23, 2026. Requires formae ≥0.82.2
Fix: Transitive pkg/model dependency
Fixed incorrect transitive dependency on pkg/model that caused EDF
serialization errors. The pkg/model dependency is now pinned to v0.1.5 across
all SDK modules.
conformance-tests v0.1.21
Released February 23, 2026. Requires plugin ≥0.1.14
Fix: Transitive pkg/model dependency
Bumped pkg/model to v0.1.5 to match plugin v0.1.14, fixing EDF
serialization errors caused by mismatched transitive dependencies.
plugin-template
Feature: verify-schema CI job
Added a verify-schema CI job to the template that validates PKL schemas can be
generated correctly, catching schema errors before they reach plugin releases.
conformance-tests v0.1.20
Released February 23, 2026
Fix: Nested Resolvables in SubResource map comparison
compareProperties() used flat string comparison for non-Resolvable,
non-array values. When a SubResource map (e.g., ResourceLifecycleConfig)
contained a nested Resolvable reference, the entire map was string-compared —
$visibility:Clear from Pkl eval vs $value:arn:... from resolved inventory —
causing false test failures.
Added recursive compareMap() that delegates to compareResolvable() for
nested Resolvables, compareArrayUnordered() for arrays, and recurses into
sub-maps.
plugin v0.1.13
Requires formae ≥0.82.0
Feature: HasProviderDefault field hint
New hasProviderDefault annotation for fields where cloud providers assign
default values (e.g., S3 bucket encryption, SQS visibility timeout).
@formae.FieldHint { hasProviderDefault = true }
bucketEncryption: BucketEncryption?
When a field with this hint exists in actual state but is not specified by the user, formae accepts the provider's default instead of generating a "remove" operation. This prevents oscillation during reconcile cycles.
See the schema reference for details.
conformance-tests v0.1.19
Released February 10, 2026
Improvement: Robust property comparison for arrays, resolvables, and string escaping
This release significantly improves how the conformance test framework compares expected vs actual resource properties:
-
Order-independent array comparison — All array properties are now compared as unordered sets. Elements are serialized to JSON and sorted before comparison, eliminating false failures caused by CloudControl returning arrays in a different order than specified in PKL.
-
Resolvable handling inside arrays — Arrays containing resolvable references (e.g., Tags with resolved values) are now matched element-wise using metadata keys (
$label,$type,$stack,$property). Resolvables are handled gracefully after extraction, where$valuemay no longer be present. -
String escaping normalization — JSON/PKL round-trip differences in backslash escaping no longer cause false mismatches. Extraction comparison now reuses the same comparison logic as inventory comparison, benefiting from all the above improvements.
plugin v0.1.12
Released February 6, 2026
Fix: pkl-go race condition
Fixed a race condition in pkl-go's NewProjectEvaluator where a late message
from the pkl subprocess could kill the evaluator manager's listen loop, causing
evaluation failures. This primarily affected CI environments under resource
pressure.
plugin v0.1.11
Released February 5, 2026
Feature: Plugin telemetry metrics
Plugins now export Ergo actor framework metrics via OpenTelemetry, providing visibility into plugin process health and performance.
conformance-tests v0.1.14
Released February 4, 2026
Feature: Configurable test timeout
Override the default 5-minute timeout for resources that take longer to provision:
make conformance-test TIMEOUT=900
Note: Requires updating your Makefile from the plugin template repository.
Feature: Config directory support
You can now create a config/ directory under testdata/ containing shared Pkl
code (such as targets or stacks). Files in this directory are not picked up as
test cases by the conformance test framework.
January 2026
conformance-tests v0.1.13
Released January 31, 2026. Requires plugin v0.1.9.
Feature: Parallel test execution with configurable Ergo ports
Run conformance tests in parallel to significantly reduce test execution time:
make conformance-test PARALLEL=10
When running parallel tests, multiple formae agent instances need unique ports
for Ergo node communication. This release adds ergoPort configuration to
prevent port conflicts.
Note: Requires updating your Makefile from the plugin template repository.
conformance-tests v0.1.12
Released January 30, 2026
Feature: Parallel test execution support
Added infrastructure for running conformance tests in parallel via
FORMAE_TEST_PARALLEL environment variable.
conformance-tests v0.1.10
Released January 30, 2026
Conformance test improvements
- Faster and more reliable discovery tests in CI environments
- Extract validation step now runs correctly for all extractable resources
- Improved error messages when validations fail
plugin v0.1.9
Released January 31, 2026
Feature: Configurable Ergo port
Plugins now read FORMAE_ERGO_PORT environment variable to configure Ergo
acceptors, enabling parallel test execution.
plugin v0.1.8
Released January 30, 2026
Fix: Plugin log levels now preserved
Plugin logs were incorrectly routed through stderr, causing the formae agent to treat all plugin logs as errors regardless of their actual log level. Logs now route through stdout with correct log levels preserved.