Skip to content

Releases: pact-foundation/pact-python

pact-python-ffi/0.5.4.1

Choose a tag to compare

  • No changes within the FFI; manual bump to create a new wheel with latest delvewheel version. See #1640.

Contributors

pact-python-cli/2.6.0.1

Choose a tag to compare

🚀 Features

Contributors

pact-python/3.4.0

Choose a tag to compare

@github-actions github-actions released this 04 May 09:39

🚀 Features

  • Add external reference dsl

Contributors

pact-python-ffi/0.5.4.0

Choose a tag to compare

  • Added add_interaction_reference

pact-python/3.3.1

Choose a tag to compare

@github-actions github-actions released this 22 Apr 07:09

🐛 Bug Fixes

  • Avoid rare port clash

⚙️ Miscellaneous Tasks

  • Simplify find_free_port
  • Replace pre-commit with prek

Contributors

pact-python/3.3.0

Choose a tag to compare

@github-actions github-actions released this 17 Apr 06:04

🚀 Features

  • Add xml matching

    A new pact.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

pact-python-ffi/0.5.3.0

Choose a tag to compare

🚀 Features

  • Removed:
    • create_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

pact-python-cli/2.6.0.0

Choose a tag to compare

🐛 Bug Fixes

  • Bundle both ruby and rust CLIs

📚 Documentation

  • Update changelog for pact-python-cli/2.5.7.0

⚙️ Miscellaneous Tasks

  • Remove versioningit, switch to static version in pyproject.toml
  • Minor update to cliff config
  • Replace taplo with tombi
  • Allow windows arm cli builds to proceed

Contributors

pact-python/3.2.1

Choose a tag to compare

@github-actions github-actions released this 10 Dec 08:12
pact-python/3.2.1

[pact-python/3.2.1] 2025-12-10

📚 Documentation

  • Update changelog for pact-python/3.2.0
  • Fix internal references
  • Add v3 blog post
  • Fix partial url highlight
  • Fix tooltips in code
  • Remove redundant header from blog post

⚙️ Miscellaneous Tasks

  • (ci) Use strict docs building
  • Switch to versioningit

Contributors

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
  • fix(deps): update minimum cli version by @JP-Ellis in #1396

Full Changelog: pact-python/3.2.0...pact-python/3.2.1

pact-python-cli/2.5.7.0

Choose a tag to compare

@github-actions github-actions released this 10 Dec 08:02
pact-python-cli/2.5.7.0

[pact-python-cli/2.5.7.0] 2025-12-10

🚀 Features

  • (ffi) Add standalone ffi package
  • (v3) [breaking] Remove pact.v3.ffi module

    pact.v3.ffi is removed, and to be replaced by pact_ffi. That is, pact.v3.ffi.$fn should be replaced by pact_ffi.$fn.

  • (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.14

    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

Pull Requests

What's Changed

Read more