GitHub
08/29/2025, 3:21 AMPaul
09/12/2025, 5:17 AMElson Ho
09/18/2025, 10:08 AMpactUrls so you can verify directly from a URL. What will be the equivalent in Pact Python?
Any pointers or examples would be appreciated, Thank you.
Workshop step: https://docs.pactflow.io/docs/workshops/ci-cd/workshop/implementing-the-provider-changes
Workshop repo reference: https://github.com/pactflow/example-provider/blob/master/src/product/product.consumerChange.pact.test.js#L32
Pact JS core repo reference: https://github.com/pact-foundation/pact-js-core/blob/master/src/verifier/types.ts#L31GitHub
10/06/2025, 1:54 AMPact instances default to version 4 of the Pact specification (previously used version 3). This should be mostly backwards compatible, but can be reverted by using• Populate broker source from env ### 🚜 Refactor • (ci) If statement ### 🎨 Styling • (tests) Add sections ### 📚 Documentation • Update changelog for pact-python/3.0.0a1 • Add mascot • Give mascot outline • Set mascot width and height • (examples) Add requests and fastapi • Generate llms.txt • Update mkdocs material features • Fix CI badge links • Update matcher docs • Improve matchers • Improve generators • Update for v3 and add migration guide ### ⚙️ Miscellaneous Tasks • (ci) Remove spelling check • (examples) Minor improvements • Store hatch venv in .venv • Update mismatch repr • Save mismatches before exiting the server • (examples) Remove old http example • Fix sub-project git cliff config • Hide import from traceback • Fix flask integer coercion • Add v3 matching rules test • Add v4 matching rules tests • (ci) Add publish as completion dependency • (tests) Add generators to interaction defn • (tests) Test v3 generators • (test) Add v4 generators tests • Re-add pytest rerunfailrure • (tests) Add v3 http generators • Prefer prek over pre-commit • Disable reruns in vscode • (ci) Fix prek caching • (ci) Generate junit xml files • Move mascot file out of root • Update uuid format names • Fix import warning • Make Unset falsey • [breaking] Rename abstract matcher class.with_specification("V3")
The abstract• [breaking] Rename abstract generatorclass has been renamed topact.match.Matcher.pact.match.AbstractMatcher
The abstract• Clarify explanation of given • [breaking] Drop python 3.9 add 3.14class has been renamed topact.generate.Generator.pact.generate.AbstractGenerator
Python 3.9 is no longer supported.• (ci) Disable 3.14 tests using pydantic ### Contributors • @JP-Ellis ## Pull Requests ## What's Changed • docs: update ffi changelog by @JP-Ellis in #1212 • chore(deps): update ruff to v0.12.11 by @renovate[bot] in #1214 • chore(deps): update pre-commit hook crate-ci/typos to v1.35.6 by @renovate[bot] in #1213 • chore(ci): add publish as completion dependency by @JP-Ellis in #1215 • chore(tests): add generators to interaction defn by @JP-Ellis in #1217 • chore: re-add pytest rerunfailrure by @JP-Ellis in #1219 • chore(deps): update astral-sh/setup-uv action to v6.6.1 by @renovate[bot] in #1218 • chore(deps): update pre-commit hook crate-ci/typos to v1.36.1 by @renovate[bot] in #1216 • chore(tests): add v3 http generators by @JP-Ellis in #1221 • chore(deps): update codecov/codecov-action action to v5.5.1 by @renovate[bot] in #1223 • chore(deps): update ruff to v0.12.12 by @renovate[bot] in #1224 • chore(deps): update pre-commit hook crate-ci/typos to v1.36.2 by @renovate[bot] in #1225 • chore(deps): update pypa/gh-action-pypi-publish action to v1.13.0 by @renovate[bot] in #1220 • chore(deps): update pre-commit hook biomejs/pre-commit to v2.2.3 by @renovate[bot] in #1226 • chore(deps): update softprops/action-gh-release action to v2.3.3 by @renovate[bot] in #1227 • chore(deps): update taiki-e/install-action action to v2.59.1 by @renovate[bot] in #1228 • chore(deps): update dependency cffi to v2 by @renovate[bot] in #1229 • chore(deps): update dependency pytest-cov to v7 by @renovate[bot] in #1230 • chore: prefer prek over pre-commit by @JP-Ellis in #1232 • chore: disable reruns in vscode by @JP-Ellis in #1233 • chore(deps): update ruff to v0.13.0 by @renovate[bot] in #1231 • chore(deps): update pre-commit hook biomejs/pre-commit to v2.2.4 by @renovate[bot] in #1234 • chore(deps): update dependency mypy to v1.18.1 by @renovate[bot] in #1235 • chore(deps): update astral-sh/setup-uv action to v6.7.0 by @renovate[bot] in #1236 • chore(deps): update taiki-e/install-action action to v2.61.3 by @renovate[bot] in #1237 • docs: generate llms.txt by @JP-Ellis in #1244 • docs: update mkdocs material features by @JP-Ellis in #1243 • chore(cli): use new standalone repo path by @JP-Ellis in #1241 • chore(deps): update dependency mypy to v1.18.2 by @renovate[bot] in #1239 • chore(deps): update taiki-e/install-action action to v2.62.5 by @renovate[bot] in #1240 • chore(deps): update ruff to v0.13.1 by @renovate[bot] in #1238 • chore(deps): update pypa/cibuildwheel action to v3.2.0 by @renovate[bot] in #1242 • chore(ci): fix prek caching by @JP-Ellis in #1246 • chore(ci): generate junit xml files by @JP-Ellis in #1247 • chore(deps): update actions/cache action to v4.3.0 by @renovate[bot] in #1245 • chore(deps): update pre-commit hook crate-ci/typos to v1.36.3 by @renovate[bot] … pact-foundation/pact-python
GitHub
10/06/2025, 6:25 AMGitHub
10/06/2025, 6:27 AMGitHub
10/07/2025, 5:32 AMInstalling Pact Python with v2 compatibility requires### 📚 Documentation • Update changelogs ### ⚙️ Miscellaneous Tasks • (ci) Add area-core label • (ci) Fix labels workflow permissions • Remove no longer relevant todo • (docs) Use normalized project url keys ### Contributors • @JP-Ellis ## Pull Requests ## What's Changed • docs: update ffi changelog by @JP-Ellis in #1273 • chore(ci): add area-core label by @JP-Ellis in #1276 • chore(ci): fix labels workflow permissions by @JP-Ellis in #1277 • chore(deps): update pre-commit hook crate-ci/typos to v1.38.0 by @renovate[bot] in #1278 • chore: remove no longer relevant todo by @JP-Ellis in #1281 • chore(docs): use normalized project url keys by @JP-Ellis in #1282 • fix!: replace v2 extra with compat-v2 by @JP-Ellis in #1280 • chore(deps): update softprops/action-gh-release action to v2.4.0 by @renovate[bot] in #1279 Full Changelog: pact-python/3.0.1...pact-python/3.1.0 pact-foundation/pact-python, and the oldpip install 'pact-python[compat-v2]'is no longer supported.pip install 'pact-python[v2]'
David Mason
10/09/2025, 8:22 AMpact.v3 to just pact we are starting to see can-i-merge failures saying that there are no versions of any of our pacts.
We're using pactflow, but looking at the ui of pactflow shows everything is greena nd OK, can-i-merge success.
So I suspect this is either a pact-python issue, or a skill issue.
The only thing is we've not changed anything other than s/pact.v3/pact/ and have been running pact v3 for months without this problem...
I'm going to try blindly re-running the tests first, maybe overnight the issue has fixed itself!Kieran McCarthy
10/11/2025, 10:49 AMKevin Chang
10/18/2025, 4:27 PMPatrick
11/11/2025, 9:24 AMAntonio Blandón Torres
11/20/2025, 8:06 PMconsumer_versions. I'm trying to migrate from 2.0.0 to 3.1.0 but I haven't been able to reach it.Antonio Blandón Torres
11/24/2025, 5:39 PMpact: Pact = Consumer(
name=self.consumer_name,
version=self.pact_version_manager.get_publish_version(),
branch=self.pact_version_manager.get_branch_version(),
tags=self.tags,
).has_pact_with(
Provider(self.provider_name),
publish_to_broker=True,
broker_base_url=self.pact_settings.get_host(),
broker_username=self.pact_settings.get_username(),
broker_password=self.pact_settings.get_password(),
pact_dir="./pacts",
)
Thanks in advance.GitHub
12/02/2025, 11:51 PMMartin Konir
12/03/2025, 2:22 PMpact-python-cli library in a Docker image based on Alpine Linux (specifically, I’m using python:3.13-alpine3.22).
When I try to run pact-broker command in such container, I get the following error:
/app # pact-broker
/usr/local/lib/python3.13/site-packages/pact_cli/lib/ruby/bin/ruby: exec: line 6: /usr/local/lib/python3.13/site-packages/pact_cli/lib/ruby/bin.real/ruby: not found
My understanding is that the pact-python-cli package contains Ruby binaries compiled for glibc but also provides musl-compatible binaries - I found a musllinux wheel on PyPI. From the source distributions (image below), it seems like it should work on Alpine
Has anyone successfully run pact-python-cli on Alpine? Any tips or workarounds would be appreciated.Joshua Ellis
12/04/2025, 11:51 PMKevin Chang
12/05/2025, 4:50 PMgenerate.provider_state("${akey}") in the consumer side test, how do I specify what ${akey} is on the provider/verifier side?Patrick
12/09/2025, 7:25 AMGitHub
12/10/2025, 8:02 AM• (ffi) Upgrade lib to 0.4.28 ### 🐛 Bug Fixes • Allow none in with_metadata • (ffi) Make version dynamic ### 📚 Documentation • Update changelog for pact-python-ffi/0.4.22.0 • (ffi) Fix old references to pact.v3.ffi • V3 review • Update git cliff configuration • Update changelog for pact-python-ffi/0.4.28.0 • Update changelog for pact-python-ffi/0.4.28.1 • Fix CI badge links • Update changelogs ### ⚙️ Miscellaneous Tasks • (ffi) Cleanup build script • Ignore extensions • Split out dependencies and tests • Support pre and post release tags • Remove reference count checks • Store hatch venv in .venv • Fix sub-project git cliff config • (ffi) Clean up data directory • [breaking] Drop python 3.9 add 3.14is removed, and to be replaced bypact.v3.ffi. That is,pact_ffishould be replaced bypact.v3.ffi.$fn.pact_ffi.$fn
Python 3.9 is no longer supported.• Update non-compliant docstrings and types • Upgrade pymdownx extensions • Fix json schema url • Remove ruff sub-configs • Switch to versioningit ### Contributors • @JP-Ellis ## Pull Requests ## What's Changed • docs: update changelog by @JP-Ellis in #1377 • chore(deps): update python docker tag to v3.14 by @renovate[bot] in #1375 • chore(deps): update python:3.14-slim docker digest to 4451352 by @renovate[bot] in #1378 • chore(deps): update python:3.14-slim docker digest to b823ded by @renovate[bot] in #1379 • docs: fix internal references by @JP-Ellis in #1381 • chore(ci): use strict docs building by @JP-Ellis in #1382 • docs: add v3 blog post by @JP-Ellis in #1380 • docs: fix partial url highlight by @JP-Ellis in #1383 • chore(deps): update ruff to v0.14.8 by @renovate[bot] in #1384 • docs: remove redundant header from blog post by @JP-Ellis in #1385 • chore(deps): update peter-evans/create-pull-request action to v7.0.11 by @renovate[bot] in #1386 • chore(deps): update pre-commit hook davidanson/markdownlint-cli2 to v0.20.0 by @renovate[bot] in #1387 • chore(deps): update astral-sh/setup-uv action to v7.1.5 by @renovate[bot] in #1388 • chore(deps): update taiki-e/install-action action to v2.62.63 by @renovate[bot] in #1389 • chore(deps): update python:3.14-slim docker digest to fd2aff3 by @renovate[bot] in #1390 • feat(cli): update to 2.5 by @JP-Ellis in #1394 • fix(cli)!: remove 32-bit wheels by @JP-Ellis in #1398 • chore(deps): update codecov/codecov-action action to v5.5.2 by @renovate[bot] in #1392 • chore(deps): update peter-evans/create-pull-request action to v8 by @renovate[bot] in #1393 • chore: switch to versioningit by @JP-Ellis in #1397 Full Changelog: pact-python/3.2.0...pact-python-cli/2.5.7.0 pact-foundation/pact-python
GitHub
12/10/2025, 8:12 AMBenjamin Aduo
03/20/2026, 9:50 AMNorbert Gulácsi
03/25/2026, 12:17 PMGitHub
04/16/2026, 11:07 PMGitHub
04/17/2026, 5:48 AMcreate_mock_server (use create_mock_server_for_transport instead)
• create_mock_server_for_pact (use create_mock_server_for_pact_and_transport instead)
• verify
• verifier_cli_args
• Added:
• verifier_set_follow_redirects
• using_plugin_with_delay
• Allow iteration over all interactions
• Implement the Pact class
• Add handle to pointer conversion
• Add casting interaction to subtypes
• Add iterator over all interactions
🐛 Bug Fixes
• Incorrect sync http deletion
📚 Documentation
• Update changelogs
⚙️ Miscellaneous Tasks
• Update non-compliant docstrings and types
• Upgrade pymdownx extensions
• Fix json schema url
• Remove ruff sub-configs
• Switch to versioningit
• Ensure pact interactions get deleted
• Add ruff ignores for tests
• Refactor ffi tests
• Remove versioningit, switch to static version in pyproject.toml
• Minor update to cliff config
• Replace taplo with tombi
Contributors
• @JP-Ellis
• @Nikhil172913832
pact-foundation/pact-pythonGitHub
04/17/2026, 6:04 AMpact.xml module provides builder functions for constructing XML request and response bodies with embedded Pact matchers. Use xml.element() to describe the XML structure and attach matchers where needed, then wrap the result with xml.body() before passing it to `with_body(..., content_type="application/xml")`:
from pact import match, xml
response = xml.body(
xml.element(
"user",
xml.element("id", match.int(123)),
xml.element("name", match.str("Alice")),
)
)
interaction.with_body(response, content_type="application/xml")
Repeating elements are supported via .each(min=1, examples=2) on any XmlElement. Attributes (including namespace declarations) can be passed via the attrs keyword argument.
• Allow iteration over all interactions
• Use common PactInteraction type
• Can toggle follow redirects
• Allow plugin loading delay
📚 Documentation
• Update changelog for pact-python/3.2.1
• (examples) Add http+xml example
• Update xml example to use new matcher
• (examples) Add service consumer/provider HTTP example
⚙️ Miscellaneous Tasks
• (ci) Re-enable 3.14 tests
• Upgrade stable python version
• Add .worktrees to .gitignore
• (ci) Reduce ci usage
• (ci) Downgrade stable python version
• (ci) Remove unused workflows
• Remove versioningit, switch to static version in pyproject.toml
• Add release script
• Minor update to cliff config
• Authenticate gh api calls
• Remove release label
• Replace taplo with tombi
• (ci) Have wheel target 310
• (ci) Avoid most of CI on draft PRs
• Fix hatch env workspaces
• Remove connect test
� Other
• Fix coverage upload overwrite and add example coverage
Contributors
• @JP-Ellis
• @adityagiri3600
• @benaduo
• @Nikhil172913832
pact-foundation/pact-pythonGitHub
04/22/2026, 7:09 AMGitHub
05/04/2026, 9:39 AMadd_interaction_reference
pact-foundation/pact-pythonGitHub
05/04/2026, 9:39 AMGitHub
06/02/2026, 6:54 AMGitHub
07/08/2026, 2:39 AMdelvewheel version. See #1640.
Contributors
pact-foundation/pact-python