Before raising an issue, make sure you have checked the open and closed issues to see if an answer is provided there. There may also be an answer to your question on stackoverflow.
Please provide the following information with your issue to enable us to respond as quickly as possible.
- The relevant versions of the packages you are using.
- The steps to recreate your issue.
- An executable code example where possible. You can fork this repository and modify the e2e examples to quickly recreate your issue.
You can run the E2E tests by:
make package # Assemble the latest Pact Go from Ruby and compile Go
make pact # Run the Pact tests - consumer + provider
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
Pact Go uses the Conventional Changelog message conventions. Please ensure you follow the guidelines.
If you'd like to get some CLI assistance, getting setup is easy:
npm install commitizen -g
npm i -g cz-conventional-changelog
git cz
to commit and commitizen will guide you.
For full integration testing locally, Ruby 2.2.0 must be installed. Under the hood, Pact Go bundles the Pact Mock Service and Pact Provider Verifier projects to implement up to v2.0 of the Pact Specification. This is only temporary, until Pact Reference work is completed.
- Git clone https://github.com/pact-foundation/pact-go.git
- Run
make dev
to build the package and setup the Ruby 'binaries' locally
We use dep to vendor packages. Please ensure
any new packages that need to have a specific version locked are added to Gopkg.toml
.
Before releasing a new version, in addition to the standard (isolated) tests we smoke test the key features against the latest code and Broker.
Run make pact
to run the integration tests.