Skip to content

pact-reference-rust-v1.0.0

Compare
Choose a tag to compare
@opicaud opicaud released this 16 May 12:11
· 514 commits to master since this release

pact-reference-rust-v1.0.0 (2023-05-16)

Bug Fixes

  • match arms have incompatible types (b7f967e)
  • access-control-allow-methods header was duplicated (44e7414)
  • add a small delay after loading plugins via FFI to resolve a race condition (213d145)
  • add a small delay at the end of validation to allow async tasks to finish (00a0046)
  • add a test to reflect behaviour as per V4 spec (1c45b63)
  • add callback timeout option for verifcation callbacks (4afa86a)
  • add cc_library (93d658f)
  • add final newline to verifier output (Jest will overwrite it with the test name) (8c2152e)
  • add function to display binary data in a meaningful way (2ca2fe4)
  • add matching implementations for Vec and &Vec (ede663e)
  • add missing params to provider state change executor (17682dc)
  • add missing provider-branch to verifier CLI (0af1830)
  • Add OSX to the conan package (a13c0fc)
  • add test for publish verification result issue #231 (33a784a)
  • add tests for PUT and POST requests #220 (9fc5658)
  • add visibility public (2fd1c0d)
  • add zip file for binary test (81eed06)
  • Allow dashes in path expressions for headers like Content-Type (1184203)
  • allow multiple consumer version selectors (df23ba3)
  • allow the HTTP client to be optional in the provider state executor (0e8bfad)
  • apply generators to the request in the same manor as the response (ae95e0c)
  • arrayContains matcher JSON was missing match attribute (c686ce0)
  • async message builder was not setting the pact plugin config correctly (df67b72)
  • broken message test (a7e5778)
  • broken test for v2 path matcher (5167cfb)
  • broken tests after handling multiple header values (7616ccb)
  • cbindgen fails in latest nightly rust (fcfc7c1)
  • cbindgen fails in latest nightly rust (61e4d69)
  • cbindgen fails in latest nightly rust (4b1ba4a)
  • change filegroup (e819794)
  • Charsets in headers should be compared ignoring case (a151bcc)
  • check the size of the merged pact file #54 (bc044be)
  • cleanup compiler warning (beb1c03)
  • cleanup env var and set tests to not run in parallel on CI #54 (19e8ced)
  • cleanup warnings and fixed test (45fc1a0)
  • CLI was reporting incorrect pact specification version (6343607)
  • clippy error (e5b1f93)
  • clippy erros (cbc7812)
  • clippy violation - caused a compiler error (728465d)
  • clippy violation: using clone on a double-reference (e588bb2)
  • clippy: using clone on a double-reference; this will copy the reference instead of cloning the inner type (0a70d64)
  • clippy: you are implementing Hash explicitly but have derived PartialEq (9852811)
  • comparing query paraneters where actual has less values but there is a type matcher (0e3db9d)
  • conan packages for pact_ffi (6d1ff31)
  • Consumer DSL needs to increment plugin access to avoid plugin shutting down when mock server starts (57a8ad7)
  • consumer version selectors (f4a7d52)
  • consumer: request and response builders were using the first interaction from plugins, not the correct one (f6d0c35)
  • content type matcher was not being applied if content type was not octet_stream #171 (65d0514)
  • correct build dependencies (f2c7145)
  • correct C examples after adding prefix (5801e46)
  • correct clippy error (7baf074)
  • correct headers attribute with multiple values might not be matched (eef6b08)
  • correct issue with headers/query with multiple values (75c965e)
  • correct overflow of max value for random int generator #39 (91da912)
  • correct pact merging to remove duplicates #54 (a660b87)
  • correct parsing of JSON encoded bodies as per V4 spec (ba24b0a)
  • Correct test after upgrading pact_models to 1.0.2 (2cf5d8a)
  • correct the backing arary list for headers from FFI call (9c84713)
  • correct the backing array list for query parameters from FFI call (c93e364)
  • correct the matching logic with lists and eachkey/eachvalue matchers (1a01d11)
  • correct the pact_verifier_cli release scripts (f9cf35f)
  • correct the release script (adf1a97)
  • correct the release scripts (2057f2c)
  • correct the version in pact_verifier_cli (f9ecd89)
  • correct the version of the pact_consumer crate (2b39873)
  • correct the windows lib name in conan package (4287f0e)
  • correct the windows lib name in conan package (c1015d5)
  • correct version (637e814)
  • corrected some spelling (b5c7842)
  • corrected the docker build for the mock server cli #14 (a45d5f8)
  • corrected the docker build for the verifier cli #14 (9d24b7e)
  • corrected the release scripts to check for a version parameter (386ab52)
  • correctly assemble UTF-8 percent encoded query parameters (7f054e8)
  • cors: source allowed origin from origin header, add credentials (86d32dd)
  • date and time matchers with JSON (2920364)
  • date/time matchers fallback to the old key (61ab50f)
  • detect common text types when comparing content type (a0c9d20)
  • display the error message when the verification can not be run due to an error (bfa0437)
  • doc tests with Into trait fail to link with Rust beta 1.27.0 (1e0c65b)
  • docker build now requires libclang system library (9f3ad74)
  • docker file needs to be able to build Oniguruma lib (8a0c5c2)
  • docker release script (0dd10e6)
  • docker release script (5b22076)
  • DocPath join needs to detect numeric values (7b2e853)
  • Docpath join was escaping * (a3f7471)
  • don't clone a double reference (clippy error) (d8ceb74)
  • don't unwrap a result when generating random string from regex (9389c0a)
  • drop(from_raw(ptr))if you intend to drop theCString` (1cafd00)
  • Each key matching was not implemented correctly (28f562e)
  • EachValue was outputting the wrong JSON (48a6be5)
  • error caused an internal mutex to be poisoned (5251fcf)
  • expected opaque type, found enum Result (fe22ae3)
  • failing pact_consumer build (13976f5)
  • failing test after changing message_with_contents function signature (78c20d6)
  • failing tests #116 (b1a4c8c)
  • feat deps pattern to use via external libpact_ffi.a (77a5e26)
  • FFI always detects + stores JSON bodies as plain text (aff4d30)
  • FFI datetime matcher was using incorrect field (ddacb5d)
  • FFI function was exposing a struct from the models crate (8b075d3)
  • FFI mismatch json should have the actual values as UTF-8 string not bytes #64 (a45d0c3)
  • ffi.pactffi_logger_attach_sink causes seg fault if log directory doesn't exist #226 (9dad5d2)
  • FFI: broken build after upgrading pact_models (4f366ac)
  • ffi: correct race condition in pactffi_using_plugin (d41e244)
  • FFI: FFI passes matching rules and generators for paths etc. with a path of $ (b6bba54)
  • FFI: fix matching rule for paths #205 (e95d701)
  • FFI: fix matching rule for paths #205 (b0fdbb6)
  • FFI: fixed race condition with Pact handle ids (8520760)
  • FFI: handle headers with multiple values correctly #205 (f634fa9)
  • FFI: handle query parameters with multiple values correctly #205 (52b7009)
  • FFI: Message metadata was not being passed on to the mock server (a56bc05)
  • ffi: OSX CMake file had the wring filename (1307dde)
  • ffi: pactffi_create_mock_server_for_transport was returning the wrong status for invalid address (a78f2a1)
  • FFI: pactffi_with_binary_file was incorrectly setting the response content type to application/octet-stream #171 (3c5c45d)
  • ffi: plugin data was not merged into the Pact file correctly (797d1cc)
  • FFI: Replaced the matching rule union type with 3 FFI functions which should support Go better (7756d30)
  • ffi: resources were not freed correctly when the mock server is provided by a plugin (873f0c9)
  • FFI: update the example in docs to use new function #205 (f0cde4e)
  • FFI: use a multi-threaded reactor for FFI setup_contents call to plugins (ec2ed51)
  • FFI: Use a star for the path with values matcher #216 (b8be05c)
  • fix missing last tag (36f7e47)
  • fix the build after refactoring the pact write function (2fb0c6e)
  • for failing integration test (2679653)
  • generators in process_object (63ab0d2)
  • generators to_json was only writing the first one for bodies, headers and queries (cbb6e20)
  • get verify_provider_async to wait on the metric call (8056d7e)
  • global options no longer incorrectly display a warning about being provided twice #27 (e5af1b0)
  • handle path expressions that start with an underscore (433d9c5)
  • Header matching rules with an index were not being applied #238 (2c8467e)
  • http_consumer_feature_test on linux (52768a3)
  • ignore flakey test (6ff9c33)
  • implement display for Interaction and Message (831ba3d)
  • improve the error message when a merge conflict occurs (6af29ce)
  • in callback executors, pass self by value to avoid lifetime issues (a27ce14)
  • include test results for successful interactions when publishing verification results #92 (74bd53f)
  • incorrectly handling provider state parameters from FFI call (3a12b6f)
  • Interaction builder was not copying plugin config data to the Pact metadata (e91ad62)
  • intermediate date/time matcher JSON should use the format attribute (f94f25a)
  • introduce GeneratorTestMode and restrict provider state generator to the provider side (13ce2f2)
  • jsdom does not support access-control-allow-headers: * for CORS pre-flight responses (326d02d)
  • Keep the original value when injecting from a provider state value so data type is retained #116 (e21db69)
  • linux verifier ffi shasum path was incorrect. Fixes #114 (12e5170)
  • lock the pact crate versions so that updates do not break CLI install #189 (8d58ea3)
  • log crate version must be fixed across all crates (including plugin driver) (c208964)
  • Macos on conan package (a0d701e)
  • make application/xml equivalent to text/xml (6995298)
  • make HAL client fetch and fetch link functions support brokers hosted with context paths #220 (77a7c8b)
  • make sure metadata entries are correctly encoded when downgrading a pact (a859d0e)
  • map matching logic was not including the EachValue matcher (cd6fe27)
  • matcher_from_integration_json in mockserver/bodies.rs doesn't support all MatchingRules #247 (3760c2b)
  • matchers in Pact file can have a different order on OSX (c8ad6d4)
  • matching binary data was broken after refactor (d24cfe3)
  • matching definition parser was incorrectly merging multiple definitions (e1e0b43)
  • Matching rule parser was not handling decimal values correctly (74a36a1)
  • Matching rules are not being applied correctly to message metadata #245 (4409441)
  • message pact feature test (cf679bd)
  • message pact feature test (84d79a1)
  • message pact needed matchingrules + generators (59e23f4)
  • Message pact was not loading the IDs from the Pact Broker #239 (64d500b)
  • message_reify was returning a pointer to a Rust string (ad0a72e)
  • Metadata was missing from the generator categories (f84adc7)
  • metrics: swap uid for cid (25d8cd9)
  • min/max type matchers must not apply the limits when cascading (8bcd1c7)
  • min/max type matchers were not being applied to query parameters (4e9d837)
  • missing $ in macro (86f8140)
  • missing import (6076485)
  • mock server matching requests with headers with multiple values (d85f28c)
  • MockServerURL generator was using the incorrect field (56ce20a)
  • notEmpty matching rule defintion should be applied to any primitive value (407cc2e)
  • ok so maybe let's see if this works on linux 🤷 (eb4b328)
  • Only print errors in the CLI to STDERR #28 (3c33294)
  • pact specification key in the metadata should be camelcase #3 (b68c893)
  • pact_consumer should be a dev dependency (0c5d6c2)
  • PACT_DO_NOT_TRACK should be upper case (43754e6)
  • pact_verifier_cli needs to use Tokio 0.2 (2ebeef9)
  • pact_verifier_cli was printing the version from the FFI crate (e8d6d84)
  • pact_verifier_cli: log entries were being duplicated (05e6399)
  • pact_verifier_cli: stop using deprecated clap::parser::matches::arg_matches::ArgMatches::values_of_lossy (b626002)
  • pact_verifier_ffi release scripts (6daae85)
  • pact-ffi: intermediate JSON - add test for JSON with decimal matcher #179 (7688908)
  • pact-ffi: intermediate JSON - type matcher paths were being incorrectly allocated to children #179 (b10453c)
  • pacts for verification unmarshal fails if 'pending' attr is not returned in response (d481bc1)
  • panicked at 'called on a value' when FFI LevelFilter == Off #226 (d976db0)
  • parse the V3 keys as path expressions for query and header matchers (948e620)
  • path in release scripts (2f29760)
  • pinning version of webmachine until reqwest is updated (773b4b1)
  • PluginData configuration is optional (c0bdd35)
  • ported matching logic fixes from Pact-JVM (6633575)
  • provider request timeout should be > 16bit integers. Fixes pact-foundation/pact-js#761 (0ef3fb9)
  • provider state handlers must be synchronous so they are executed for the actual request (126b463)
  • publishing provider branch was broken when invoked via a webhook call (7f51bdc)
  • race condition when shutting down plugin via FFI (e4a445b)
  • random decimal generator now includes a decimal point in the generated values (042bed0)
  • release script (0fe57d9)
  • remove duplicated line (a7c674a)
  • remove generator from crates_repository (eb8c395)
  • repeat the test 3 times #54 (d4dd39f)
  • reqwest is dyn linked to openssl by default, which causes a SIGSEGV on alpine linux (b4e2684)
  • results for sync messages were not being displayed (4587a43)
  • retain the data type for simple expressions #116 (80e3c4e)
  • return a failure if any pact verification fails #47 (665bbd8)
  • return the most relevant response from the mock server #69 (da53bac)
  • return version of the mock server via FFI without heap allocation #80 (51eef86)
  • rust/pact_mock_server_cli/Dockerfile to reduce vulnerabilities (fcbee0c)
  • rust/pact_mock_server_cli/Dockerfile to reduce vulnerabilities (eb92d66)
  • rust/pact_verifier_cli/Dockerfile to reduce vulnerabilities (c7f6887)
  • rust/pact_verifier_cli/Dockerfile to reduce vulnerabilities (f709528)
  • serialise v2 path matcher correctly for FFI (a33718a)
  • set content-type header in message request (3e943b1)
  • set the path to the generated pact file #54 (b5474b4)
  • shared mime-info db not available on Windows (41b406a)
  • shutdown the tokio reactor correctly when there is an error (c97f5d1)
  • Some matching rules do not have associated configuration (39338c4)
  • sort the header and query parameter keys when writing the pact #246 (4c04cb6)
  • State change descriptions were not being displayed along with the interaction description (6cae9b0)
  • state change URLs should not end with a slash #110 (e993074)
  • store matching rules in a set to avoid duplicates (a0dc946)
  • strip off anchors before generating a value from a regex (cd9d41c)
  • support header values that are not well formed #228 (4f786ff)
  • support matching rules affected by Pact-JVM defect 743 (97abce4)
  • Support RequestResponsePact loading from V4 formatted JSON #246 (155dae4)
  • support specifying matching_branch in verifications (29605ab)
  • support specifying matching_branch in verifications (260deb7)
  • switch to the Oniguruma crate for regex matching #46 (defe890)
  • Templated values in HAL links need to be URL encoded #166 (f4fdba3)
  • times with millisecond precision less 3 caused chronos to panic (850282d)
  • try loosen dependencies to fix dependency cycle issue (f91dc00)
  • update conan test packages to use updated API (2eba288)
  • update doc comment on message_with_contents function (64e0700)
  • update flakey ffi feature test (7d50453)
  • Update onig to latest master to fix Regex Matcher Fails On Valid Inputs #214 (6ad00a5)
  • update to latest driver crate (fc5be20)
  • update to latest models and plugin driver crates (918e5be)
  • Upgrade pact_models to 0.4.5 - fixes FFI bug with generators for request paths (f8db90d)
  • Upgrade pact_models to 1.0 and pact-plugin-driver to 0.1.15 to fix cyclic dependency issue (577824e)
  • Upgrade pact_verifier to 0.13.13 (cdb555f)
  • Upgrade plugin driver to 0.1.13 (fixes issue loading plugin when there are multiple versions for the same plugin) (965a1c4)
  • Upgrade plugin driver to 0.3.1 (1e7331f)
  • Upgrade reqwest to 0.11.10 to resolve #156 (73ae0ef)
  • upgrade to tree_magic_mini 2.0.0 because they pulled 1.0.0 from crates.io and now builds fail (75c2c1a)
  • upgrade uuid crate (1651af1)
  • use a single result enum #66 (9b1c192)
  • use cargo-bazel-lock local (e9b1cf0)
  • use the pacts for verification endpoint if the conusmer selectors are specified #133 (c274ca1)
  • use Vec instead of HashSet to maintain order of matching rules on OSX (42f0a39)
  • using clone on a double-reference (39c3816)
  • using clone on a double-reference (c182c25)
  • UUID generator should return hyphenated values (a5f17a5)
  • V3 path matcher JSON format was incorrect (b52f095)
  • V4: Status code matcher was not converted to JSON correctly (457aa5f)
  • Values matcher should not be applied to a slice like Equality (dfa9f61)
  • Values matchers must not cascade (07e2a3b)
  • values_matcher_defined should include EachValue matcher (41a5231)
  • verification CLI was reporting incorrect pact specification version (4b8fb64)
  • Verification results across multiple pacts accumulate, publishing invalid results #231 (c12d9a6)
  • verifier test: missing addition of teardown impl (1768141)
  • verifier was returning a mismatch when the expected body is empty #113 (a44cbbe)
  • verifier: fix typos in the implementation of Display on the PactSource enum (b8d263f)
  • verifier: provider state executor teardown function does not need to be async (6466545)
  • verifier: the state_change_teardown option didn't appear to actually be used (5f782d6)
  • verify interaction was blocking the thread (484b747)
  • was incorrectly selecting the matching rule when weight was equal (67e2147)
  • was missing setter to set the transport with V4 interactions (01ac989)
  • when comparing content types, check the base type if the actual content type has a suffix #224 (83d14ce)
  • when displaying diff, if actual body was empty a panic resulted (baf3693)
  • when loading pacts from a dir, filter by the provider name #233 (34a67cb)
  • when loading plugins for Pact files, only take minor + major version into account (e93c557)
  • when matching bodies, use any content type header matcher (88eff15)
  • when merging pacts, it helps to use the new interations in the merged pact, not the old ones #77 (3acf437)
  • Windows URL on conan package (bb1e35e)
  • write_pact_file was always serialising a v3 pact even if the spec version was set to 2 (d7632cb)
  • xml response matching rules (13f7c36)

chore

  • rename header PACT_MESSAGE_METADATA -> Pact-Message-Metadata (b3a6f19)

deps

  • pact_mock_server_ffi: remove formdata, add multipart (3b73b71)

Features

  • add --no-color option to verfier CLI #203 (4530dbd)
  • add a boolean return value for all FFI interaction functions #108 (64adcdc)
  • Add a command to shut the master mock server down #26 (40ad75b)
  • add a method to join a value onto a doc path (c707a8c)
  • add a mock server config struct (29ba743)
  • add a mock server URL generator (09b197d)
  • Add a parameter for the server key to the start command #26 (074569a)
  • add a test to check for error result with IO error #213 (8ca3303)
  • add ability of mock server to expose metrics #94 (5a529fd)
  • add all the CORS headers (d3c5cf2)
  • add an iterator over the matching rules from a matching definition expression (18e1e11)
  • Add ARM64 (aarch64) linux targets to the release build #160 (e3bef15)
  • add bazel to build libpact_ffi.a (c1098a4)
  • add bazel to build shared library libpact_ffi.a (1149bed)
  • add bazel to build shared library libpact_ffi.a (83df4f6)
  • add CLI options to provide different ports when there are different transports (8cc2948)
  • add colons to the allowed path characters (66c328e)
  • add convience methods to modify headers (e699061)
  • add cross config to build arm64 binaries (34f4f6c)
  • add custom-header to the old FFI args for implementations that have not moved to handles (2e5823a)
  • add date-time matcher to consumer DSL (be604cc)
  • add docs on the matching rule IDs (cfc565e)
  • add exponental deplay the pact broker client retries #94 (656201c)
  • add FFI function to create mock server from Pact handle (0613180)
  • add FFI function to get the generator from a matching definition (f7b561e)
  • add FFI function to parse a matching definition expression (768a132)
  • add FFI function to parse JSON to a Pact model (e21d345)
  • add FFI function to return generator JSON (570e33c)
  • add FFI function to set a message contents (cf40b7d)
  • add FFI function to set a message contents as binary (8f112ad)
  • add FFI functions to extract logs from a verifcation run (42be9eb)
  • add FFI functions to return the verifier output and results (c676e82)
  • add for custom headers to the HTTP client used by the verifier #182 (f52c362)
  • add function to detect if a string is a matching definition (481762f)
  • add function to get matching rule as JSON (7a2686e)
  • add function to retrieve the TLS CA cert (2f16b34)
  • Add functions to calc unique key to V4 interaction trait (6de6c22)
  • add functions to return mutable references to the V4 model trait (15b8f08)
  • add functions to return plugin details to the WASM interface (5ceaae2)
  • add generator FFI functions (b7c010e)
  • add ignore-no-pacts-error to the verifier CLI #213 (8663cd3)
  • Add initial V4 models and example pact files (7232e89)
  • add json output to the verifier CLI (d0fa29d)
  • add MessagePact (Pact with Messages instead of Interactions) (cc42fbc)
  • add metadata to consumer message ffi interface (10e54b8)
  • add method to DocPath to return the parent path (b5fd82e)
  • add method to V4Pact to find an interaction by ID (7e3e2e1)
  • add metric call when the mock server is shutdown via FFI function (78c05f2)
  • add metrics event for provider verification (f8042d6)
  • add metrics events for Pact-Rust consumer tests (cba3f08)
  • add metrics publishing to matching crate (48d061e)
  • add musl target to the release build #185 (16fbe7c)
  • add mutable iteraction over Pact interactions (daa2c10)
  • add mutable methods to Pact model traits (fa83806)
  • Add options for compact and human formats to the verifier CLI log output (53a622a)
  • add pactffi_create_mock_server_for_transport function (5cd2ae5)
  • add pactffi_pact_handle_write_file which knows about the spec version (675506e)
  • add retries to the provider state change calls #197 (18118e8)
  • add retry to the pact broker client fetch #94 (8541751)
  • add retry to the pact broker client post and put #94 (e38634e)
  • add self-signed tls option to mockserver cli (to test TLS with Tokio 1.0) (76f052b)
  • Add short option for custom headers (14e3b8f)
  • add support for custom headers via the verifier CLI #182 (7932480)
  • add support for custom headers with the verifier FFI calls #182 (74bd453)
  • add support for TLS with the mock server #65 (da885a3)
  • add support functions for regular expressions for foreign DSLs (b30fd2d)
  • add tests for serialising Generator::ProviderStateGenerator (b130cd2)
  • add user-agent header to the HALClient (8bb2534)
  • add verification option to disable ANSI escape codes in output #203 (40f7bdc)
  • add verifiedBy to the verified results (09513de)
  • add verifier ffi function set consumer filters (dab7027)
  • add verifier ffi function set verification options (05f4c3d)
  • added a struct for handling content types (5316030)
  • added convenience header methods to HttpPart (ead1af2)
  • Added header_from_provider_state and path_from_provider_state (ffbcaf5)
  • added interaction handle (9ec8817)
  • added read locks and a mutex guard to reading and writing pacts (9976e80)
  • added some tests for publishing verification results to the pact broker #44 (eef3d97)
  • added test for array contains as a generator (5556b32)
  • added the ProviderStateGenerator as a generator type (cb30a2f)
  • added V4 interaction types (b2725dd)
  • added validation of provider state JSON (31873ee)
  • added verification of req/res interaction (82a2d5d)
  • allow BrokerWithDynamicConfiguration to publish results (f76ddd8), closes #181
  • allow callers to add messages to log (f683304)
  • allow callers to add metadata into resulting pact file (0dc59d0)
  • allow ffi bindings to set spec version (6af4d3f)
  • allow FFI mockserver to log to a memory buffer (eb19188)
  • allow https scheme and ability to disable ssl verification (6cec6c7)
  • allow messages to have binary payloads (5024e17)
  • allow non deafult json content-type (c1ccb62)
  • allow sensible defaults for interaction transports (ce11a61)
  • allow set consumer version selectors (7c561f2)
  • allow set filter info (41e69a2)
  • Allow the directory pacts are written to to be overriden in consumer tests #21 (a5588dc)
  • allow the interaction transport to be set in consumer tests (24186e9)
  • always execute provider_states callbacks even when no state is defined (8216ec7)
  • array contains working with Siren example (7110ab1)
  • basic array contains matcher working (d79beb4)
  • being able to build pact_verifier_cli (467a442)
  • being able to override cargo-bazel-lock name file (ec28067)
  • capture all the output from the verifier (5f148cd)
  • Capture all the results from the verification process (bf15223)
  • cleaned up the error display a bit (258cb96)
  • cleaned up the logging of request matches (ce94df9)
  • cleanup date matching #33 (e72fb9e)
  • consumer builders need to populate the interaction config from the plugins (ee498dc)
  • Copied pact_mockserver_ffi to pact_ffi (084ab46)
  • copied verfier_ffi crate to pact_ffi (0d5ec68)
  • create conan package for linking with C++ projects (d357ad2)
  • deal with verification output from plugins (bc4f04d)
  • Detect Pactbroker responses from the URL content #199 (1972a74)
  • do no write empty comments + added consumer version to metadata (9fd9e65)
  • do not output an error if no_pacts_is_error is false and no pacts were found to verify #213 (43be2e8)
  • enable ANSI console output on Windows (5ecf70a)
  • enable consumer code to use the new Value matcher (63fcf49)
  • enable consumer version selectors (904ca31)
  • enable CORS behaviour based on the mock server config (7e68e4c)
  • enabled some more tests for V4 models (d0d7380)
  • export libpact_ffi.a (4d03e64)
  • expose Pact models via WASM (067ded8)
  • exposes time/date utils for language implementations (e0f23a2)
  • extracted the JSON -> Pact logic into a public function (a35150b)
  • ffi verifier cli: add in support for ENVs (55985d0)
  • ffi verifier cli: attributes long/short/help can be simplified (fd9ea9c)
  • ffi verifier cli: simplify duplicated conversion for default_value, env, possible_values (d516705)
  • ffi verifier cli: split out flags and options (906661c)
  • ffi verifier cli: verify we can deserialize the json from cli_args, and there are some args (84957fb)
  • ffi verifier: add multiple to CLI JSON output (491c23f)
  • ffi verifier: add possible_values (ffcabb6)
  • ffi verifier: added a crude method to pull out CLI arguments, and make available via FFI (f8d98dc)
  • ffi verifier: bump serde version to latest (5a32f04)
  • ffi verifier: move pactffi_verifier_cli_args to mod.rs, tidy, add docs (e557ce2)
  • ffi verifier: revert unwanted changes (f64b0ea)
  • ffi verify: add in default values, start looking at flags (bbae32d)
  • FFI: add an explicit function to enable ANSI terminal support on Windows (fbfd072)
  • FFI: add FFI functions to get a Pact consumer and provider (f190bd5)
  • FFI: add FFI functions to get the content opaque pointer (0e15801)
  • FFI: add function to disable coloured output with the verifier (68c5444)
  • FFI: add functions for getting/setting HTTP interaction bodies (433ab44)
  • FFI: add functions for matching common values (6fe19b9)
  • FFI: Add functions to downcast to concrete interaction types (2b82fb5)
  • FFI: Add iterator over interactions in Pact model (bea076b)
  • FFI: add iterators over the interaction generators (9494cc7)
  • FFI: add iterators over the interaction matching rules (8ed492c)
  • FFI: add option to strip ANSI control codes from verifier output (7311e02)
  • FFI: add pactffi_verifier_set_no_pacts_is_error function #213 (c128d22)
  • FFI: Added initial verifier FFI prototype (9370327)
  • ffi: open log files in append mode (e1ddffc)
  • ffi: support adding transports to provider via pactffi_verifier_add_provider_transport (dda213e)
  • FFI: Support MessageMetadataIterator with V4 messages (f67340d)
  • FFI: update pactffi_with_binary_file function to support message interactions (128ae7c)
  • FFI: update pactffi_with_body function to support message interactions (ded4dc6)
  • FFI: updated doc comments for pactffi_with_multipart_file (4c95789)
  • file-validator: add coloured output (a59f69b)
  • file-validator: check for additional properties in the root (0652139)
  • forward provider details to plugin when verifying (cdf72b0)
  • forward verification to plugin for transports provided by the plugin (2395143)
  • got V4 Synchronous/HTTP pact loading (511272a)
  • handle bodies with embedded matchers and generators (5f8d0a0)
  • handle comparing content types correctly (865327d)
  • handle CORS pre-flight requests in the mock server (2e662a6)
  • handle namespaces when matching XML (6c65dab)
  • implement each key and aech value matching rule definitions (3207cb4)
  • implement matching of binary payloads (application/octet-stream) (708db47)
  • Implement the base part of time expressions (6644225)
  • implement verification for RequestResponsePact, Consumer, Provider (4e328d9)
  • implemented basic message verification with the verifier cli (6cba6ad)
  • Implemented date expression parser (from Pact-JVM) (b8ea724)
  • Implemented date-time expression parser (from Pact-JVM) (98b887f)
  • implemented FFI methods for query parameters, headers and bodies (fc17d30)
  • implemented FFI support for matching multipart form posts (dac517b)
  • implemented formatted display for request and response (ce57f17)
  • implemented generating values from regex (4f471de)
  • implemented generators for dates and times #33 (73bc70e)
  • implemented matching for message metadata (ebee1c0)
  • implemented matching multi-part form post bodies (d0a54f7)
  • implemented matching values ignoring keys (bc84a4d)
  • implemented non-blocking write file locking with exp backoff (6f13f49)
  • implemented non-blockng read file locking with exp backoff (f34629e)
  • implemented provider state generator (76f73c6)
  • implemented publishing provider tags with verification results #57 (fe74376)
  • implemented publishing verification results to the pact broker #44 (1110b47)
  • implemented some missing matchers (include, null, integer, decimal, number) (b060bbb)
  • Implemented time part in date-time expressions (318037a)
  • implemented using ArrayContains as a generator for JSON (1ed95ae)
  • Implemented V4 interactions + loading from JSON (7be8de6)
  • implemented writing pact for V4 pacts (013fbaf)
  • implemeted day of week in date matching #33 (5d890a5)
  • implemeted general timezone patterns in date matching #33 (8b9b043)
  • implemeted RFC 822 and ISO 8601 timezones in date matching #33 (45e1ee1)
  • implemeted simple date matching #33 (33f4054)
  • implemeted time in date matching #33 (2978a00)
  • Improve the error message format for matching rule definitions (20a275f)
  • include the mockserver URL and port in the verification context (5058a2d)
  • initail implementation of array contains matcher (03f43d4)
  • initial consumer FFI based message pact (413e9a5)
  • initial prototype of a pact file verifier (2f67821)
  • introduce repositories.bzl (87e9f52)
  • introduce repositories.bzl (9b2c6b1)
  • loading V4 pact tests passing (5d8f744)
  • log request/response bodies at debug level (4f47ff6)
  • made pact broker module public so it can be used by other crates (c8f7091)
  • make body processing functions public so other language impl can use them (4996c0f)
  • make default metadata public so other language impl can access it (c1b657b)
  • make state change url optional (339a950)
  • mock server: default pact spec to V3 if unknown (9cfe897)
  • pact file verification: verify consumer and provider sections (bbc638b)
  • Pact V4 release (59e2141)
  • pact-file-validation: implemented validation of the metadata section (a7c071b)
  • plugins: Add consumer message test builder + persist plugin data (9bf9dc3)
  • plugins: Add core features to the plugin catalogue (6086996)
  • plugins: add plugin support to FFI functions (2064359)
  • plugins: add support for synch messages via FFI (19beb0e)
  • Plugins: allow plugins to override text/binary format of the interaction content (b9aa7ec)
  • plugins: Call out to plugins when comparing content owned by the plugin during verification (2662241)
  • plugins: cleaned up the verfier output (5525b03)
  • plugins: fix after merging PR (33b308d)
  • plugins: Got generators from plugin working (779f099)
  • plugins: Load required plugins when verifying a V4 pact (bdfc6f0)
  • plugins: make NoopVariantMatcher public (cb1beb9)
  • plugins: make the interaction markup type explicit (f44ecc5)
  • plugins: moved the matching rule definition parser into the models crate (1a3c195)
  • plugins: moved the matching rule definition parser into the models crate (b40dab6)
  • plugins: order the matching results as plugins mau return them in any order (5a23541)
  • plugins: support each key and each value matchers (6d23796)
  • plugins: support getting interaction markup from plugins (3797807)
  • plugins: support matching protobuf embedded messages (21a7ede)
  • plugins: Support matching synchronous request/response messages (2b4b7cc)
  • plugins: Support message tests via FFI that use plugins (7c150c8)
  • plugins: Support non-blocking mock server in consumer tests + shutting down plugins when mock servers shutdown (4aaaafd)
  • plugins: Support plugins with the consumer DSL interaction/response (8c61ae9)
  • plugins: support storing interaction markup for interactions in Pact files (a89eca2)
  • plugins: update to latest plugin driver and proto (1dd2d88)
  • plugins: update to the latest plugin interface (aa3be06)
  • plugins: Updated matching rule definitions to include notEmpty and contentType (97ebf55)
  • plugins: updated matching rules + generators to support working with plugins (41e66b3)
  • ported the date manipulation functions from Pact-JVM #180 (2927e97)
  • provide a cargo bootstrap repository to build pact binaries (ee77ee7)
  • re-implement XML matching to support elements with different children (90c175c)
  • record the version of the lib that created the pact in the metadata (a52db73)
  • record the version of the lib that created the pact in the metadata (35ff099)
  • rename callback_timeout to request_timeout, and support timeouts for all http requests during verification (af6721a)
  • return error code 4 when verifier receives invalid args (61c9d0b)
  • return full message from the reify function (34c8701)
  • return the values from the state change call so they can be used by the generators (d5d3679)
  • return version of the mock server via FFI (638059d)
  • set non-hard coded install name on Mac dylib (f4881db)
  • some matching rules should not cascade (7b23378)
  • Split the builders into synch and async versions (a3fa7d6)
  • store the pact specification version with the mock server (5d4a09c)
  • store the transport with V4 interactions to support mockservers from plugins (7fd87eb)
  • store the transport with V4 interactions to support mockservers from plugins (da3ed1c)
  • support accumulating log entries per running mock server (17beef6)
  • support an integration format for matchers for language integration (8932ef6)
  • support authentication when fetching pacts from a pact broker (dac8ae1)
  • support bearer tokens when fetching pacts from URLs (e007763)
  • support callback timeout option on verifier (755333f)
  • support complex data structures in message metadata (33f9a82)
  • Support consumer tests with synchronous messages (d0bfb8a)
  • support env vars for filters (2649696)
  • support for mock servers from plugins (4f198f1)
  • support generating UUIDs with different formats #121 (e215180)
  • support graphql as a JSON content type (b0ac714)
  • support headers with multiple values (f0c0d07)
  • support matchers on plain text bodies #43 (0c5f718)
  • support message metadata in verifications (a835e68)
  • support mock servers provided from plugins (345b001)
  • support native TLS. Fixes #144 (df715cd)
  • support new selectors (b5a7b77)
  • support path, query and header matching in FFI (784a023)
  • Support plugins generating interaction content (1744ddc)
  • support provider branches (d171edf)
  • support specifying matching_branch in verifications. Fixes #158 (c45faa2)
  • support text/xml as an XML content type (dd2ffa7)
  • support validating datetimes with timezones (a6cbe4b)
  • support XML bodies in FFI interface (9a2049c)
  • update FFI to support provider states with parameters (136c61b)
  • update matcher defintions to include the semver matcher (682df9e)
  • update matcher defintions to support references (d323468)
  • update readme with plugin example (75dd211)
  • update readme with sync req/res message examples (be6c02b)
  • update readme with sync req/res message examples (e661031)
  • update tests and docs with message examples (1427aa3)
  • update tests and docs with sync req/res message examples (3b7aee5)
  • update the spec test cases after implementing XML matching MkII (daeaa0c)
  • updated integration JSON to handle array contains matcher (f090323)
  • Upgrade plugin driver to 0.2.2 (supports passing a test context to support generators) (5fbb0d6)
  • use a file system lock when merging pact files (61e16ed)
  • use the configured transport when provided (3a1449c)
  • V4: add an HTTP status code matcher (73a53b8)
  • V4: add an optional comments to the interaction (4264821)
  • V4: added a boolean matcher (6b2da7d)
  • V4: added a pending flag to V4 interactions (7e4caf8)
  • V4: added nontEmpty and semver matchers (474b803)
  • V4: added some tests for pending interactions (db6e8b2)
  • V4: added synchronous request/response message formats (a725ab1)
  • V4: display comments when verifying an interaction (04d810b)
  • V4: fixed test _ refactored types for match functions (ebb11df)
  • V4: Move message pact content matching rules from matchingRules.body to matchingRules.content (81de3d3)
  • V4: support pending interactions in the verifier (dde8a4f)
  • V4: Update matching code to use matchingRules.content for V4 messages (4fe65fb)
  • V4: Updated consumer DSL to set comments + mock server initial (80b7148)
  • WASM: add library version call and make methods camelCase (51c90ee)
  • when merging pact files, upcast to the higher spec version (118daa1)
  • wired the date-time expression parsers into the generators (0aa55cf)

Reverts

  • Revert "update changelog for release 0.3.13" (5f75239)
  • Revert "update changelog for release 0.3.6" (68ef5b4)
  • Revert "chore: disable Pact tests to resolve cyclic dependency issue" (86409c9)
  • Revert "update changelog for release 0.11.2" (9f7e22d)
  • Revert "update changelog for release 0.2.2" (cb0f7df)
  • Revert "update changelog for release 0.8.0-beta.2" (b701800)
  • Revert "update changelog for release 0.7.7" (809e22f)
  • Revert "chore: pin the pact_mock_server_cli dependencies" (4717797)
  • Revert "update changelog for release 0.7.5" (c958c24)
  • Revert "chore: make links in readme absolute URLs" (a9df519)
  • Revert "refactor: moved matching rules and generators to models crate (part 1)" (c3c22ea)
  • Revert "update changelog for release 0.0.4" (c392caa)
  • Revert "chore: remove unused imports" (6932c6d)
  • Revert "update changelog for release 0.10.8" (0812d57)
  • Revert "feat: support a dummy matcher" (066d7a9)
  • Revert "chore(pact_matching_ffi): Update CMake config to execute nightly cargo" (2d0edf2)
  • Revert "Revert "chore: bump version to 0.0.1"" (9eb107a)
  • Revert "Revert "bump version to 0.8.5"" (c9e0694)
  • Revert "bump version to 0.7.1" (ed16e2f)
  • Revert "fix: query and header paths should be escaped" (995139b)

BREAKING CHANGES

  • this affects any FFI users that are validating
    message metadata. As a new feature, we think it's best to make
    this change now before it's mainstream.
  • pact_mock_server_ffi: multipart does not support a user-defined boundary, so needed to extract
    the random boundary from the generated body. Therefore the need to introduce struct MultipartBody.