Roadmap

    That being said, although each language will move at a different pace, as a community we are moving in the same direction.

    Aggregated development board

    Dashboard:

    Pact is comprised of many projects in different languages. Visualising all of
    the parallel development and the roadmap is challenging.

    To ease this, we are experimenting with an aggregated dashboard that brings
    together multiple projects into a single view.

    The Pact Specification outlines the features each major version of a release should contain for interoperability between languages. The most current approved version is v3.

    Reference Library [Status: Alpha]

    One of the key advantages of Pact is that its DSL is native to each language, resulting in seamless toolchain integration. This is also its biggest challenge - with any change to the specification, each language has to implement the complex matching and verification logic for the Consumer and Provider DSLs.

    The Pact Community has come together to solve this problem. Our plan is to create a native, in Rust with a well-defined native interface that each language can pull in to perform common functions such as:

    • Running a Mock Service
    • Performing matching logic
    • Verifying Pacts

    This project is well underway with proof-of-concepts in JS and Golang, v3 matching and consumer lib complete.

    We’ve had a large amount of interest from the community in a Python version of Pact,
    and it now has its beginnings at the Pact Python GitHub repository.

    Two contributors - Matthew Belvanz and Jose Salvatierra - will be leading this initiative.

    Our current plan to a release looks as follows:

    • Review DSL for compatibility / consistency with other official implementations
    • Remove the requirement for Docker, pulling in the Mock Server and Verifier Ruby libraries instead (as per JS/Golang implementations) until such time as the native library becomes viable
    • Release v1.0.0 ?

    Node/JS [Status: v2]