Releases: pact-foundation/pact-protobuf-plugin
Release list
0.8.1
What's Changed
- feat: support grpc-status-details-bin binary metadata matching by @sunnybandlamudi in #239
- fix: attach atLeast/atMost to the collection path on repeated fields by @stan-is-hate in #241
- test: cover the arrayContains reference form by @stan-is-hate in #244
- chore(ci): remove stale internal workflow by @JP-Ellis in #247
- chore(ci): update musl build image to Rust 1.98.0 by @rholshausen in #249
- fix: include the underlying protox error when proto compilation fails by @rholshausen in #248
New Contributors
- @sunnybandlamudi made their first contribution in #239
Full Changelog: v-0.8.0...v-0.8.1
0.8.0
Feature Release
⚠ protoc is no longer required. The plugin now bundles its own Protocol Buffer compiler — no installation, no download, no path configuration needed.
What's changed
arrayContains matcher support for repeated fields
Consumers can now use the arrayContains matcher on repeated protobuf fields to assert that an array contains at least one element matching a given expression, without requiring the entire array to match exactly.
Embedded proto compiler
The plugin previously downloaded or located an external protoc binary at startup, which could fail in air-gapped environments, on unsupported architectures, or when the system protoc was the wrong version. The compiler is now provided by the protox (https://crates.io/crates/protox) crate and compiled directly into the plugin binary. Proto files are compiled in-process with no external dependencies.
As a result:
- protocVersion and downloadUrl have been removed from the plugin manifest — these fields are ignored if present in older manifests.
- The additionalIncludes configuration option continues to work as before for resolving imported proto files from other directories.
Dependency upgrades
- prost / prost-types → 0.14
- tonic → 0.14
- pact-plugin-driver → 0.7.6
Removed runtime dependencies
reqwest, zip, tempfile, and os_info are no longer bundled in the plugin binary, reducing its size and attack surface.
Changelog:
0.7.0
Fix nested message lookups + proto descriptor caching
- 18e6500 - chore: Cleanup some compiler warnings
- 67533d1 - chore: Bump minor version
- 73051a0 - chore: Update dependencies
- e82e656 - feat: Fix nested message lookups; introduce proto descriptor caching; refactor (#235) (Stanislav Vodetskyi)
- 658e7af - fix: Upgrading pact_matching to 2.0.1 broke some imports
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
Bugfix Release
Fixes an issue with the mock server where there are multiple interactions for the same route.
0.6.0
Fix for always requiring repeated enum field values
- 3bb48cf - chore: DRY up some of the error responses
- 2c93c0f - fix: Use the stored consumer expectations to determine if a repeated field is missing #197
- 8de0573 - fix: Store the expectations from the consumer test in the Pact file #197
- 8c05cbc - chore: Update all dependencies and upgrade Tonic to 0.13.1
- 6cca3f4 - chore: Upgrade minor dependencies + pact dependencies to latest
- 18632b0 - chore: Update project to Rust 2024 edition
- d90888c - Update README.md (ZahraKhanRed)
0.5.4
Bugfix Release
- d6b1626 - fix: Fixed regression introduced by 0.5.3 release