Release 0.73.0

Date: 28th July 2023

What’s new:

  • Added support for additionalProperties having the value false
  • Fix for API coverage report not being accurate when test URL has multiple path parameters
  • Filter the specifications in specmatic.json and load only the OpenAPI specifications

Release 0.72.0

Date: 4th July 2023

What’s new:

  • Add branch support to git sources (thanks to @aeoncl)

Release 0.71.0

Date: 27th June 2023

What’s new:

  • Bug fix for fetching latest contracts

Release 0.70.1

Date: 20th June 2023

What’s new:

  • Miscellaneous stub improvements and bug fixes

Release 0.70.0

Date: 14th June 2023

What’s new:

  • Generative tests for header parameters

Release 0.69.0

Date: 14th June 2023

What’s new:

  • Added Date and UUID pattern support (thanks @androa)
  • adding ability to invoke a hook script before running contract test

Release 0.68.0

Date: 4th June 2023

What’s new:

  • Improvement to error messages for oneOf mismatches
  • Ability to omit headers using “(omit)” in examples
  • Ability to run the stub on a random free port if the default port 9000 is already in use
  • Fixed: transient stub initialisation with static stub data

Release 0.67.0

Date: 23rd May 2023

What’s new:

  • Bug fix: Specmatic stub restart when running tests in the same project
  • Bug fix: JSON values passed in the header will now get flattened into a single line

Release 0.66.0

Date: 19th May 2023

What’s new:

  • Added the ability to limit the number of contract tests being run by setting the environment variable or Java system property MAX_TEST_REQUEST_COMBINATIONS (thanks to @westse)
  • Fixed unecessary restarting of the specmatic stub when spematic tests are run parallelly from the same directory.

Release 0.65.1

Date: 25th April 2023

What’s new:

  • Added the ability to filter out tests by name (search the documentation for filterNotName)

Release 0.65.0

Date: 19th April 2023

What’s new:

  • Added the ability to match a string request body against a regex (search for bodyRegex in the documentation)
  • Added the ability to run a selected set of contract tests (search for filterName in documentation)

Release 0.64.0

Date: 29th March 2023

What’s new:

  • Reworked the test description to show the example name and key details about the API instead of the API summary or description
  • Deletion of some unnecessary code - thanks to @westse (Steve West)

Release 0.63.3

Date: 18th March 2023

What’s new:

  • Improvement to backward compatibility message

Release 0.63.2

Date: 18th March 2023

What’s new:

  • Improvement to coverage report
  • Reduce noise in logs - thanks to @westse (Steve West)

Release 0.63.1

Date: 16th March 2023

What’s new:

  • Improvements to how trailing slash in a contract is handled

Release 0.63.0

Date: 14th March 2023

What’s new:

  • API coverage report can check actuator for APIs exposed by the application, to figure out which of them are not covered by contract tests
  • Paths in a Specmatic Gherkin file wrapping an OpenAPI specification will match the specification paths even when there are constraints

Release 0.62.0

Date: 10th March 2023

What’s new:

  • Allow contract-invalid examples of 400 in the contract
  • Examples can now be marked WIP (by adding [WIP] at the start of the example name), and WIP example tests will not return 1 at the command prompt, nor fail a build
  • Added stats showing how many tests are for each API in the contracts used for contract testing
  • Eliminated stackoverflow error when a cycle exists in the contract - thanks to @westse (Steve West)
  • Added support for discriminator - thanks to @westse (Steve West)
  • Added support for Dictionary with allOf, oneOf - thanks to @westse (Steve West)

Release 0.61.0

Date: 14th Feb 2023

What’s new:

  • Fixed a in proxy mode when proxying to URLs with a domain name
  • Added support for transient mocks

Release 0.60.0

Date: 10th Feb 2023

What’s new:

  • Added support for oneOf — thanks to @westse (Steve West)
  • Added support for path params as enum — thanks to @westse (Steve West)
  • Added support for array of enum in query params — thanks to @westse (Steve West)
  • Fixed indirect circular component ref bug — thanks to @westse (Steve West)
  • Fixed bug in DateTimePattern — thanks to @androa (André Roaldseth)
  • Convert header keys to lower case while loading stub data
  • Improved stub creation Java helpers

Release 0.59.0

Date: 29th Dec 2022

What’s new:

  • Support for matching of multipart binary content

Release 0.58.0

Date: 21st Nov 2022

What’s new:

  • Updated support for omitting queries from contract test examples
  • Improved logging of parser error messages

Release 0.57.0

Date: 18th Nov 2022

What’s new:

  • Added support for arrays in query params and headers
  • Added support for omitting query params in contract test examples
  • Proxy generates stub files in _data directory

Release 0.56.0

Date: 11th Nov 2022

What’s new:

  • Added support for query param array types
  • Fixed bug with loading contracts having an example that has no value

Release 0.55.0

Date: 4th Nov 2022

What’s new:

  • Added support for inline dictionaries

Release 0.54.0

Date: 11th Oct 2022

What’s new:

  • Bug fixes

Release 0.52.0

Date: 11th Oct 2022

What’s new:

  • Bug fixes

Release 0.51.0

Date: 11th Sep 2022

What’s new:

  • Security schemas in contract tests now read from examples
  • Added support for nillable nodes in WSDL

Release 0.50.0

What’s new:

  • Added first-class support for security schemas
  • Fixed bug causing generation of too many contract tests

Release 0.49.0

Date: 8th Sep 2022

What’s new:

  • Improvements to example and error handling when loading an OpenAPI contract

Release 0.48.0

Date: 5th Sep 2022

What’s new:

  • Improvements to negative testing
  • Library upgrades of swagger-parser and ktor to latest
  • Added support for default responses
  • Fixed loading of remote refs
  • Fix to sse support
  • Improvement to reading stub with syntax issues
  • Fix to the backward compatibility check

Release 0.47.0

Date: 16th Aug 2022

What’s new:

  • Added redeclared command
  • Added support for negative testing
  • Added tests for the bundle command
  • Upgraded to tor 2.0
  • Made header matching case-insensitive

Release 0.46.0

Date: 2nd July 2022

What’s new:

  • Added junit xml report generation for backward compatibility tests

Release 0.45.0

Date: 18th June 2022

What’s new:

  • Minor improvements

Release 0.44.0

Date: 8th May 2022

What’s new:

  • Support for WIP tag in OpenAPI
  • Improvements to error messages

Release 0.43.0

Date: 2nd May 2022

What’s new:

  • Contract test request payload can be specified in it’s entirety instead of breaking it up into it’s params
  • Improvements to loading externalized xsd from within WSDL
  • Shallow clone when loading contracts
  • Bug fixes to handling of azure auth using a personal access token
  • Improved backward compatibility messages
  • Other improved error messages

Release 0.42.0

Date: 4th April 2022

What’s new:

  • Fleshed out ability to run contract tests from a self-contained OpenAPI contract containing examples
  • Improvements and bug-fixes to the use of personal access token for azure authentication

Release 0.41.0

Date: 22nd March 2022

What’s new:

  • Improvements to stub error messages
  • Improvement to bundle command, allows stubs to be loaded from alternate base within the same remote repo

Release 0.40.0

Date: 9th March 2022

What’s new:

  • Improvements to error messages
  • Ability to specify the git command path using an environment variable

Release 0.39.1

Date: 2nd March 2022

What’s new:

  • Improvement to error message when the request in a stub does not match it’s contract

Release 0.39.0

Date: 27th Feb 2022

What’s new:

  • Added support for query and header API keys
  • Added support for multipart/form-data
  • Added first version of implementation of dependency graph
  • Improved error messages
  • Improved names of OpenAPI operations in contract tests

Release 0.38.0

Date: 30th Jan 2022

What’s new:

  • Support for XML in OpenAPI
  • Support for externalising type definitions
  • Improvements to logging

Release 0.37.0

Date: 28th Dec 2021

What’s new:

  • Bug fixes

Release 0.36.1

Date: 28th Dec 2021

What’s new:

  • Bug fixes

Release 0.35.0

Date: 20th Dec 2021

What’s new:

  • Support for simpleType in WSDLs
  • Bug fixes

Release 0.34.1

Date: 8th Dec 2021

What’s new:

  • Samples command supports yaml
  • Improvements to contract testing
  • Improved error messages
  • Bug fixes

Release 0.34.0

Date: 13th Nov 2021

What’s new:

  • Lots of conversion-related bug fixes
  • Improvements to logging
  • Fixed contract test names in legacy junit output

Release 0.33.1

What’s new:

  • Hooks implementation, and the stub_load_contract hook

Release 0.31.1

Date: 27th Oct 2021

What’s new:

  • Bug fixes

Release 0.31.0

Date: 14th Oct 2021

What’s new:

  • CORS support now accepts all headers

Release 0.30.1

Date: 27th Sep 2021

What’s new:

  • Ability to execute tests with a base url
  • Ability to export test bundle using the bundle command and execute it using the test command
  • Ability to get stub response from an external script
  • Other bug fixes

Release 0.29.2

Date: 8th Sep 2021

What’s new:

  • Bug fix to WSDL support

Release 0.29.1

Date: 18th Aug 2021

What’s new:

  • Bug fix: specmatic’s backward compatibility check would hang when testing contract files larger than 64k

Release 0.29.0

Date: 6th Aug 2021

What’s new:

  • Added support for x-www-form-urlencoded parameters in OpenAPI. This includes support for specifying json as the format of the contents of such a parameter.

Release 0.28.6

Date: 8th July 2021

What’s new:

  • Fixed: JSON in string matching in form field values was broken

Release 0.28.5

Date: 5th July 2021

What’s new:

  • Fixed: Test mode would accept a custom configuration file in the –config parameter, but would ignore it and look for specmatic.json

Release 0.28.4

Date: 4th July 2021

What’s new:

  • Bug fixes

Release 0.28.3

Date: 30th June 2021

What’s new:

  • Fixed support for null open api schema properties

Release 0.28.2

Date: 30th June 2021

What’s new:

  • Stub and Test commands now accept yaml files without requiring a gherkin wrapper
  • Fixed edge case in which when a contract referred to a contract which referred to a third contract (two levels of depth), the third contracts values were not cached

Release 0.28.0

Date: 15th June 2021

What’s new:

  • Improved enum support, added support for enum in gherkin syntax

Release 0.27.1

Date: 14th June 2021

What’s new:

  • Fixed edge case in XML backward compatibility
  • Added enum support in OpenAPI

Release 0.27.0

Date: 10th June 2021

What’s new:

  • Added support for OpenAPI
  • Contracts referred to for generating values now get run only once across all contracts in specmatic.json, so for example if several contracts refer to auth.spec, it will execute auth.spec just once.

Release 0.26.3

Date: 9th June 2021

What’s new:

  • Added the ability to specify the specmatic.json configuration file path

Release 0.26.2

Date: 30th May 2021

What’s new:

  • Added handling for imported WSDL and schema files

Release 0.26.1

Date: 6th May 2021

What’s new:

  • Improved error message for xml mismatch

Release 0.26.0

Date: 29th April 2021

What’s new:

  • Fix to contract tests when specying a file name in request-part, in which the specified file name is resolved relative to the contract file in which it was specified.

Release 0.25.5

Date: 29th April 2021

What’s new:

  • Stability improvements to backward compatibility check
  • Improvements to XML/SOAP error messages

Release 0.25.2

Date: 23rd April 2021

What’s new:

  • Bug fix: Under some cirucmstances, the contract file path was being dropped

Release 0.25.1

Date: 19th April 2021

What’s new:

  • Bug fix: The test command now exits with 0, as it should, when WIP scenarios fail

Release 0.25.0

Date: 16th April 2021

What’s new:

  • Huge speed up of backward compatibility test

Release 0.24.2

Date: 15th March 2021

What new:

  • Bug fixes and improvements to WSDL support

Release 0.24.1

Date: 17th March 2021

What new:

  • Renamed Qontract to Specmatic
  • Implemented a new variable and environment feature that makes it possible to wire up contracts to authentication APIs

Release 0.23.1

Date: 10th March 2021

What new:

  • Ability to convert WSDL files into Qontract files

Release 0.22.1

Date: 8th February 2021

What new:

  • Improvements to type generation of reponse when generating Gherkin out of a json stub file

Release 0.22.0

Date: 3rd February 2021

What’s new:

  • Bug fix for building the Specmatic bundle in a mono repo

Release 0.21.2

Date: 7th January 2021

What’s new:

  • Minor bug fix

Release 0.21.1

Date: 16th December 2020

What’s new:

Release 0.21.0

Date: 15th December 2020

What’s new:

Release 0.20.1

Date: 21st October 2020

What’s new:

  • Added the ability to stub out a delayed response to a request

Release 0.19.1

Date: 21st October 2020

What’s new:

  • Improvements to xml type matching

Release 0.18.1

Date: 1st October 2020

What’s new:

  • Minor improvements and fixes

Release 0.18.0

Date: 17th September 2020

What’s new:

  • Improvements to the test command
  • Improvements to stub command
  • Improvements to some error message
  • Improvements to contract generation

Release 0.17.1

Date: 12th September 2020

What’s new:

  • Bug fix to Proxy mode

Release 0.17.0

Date: 9th September 2020

What’s new:

  • qontract.json is now supported in test mode
  • new qontract bundle command for use in CI
  • support for recursive type definitions

Release 0.16.0

Date: 2nd September 2020

What’s new:

  • updated qontract.json format
  • better error messages

Release 0.15.0

Date: 12th August 2020

What’s new:

  • Improvements to the proxy command

Release 0.14.2

Date: 8th August 2020

What’s new:

  • Renamed backwardCompatible to compatible, and improved it for use in CI

Release 0.14.1

Date: 2nd August 2020

What’s new:

  • Minor enhancements for XML support

Release 0.14.0

Date: 31st July 2020

What’s new:

  • Improved CI support (new push command for pushing contract changes, new subscribe command to have the ci pipeline run when changes occur)
  • Bug fixes

Release 0.13.1

Date: 9th July 2020

What’s new:

  • Fixes for optional value matching in json objects

Release 0.13.0

Date: 8th July 2020

What’s new:

  • Experimental support for recording contracts and stubs in proxy mode
  • Rewritten support for XML
  • Improved support for CI

Standalone jar - qontract.jar

Release 0.12.2

Date: 30th June 2020

What’s new:

  • Improved support for CI

Standalone jar - qontract.jar

Release 0.12.1

Date: 25th June 2020

What’s new:

  • Unexpected JSON keys in the response are not accepted now in test mode, unless the type defines a … key with no value, which is an explicit declaration that unexpected keys must be accepted and ignored
  • Files in stub directories that are not loaded are logged to the console
  • Improved error messages

Standalone jar - qontract.jar

Release 0.12.0

Date: 23rd June 2020

What’s new:

  • Improved error message in several areas
  • Added basic instrumentation for when Specmatic runs as a server for service virtualisation in a test environment

Standalone jar - qontract.jar

Release 0.11.1

Date: 16th June 2020

What’s new:

  • Added nicer error messages for multipart mismatch errors
  • Added strict flag for stub mode, with which the stub will respond with the concerned mismatch errors in case the stub doesn’t match any input, instead of returning random values

Standalone jar - qontract.jar

Release 0.11.0

Date: 12th June 2020

What’s new:

  • Big improvements to Postman import
  • Added back the backward compatibility test command

Standalone jar - qontract.jar

Release 0.10.0

Date: 1st June 2020

What’s new:

  • Convert stub files into Specmatic files
  • Convert Postman collections into Specmatic files
  • Improved support for CORS

Standalone jar - qontract.jar

Release 0.9.0

Date: 25th May 2020

What’s new:

  • Helper methods for invoking Kafka from Karate
  • Dynamic stub over an HTTP API after Specmatic has been started
  • Stub reloads when contract files or stub files are updated
  • Suggestions can be passed as a commandline argument
  • Improvements to XML support

Standalone jar - qontract.jar

Release 0.8.0

Date: 19th May 2020

What’s new:

  • Support for message in Kafka
  • Faster comparison of contracts

Standalone jar - qontract.jar

Release 0.7.0

Date: 10th May 2020

What’s new:

  • Test mode can now hit an https end point
  • Added preliminary support for multipart form data
  • Added the version checkGitFile command to test whether the latest file checked out is compatible with the file at the same path in the last commit.

Standalone jar - qontract.jar

Release 0.6.1

Date: 5th May 2020

What’s new:

  • Specmatic can suggest the version number of a contract using the new command version
  • Specmatic stub now logs requests and responses

Standalone jar - qontract.jar

Release 0.6.0

Date: 4th May 2020

What’s new:

  • Headers can be marked optional
  • Stub data for multiple contracts can be loaded from a single directory.
  • Sub types can now be stubbed out. E.g. if the contract says (string?), (string) and (null) can both be used in the stub data instead of literal values.
  • Improved support for nullable keys and values in stub data
  • A java helper method for setting up stubs with data
  • A java helper to pick up a contract by specifying the major and minor version

Standalone jar - qontract.jar

Release 0.5.0

Date: 27th April 2020

Notes:

  • Added versioning flows
  • Stubs can now contain a type in the expectation instead of only hardcoded values, which will match any incoming input of that type.
  • Multiple contracts can now be loaded into a single process.

Standalone jar - qontract.jar

Release 0.4.0

Date: 19th April 2020

Notes:

  • Introduced pattern in string, e.g. (number in string) will match “10” but not “hello”
  • Contract in stub mode watches the contract file for changes
  • Improved error messages
  • Updated to Kotlin 1.3.72
  • Upgrade kotlinx.serialization to 0.20.0
  • Bug fixes
  • Under the hood improvements

Standalone jar - qontract.jar

Release 0.3.1

Date: 11th April 2020

Notes:

  • Improved commandline output of compare and test commands
  • Fixed a few bugs

Standalone jar - qontract-0.3.0-all.jar

Release 0.3.0

Date: 11th April 2020

Notes:

  • Improved error messages
  • Added support for (datetime), (url) and (url https)
  • Added the compare command to the executable. It compares two contracts, and reports on whether they are compatible, or whether one is backward compatible with the other

Standalone jar - qontract-0.3.0-all.jar

Release 0.2.0

Date: 5th April 2020

Notes:

  • Added support for nulls
  • Improved test and stub commands, now there’s no need to specify run and start respectively at the end

Standalone jar - qontract-0.2.0-all.jar

Release 0.1

Date: 27th March 2020

Notes:

  • adding JUnit 5 support as library
  • adding form field support
  • bug fixes

Standalone jar - qontract-0.1.0-all.jar

Release 0.1.0

Date: 19th March 2020

Notes: Trial release to MavenCentral

DEPRECATED

Features:

  • Programmatic support for Contract as Mock and Contract as Test
  • Commandline support for Contract Stub, Contract as Test

Standalone jar - qontract-0.0.1-all.jar