diff --git a/CHANGELOG.md b/CHANGELOG.md index b76b27d9f..f7139124d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,36 @@ All notable changes to this project will be documented in this file. +## [pact-python/4.1.0] _2026-10-16_ + +### ๐Ÿš€ Features + +- _(types)_ Add a str-based URL type + +### ๐Ÿ› Bug Fixes + +- Keep `pact` attributes bound under lazy imports + +### ๐Ÿšœ Refactor + +- _(verifier)_ [**breaking**] Accept only str URLs + > `Verifier.state_handler` and `Verifier.add_source` accept only `str` URLs, and raise `TypeError` for a `yarl.URL`; pass `str(url)` instead. `pact.types.StateHandlerUrl` is now an alias of `str`. +- [**breaking**] Replace yarl.URL with a str-based URL + > `PactServer.url` and `PactServer / str` return `pact.types.URL`, a `str` subclass that supports `/` and the `scheme`, `host`, `port` and `path` attributes. Other `yarl.URL` methods, such as `with_query`, are gone; pass query parameters to the HTTP client instead. `yarl` is no longer a dependency. + +### โšก๏ธ Performance + +- Write the version file at build time +- Import the message and state servers on demand + +### ๐Ÿงช Testing + +- Run the suite with lazy Pact imports on Python 3.15 + +### Contributors + +- @JP-Ellis + ## [pact-python/4.0.0] _2026-10-15_ ### ๐Ÿš€ Features @@ -17,6 +47,13 @@ All notable changes to this project will be documented in this file. - _(cli)_ Use renamed macOS standalone assets +### ๐Ÿšœ Refactor + +- _(verifier)_ [**breaking**] Accept only str URLs[^yarl-in-4.1.0] + > `Verifier.state_handler` and `Verifier.add_source` accept only `str` URLs, and raise `TypeError` for a `yarl.URL`; pass `str(url)` instead. `pact.types.StateHandlerUrl` is now an alias of `str`. +- [**breaking**] Replace yarl.URL with a str-based URL[^yarl-in-4.1.0] + > `PactServer.url` and `PactServer / str` return `pact.types.URL`, a `str` subclass that supports `/` and the `scheme`, `host`, `port` and `path` attributes. Other `yarl.URL` methods, such as `with_query`, are gone; pass query parameters to the HTTP client instead. `yarl` is no longer a dependency. + ### ๐Ÿ“š Documentation - Add pact-python-cli 1!x migration guide @@ -43,6 +80,8 @@ All notable changes to this project will be documented in this file. - @JP-Ellis +[^yarl-in-4.1.0]: These changes were released in [4.1.0](https://github.com/pact-foundation/pact-python/releases/tag/pact-python%2F4.1.0), but were meant to be part of 4.0.0. + ## [pact-python/3.4.1] _2026-09-17_ ### ๐Ÿ› Bug Fixes diff --git a/pyproject.toml b/pyproject.toml index efef5d9b6..742535444 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ [project] name = "pact-python" -version = "4.0.0" +version = "4.1.0" description = "Tool for creating and verifying consumer-driven contracts using the Pact framework." readme = "README.md" license = { file = "LICENSE" }