Skip to content

chore(deps): update dependency pact-python to v3#44

Merged
JP-Ellis merged 2 commits intomainfrom
renovate/pact-python-3.x
May 3, 2026
Merged

chore(deps): update dependency pact-python to v3#44
JP-Ellis merged 2 commits intomainfrom
renovate/pact-python-3.x

Conversation

@pactflow-renovate-bot
Copy link
Copy Markdown
Contributor

@pactflow-renovate-bot pactflow-renovate-bot Bot commented Oct 10, 2025

This PR contains the following updates:

Package Change Age Confidence
pact-python (changelog) 2.3.33.3.1 age confidence

Release Notes

pact-foundation/pact-python (pact-python)

v3.3.1

🐛 Bug Fixes
  • Avoid rare port clash
⚙️ Miscellaneous Tasks
  • Simplify find_free_port
  • Replace pre-commit with prek
Contributors

v3.3.0

🚀 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

v3.2.1

🚀 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

v3.2.0

📚 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

v3.1.0

🚀 Features
  • Add consumer_version method
  • Add content type matcher
  • Add 'and' matcher
🐛 Bug Fixes
  • Use correct matching rule serialisation
📚 Documentation
  • Update changelog for pact-python/3.1.0
  • Add agents.md
  • Update configuration
  • Add logging documentation
  • Add multipart/form-data matching rule example
  • Add consumer_version
⚙️ Miscellaneous Tasks
  • Add llm instructions
  • Update non-compliant docstrings and types
  • Upgrade pymdownx extensions
  • Set telemetry environment variables
  • (docs) Api docs link on pact-python site is case sensitive
  • Fix json schema url
  • (tests) Fix skipped tests on windows
  • (ci) Update macos runners
  • Remove unused pytest config
  • Remove ruff sub-configs
  • Switch to markdownlint-cli2
  • Rerun flaky tests
  • Remove unused function
  • Don't except AssertionError
  • (devcontainer) Add multi-arch development container support
Contributors

v3.0.1

📚 Documentation
  • Update changelog for pact-python/3.0.0
⚙️ Miscellaneous Tasks
  • Drop cffi dependency
  • (ci) Fix publish step
Contributors

v3.0.0

📚 Documentation
  • Update changelog for pact-python/3.0.0
⚙️ Miscellaneous Tasks
  • Drop cffi dependency
  • (ci) Fix publish step
Contributors

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch 2 times, most recently from 7c4e814 to 75f9090 Compare October 11, 2025 06:24
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch 2 times, most recently from 23d264e to 804dc8b Compare December 7, 2025 00:23
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch from 804dc8b to e2eb0d0 Compare December 14, 2025 08:22
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch 6 times, most recently from 9e05328 to 89bd66e Compare March 6, 2026 01:14
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch from 89bd66e to a86319a Compare April 11, 2026 18:30
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch 3 times, most recently from ae3d0fa to f8e4183 Compare April 26, 2026 07:21
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact-python-3.x branch from f8e4183 to bf10004 Compare April 27, 2026 01:06
@JP-Ellis
Copy link
Copy Markdown
Contributor

JP-Ellis commented May 3, 2026

@copilot Please fix any breaking changes as a result of this upgrade

Copy link
Copy Markdown
Contributor

Copilot AI commented May 3, 2026

@copilot Please fix any breaking changes as a result of this upgrade

Fixed in commit 00b7d73. The breaking changes addressed:

  1. Import path changed: from pact.v3.pact import Pactfrom pact import Pact (module was restructured in v3)
  2. matchers removed: from pact import matchers is no longer available in v3's top-level package (removed as it was unused in the test)
  3. Async handler: handler(data) (unawaited coroutine) → asyncio.run(handler(data)) to properly invoke the async receive_product_update function
  4. Removed @pytest.mark.asyncio: pact.verify() is synchronous in v3, so the test function no longer needs to be async

@pactflow-renovate-bot
Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Copilot AI requested a review from JP-Ellis May 3, 2026 23:32
@JP-Ellis JP-Ellis merged commit e2a060f into main May 3, 2026
5 checks passed
@JP-Ellis JP-Ellis deleted the renovate/pact-python-3.x branch May 3, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants