Skip to content

Releases: pact-foundation/pact-protobuf-plugin

0.8.1

Choose a tag to compare

@rholshausen rholshausen released this 05 Oct 02:38

What's Changed

New Contributors

Full Changelog: v-0.8.0...v-0.8.1

0.8.0

Choose a tag to compare

@rholshausen rholshausen released this 13 May 01:29

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:

  • 173bf2f - feat: replace protoc binary with embedded protox compiler (#237)
  • c9da8c1 - chore: Use macos latest in CI
  • 2f5d3c6 - chore: Update dependencies
  • 4b7277a - feat: add arrayContains support for repeated fields (#236) (Stanislav Vodetskyi)

0.7.0

Choose a tag to compare

@rholshausen rholshausen released this 06 Oct 01:40

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

Choose a tag to compare

@rholshausen rholshausen released this 19 Aug 23:41

Maintenance Release

  • f0c3abb - fix: finding deeply nested enums (#232) (Eric Muller)

0.6.4

Choose a tag to compare

@rholshausen rholshausen released this 29 Jul 01:12

Bugfix Release

  • 6d85ac2 - fix: Consumer expectations were not passed down for repeated message fields #231

0.6.3

Choose a tag to compare

@rholshausen rholshausen released this 27 Jul 23:30

Bugfix Release

  • 940ee6b - fix: Only need to check the start of the content type string #32
  • b76316b - feat: Update readme with a note about byte arrays with non-utf8 data #229
  • 6f3b414 - feat: Support byte arrays with non-utf8 data #229

0.6.2

Choose a tag to compare

@rholshausen rholshausen released this 17 Jul 04:47

Maintenance Release

  • 3b2a473 - chore: Small optimisation, delay locking the state mutex as late as possible
  • a9bdb80 - test: Test atLeast and atMost first in expression (#226) (Tien Vo Xuan)
  • 8102970 - feat: Support fromProviderState generator in regex matching expression (#225) (Tien Vo Xuan)

0.6.1

Choose a tag to compare

@rholshausen rholshausen released this 08 Jul 06:08

Bugfix Release

Fixes an issue with the mock server where there are multiple interactions for the same route.

  • 54060e8 - chore: Update other builds to latest Rust stable
  • 0fe97db - chore: Update musl build to Rust 1.88
  • f348a47 - fix(mock-server): Need to handle the case where there are multiple messages per route #228

0.6.0

Choose a tag to compare

@rholshausen rholshausen released this 25 Jun 00:27

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

Choose a tag to compare

@rholshausen rholshausen released this 17 Nov 23:51

Bugfix Release

  • d6b1626 - fix: Fixed regression introduced by 0.5.3 release