pact-foundation / pact_broker

Enables your consumer driven contracts workflow
http://pactflow.io
MIT License
702 stars 174 forks source link

Recommended vs default selectors #705

Open mefellows opened 1 month ago

mefellows commented 1 month ago

The current default selectors of the broker seem to be:

  1. latest version on the main branch
  2. all versions that have been deployed
  3. all versions that are currently marked as released.

However, the current recommended selectors are

These are the recommended selectors that will cover the majority of workflows.

- `{ "mainBranch": true }` - the latest version from the main branch of each consumer, as specified by the consumer's `mainBranch` property.
- `{ "branch": "<branch>" }` - the latest version from a particular branch of each consumer.
- `{ "deployedOrReleased": true }` - all the currently deployed and currently released and supported versions of each consumer.
- `{ "matchingBranch": true }` - the latest version from any branch of the consumer that has the same name as the current branch of the provider. Used for coordinated development between consumer and provider teams using matching feature branch names.

The lack of branch in the default makes sense (needs the branch to be supplied) but matchingBranch seems like it could be inferred if the provider specifies it.

It would make sense for the recommended selectors to be the default, so most users can point at the broker and have a functional workflow without additional work. This would also simplify the docs.

github-actions[bot] commented 1 month ago

🤖 Great news! We've labeled this issue as smartbear-supported and created a tracking ticket in PactFlow's Jira (PACT-2230). We'll keep work public and post updates here. Meanwhile, feel free to check out our docs. Thanks for your patience!

YOU54F commented 1 month ago

Some thoughts around this were penned by Beth in this discussion

https://github.com/pact-foundation/pact_broker/discussions/391