Skip to content

Latest commit

 

History

History
66 lines (45 loc) · 2.42 KB

CONTRIBUTING.md

File metadata and controls

66 lines (45 loc) · 2.42 KB

Contributing to Pact go

Raising defects

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.

  1. The relevant versions of the packages you are using.
  2. The steps to recreate your issue.
  3. 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

New features / changes

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Commit messages

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.

Developing

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.

Vendoring

We use Govend to vendor packages. Please ensure any new packages are added to vendor.yml prior to patching.

Integration Tests

Before releasing a new version, in addition to the standard (isolated) tests we smoke test the key features against a running Daemon and Broker.

Run make pact to start the daemon and run integration tests.