Skip to content

chore(deps): update dependency pact_python to v3#35

Closed
pactflow-renovate-bot[bot] wants to merge 3 commits intomasterfrom
renovate/pact_python-3.x
Closed

chore(deps): update dependency pact_python to v3#35
pactflow-renovate-bot[bot] wants to merge 3 commits intomasterfrom
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.3==3.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 f979433 to efb49d1 Compare October 11, 2025 06:13
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact_python-3.x branch from efb49d1 to 0de8650 Compare December 7, 2025 00:13
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact_python-3.x branch from 0de8650 to e7a9f22 Compare December 14, 2025 09:11
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact_python-3.x branch from e7a9f22 to 4f5c1b5 Compare March 26, 2026 15:12
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact_python-3.x branch from 4f5c1b5 to ec22bdc Compare April 3, 2026 17:12
@pactflow-renovate-bot pactflow-renovate-bot Bot force-pushed the renovate/pact_python-3.x branch 2 times, most recently from 34f3ab3 to ffc3b07 Compare April 26, 2026 07:11
@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

Copilot AI commented May 3, 2026

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

Fixed in b1f16a2. Two breaking changes addressed:

  1. test_products_consumer.py — Rewrote entirely from the old v2 Ruby-core API (Consumer, Like, Provider, Term, Format, start_service/stop_service) to the new v3 Rust-core API using from pact import Pact, match and the pact.serve() context manager pattern.

  2. test_products_consumer_v3.py — Updated imports from the non-existent pact.v3.pact and pact.v3.match submodules to the correct top-level pact module (from pact import Pact, match).

Both tests now pass.

@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:31
@JP-Ellis
Copy link
Copy Markdown
Contributor

JP-Ellis commented May 3, 2026

@copilot Given this upgrades Pact Python from v2 to v3, we should also clean up the tests to avoid the v2/v3 duplication. Just keep the v3 examples, and remove the old v2 examples (or, if there is only an old v2 example and no v3 to replace it, adapt/rework the v2 example into a functioning v3 example).

Copy link
Copy Markdown

Copilot AI commented May 3, 2026

@copilot Given this upgrades Pact Python from v2 to v3, we should also clean up the tests to avoid the v2/v3 duplication. Just keep the v3 examples, and remove the old v2 examples (or, if there is onl...

Done in 968a85e. Removed test_products_consumer_v3.py — after the upgrade both files were identical in terms of API usage, with the only difference being the -v3 suffix on participant names. Kept test_products_consumer.py which uses the canonical participant names matching the Makefile.

@JP-Ellis JP-Ellis force-pushed the renovate/pact_python-3.x branch from 968a85e to f84ec94 Compare May 4, 2026 00:11
Signed-off-by: JP-Ellis <josh@jpellis.me>
@JP-Ellis JP-Ellis force-pushed the renovate/pact_python-3.x branch from f84ec94 to 62a53cb Compare May 4, 2026 00:13
@JP-Ellis
Copy link
Copy Markdown
Contributor

JP-Ellis commented May 4, 2026

Abandoning this, will be replaced by unified examples repo

@JP-Ellis JP-Ellis closed this May 4, 2026
@pactflow-renovate-bot
Copy link
Copy Markdown
Contributor Author

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 3.x releases. But if you manually upgrade to 3.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@pactflow-renovate-bot pactflow-renovate-bot Bot deleted the renovate/pact_python-3.x branch May 4, 2026 00:26
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