All notable changes and releases to this project will be documented here.
With thanks to all contributors!
- …your name here? :-)
Maintained by davesmith00000.
- Fix publishing of sbt plugin. (orium)
- Cross compile for Scala 2.13. (orium)
- Exit with error if any pact push operations fail (not API breaking, but potentially CI breaking) (dantb)
- Add pact metadata to generated contracts (Fixes #84) (davesmith00000)
- Support finalising a
ScalaPactForgerDSL (Fixes #134) (razerno)
- Refactored squashPactFiles method in SBT plugin (dantb)
- Added support for token based Pact Broker authentication (Fixes #140) (dantb)
- Added support for Http4s 0.20.0 (jacemale)
- Bugfix: Use correct
Headersapply function in
- Use recommended scalafix SBT JVM memory settings (davesmith00000)
- Added Http4s 0.20.0-M4 support (chrischivers)
- Fix handling of URL parameter lists in
- Added support for Circe 0.11 (mcarolan)
- Fix typo in
- Documentation corrections (ShahOdin)
- Remove milestone version from package name (randbw)
- Adds support for http basic authentication (Fixes #110) (jnatten)
- Adds support for tagging pacts while publishing and verifying (Fixes #107) (jnatten)
- Added Http4s 0.20 support (version 0.20.0-M4) (randbw)
- Fixed ScalaPactMatchingRuleArrayMinLength writing (Fixes #108) (Paulymorph)
- Fix spelling of ColourOutput object (randbw)
- Circe upgraded to 0.10.1 (dandxy89)
- Added ability publish verification results (Fixes #71) (garraspin)
- Added support for Circe 0.10 (dandxy89)
- Added missing HTTP methods (opbokel)
- Added ability to modify requests during Provider State setup (garraspin)
- Failed Pact Broker calls now fail spectacularly (rather than silently)
- Pact verifications that perform no tests exit with non-zero code
- Fixed find free port race condition (orium)
- Static dependencies converted to Typeclasses
- SBT 1.x support
- Verification test summary (dandxy89)
- Documentation corrections (pgordon9)
- Exclude logback.xml and log4j.properties from published jar (cjwebb)
- Documentation corrections (cjwebb)
- Bugfix: http client in 0-18 ignoring clientTimeout (gcvt)
- Update to stable Http4s 0.18 (benivf)
- BUGFIX: Http4s interface incompatibility issue corrected (afiore)
- Work to improve pact logging levels (phil-rice)
- SSL support added! (phil-rice)
- Http4s 0.18.0-M8 milestone release support added (benivf, afiore)
- Circe 0.9 support added
- BUGFIX: Nasty lingering argonaut hard dependency has been removed.
- BUGFIX: Pact publishing works again
- BUGFIX: Client timeout is supplied in seconds but is a duration after that.
- Added more compiler flags and wart remover
- Publisher will not publish files ending in tmp.json (protection for pactPush task)
- Verification failures now show the description for the interaction that failed
- Finding closest match now done by a points system
- Accepts basic auth for Pact Broker addresses (phil-rice)
- Output dir (target/pacts) is now configurable via SBT config and environment variable “pact.rootDir” (fergusstrange)
- Publish to multiple provider pact brokers
- [BREAKING] Matching logic completely rewritten (this could break existing tests in one or two cases, but once fixed they will be correct by the Pact Specification)
- [BREAKING] No more dependency conflicts
- No external lib dependancies in any of the core libraries.
- You must tell Scala-Pact which Http and JSON libraries to use (see setup guide).
- JSON support via either Argonaut 6.1, Argonaut 6.2, or Circe 0.8.0
- HTTP support via Http4s versions 0.15.0a, 0.16.2, 0.16.2a, or 0.17.0
- Example projects use a range of Scala and lib combinations to prove they work (to be expanded)
- [BREAKING] Renamed sbt plugin to sbt-scalapact
- Composable SBT Tasks (pactPack, packPush, pactStub, and pactCheck)
- Scala-Pact env config (e.g. port and local dir) is now defined in the build sbt file.
- Commands inherit and can override via the usual command line arguments.
- Scala-Pact can now be used reliably inside SBT to avoid constantly starting SBT from cold.
- Issues with matching rules and how they deal with deep or multiple layers of wildcards have been resolved.
- Regex matching of values no longer expects an exact match, instead expects to find at least one match.
Other improvements for contributors:
- Converted to multi-project build
- Many more modules, improved separation of concerns
- Extending support for alternate HTTP and JSON frameworks is now easy.
- Better build / test scripts include testing cross compilation
- Simpler project version management
- Release script improvements
- Convert SBT plugin to AutoPlugin (yasuba)
- Ability to set a client timeout on verification (itsDanOades)
- XML matching rules now work as expected
- Pact match failures against the stubber now return a 598 status, NOT a misleading 404.
- BUGFIX: Pact stubber now accepts chunked requests
- BUGFIX: Pact broker addresses can now include a port number
- BUGFIX: Bad test case fixed that would previously always succeed (yasuba)
- BUGFIX: Small issue that slipped through testing: In order for providerStates to work you had to declare a providerStateMatcher somewhere even if you already have a normal providerState setting. This has been resolved.
provider_stateon Pact file read to support old Pact formats (itsDanOades)
- Added new
providerStateMatcherpartial function as a slicker, more useful alternative to the old mechanism. (jtsmith0107)
- Scala 2.12 release
- Depends on http4s 0.15.0a which is bundled with argonaut 6.2-RC1 and scalaz 7.2.7
- Fixed intermittent bug that failed otherwise good tests
- Improved test speed
- Fixed issue where having a large number of pact tests in one suite caused a failure (with thanks to BenParker22)
- Increased performance / capacity of pact stubber
- Provider state failures now fail noisily
- runConsumerTest returns a result instead of Unit (agustafson)
- Full Pact Specification Version 2.0 Compliance
- Body matching rules
- Provider verification test framework
- Strict mode
- Reduced library dependencies
- Improved mock config object
- Handle lowercase method during verify (smithleej)
- Remove logging implementation dependencies (agustafson)
- Added example projects
- Scala-PactContractWriter creates directories ‘target’ and ‘pacts’ if they don’t exist (raoulk)
- Add preflight request operation (OPTIONS) (itsDanOades)
- Codified testing process in a shell script.
- Verifier does not post data if body is empty
- Added the ability to specify a pact version when verifying (itsDanOades)
- Initial public release following a number of in house only dev and milestone versions. (davesmith00000, Iulian-Antohe, smithleej, blake-boesinger)
The source code for this page can be found here.