Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pact PHP - Support for V3 / V4 + Plugins Via FFI #326

Merged
merged 508 commits into from Mar 26, 2024
Merged

Pact PHP - Support for V3 / V4 + Plugins Via FFI #326

merged 508 commits into from Mar 26, 2024

Conversation

YOU54F
Copy link
Member

@YOU54F YOU54F commented Jul 25, 2023

Pact PHP - Support for V3 / V4 + Plugins Via FFI

What is the current status

Pact-PHP does not currently support v3+ features of the rust core, in the mainline branch.

V3+ features are now available for beta testing in ffi branch, in a view to stabilise and release into the mainline.

We would <3 your support

How can I test this today

Anyone can start testing pact-php with pact_ffi code by updating their composer.json

"pact-foundation/pact-php": "10.0.0-alpha1"

PR's which made up this release

NB:- Although marked as closed, they have been consolidated and merged into a single branch under #323

How can I submit feedback

All feedback is gratefully received, positive feedback is great, as it allows us to ascertain how well the package is doing for users. Constructive criticism is okay too, but see the next section

  • Reply in this pull request
  • Raise a new issue, clearly stating you are using the ffi branch

How can I contribute

If you want to help improve Pact-PHP, read the DEVELOPING.md documentation, fork the repo and have a play!

…asses

refactor: Use matcher and generator classes
…-value

feat: Throw exception when both generator and example value are set
test(compatibility-suite): Add set up context
test(compatibility-suite): Add compatibility suite submodule
test(compatibility-suite): Add InteractionBuilder service
test(compatibility-suite): Define interactions
test(compatibility-suite): Implement V1 Consumer scenarios
test(compatibility-suite): Implement V1 Provider scenarios
test(compatibility-suite): Implement V2 scenarios
test(compatibility-suite): Implement V3 scenarios
test(compatibility-suite): Implement V4 scenarios
@tienvx
Copy link
Contributor

tienvx commented Mar 13, 2024

I created release/9.x branch from current master branch for future PRs that target standalone ruby.

composer.json Outdated Show resolved Hide resolved
@Lewiscowles1986
Copy link
Collaborator

Lewiscowles1986 commented Mar 14, 2024

Most of the points I'm calling out here have been called out before, so I don't think we should block this great performance, functionality and stability win.

  1. Suggestion added for release mentioning 10.x (is this 9.x or 10.x?) adjust as appropriate
  2. Comment on moving pieces folks might need a guided hand on

Fantastic Work @tienvx 🎉

This might take me some time to finish reviewing, but I'm over half-way through in first sitting.
Screenshot 2024-03-14 at 03 50 26

@JP-Ellis
Copy link

Just wanted to say, absolutely amazing work @tienvx!! And thank you @Lewiscowles1986 for helping with the review and providing feedback.

This is a behemoth of a PR, and thankfully a lot of the work has been reviewed in previous PRs.

Looking forward to this being merged, and Pact PHP v10 being made widely available!

@mefellows
Copy link
Member

I second third this. Amazing work Tien - painstakingly breaking it into who knows how many PRs, and then incrementally improving them with more tests, documentation etc.

Seeing it all in one place like this shows the enormity of what has been done.

Lewis - you deserve a lot of credit, I've seen how quickly you've been reviewing and providing feedback on these PRs.

Tien might be the hero, but you're the Robin to his Batman👏 .

Can't wait to see this in action!

@YOU54F
Copy link
Member Author

YOU54F commented Mar 14, 2024

Amazing work @tienvx! I need to go through the upgrade guide/readme again and check it is still relevant as there has been a fair few changes, and also test against a few of the public projects I used, to show the migration path when I last gave it a spin

fix: Swap implementation of setFilterInfo() and setProviderState()
@Lewiscowles1986
Copy link
Collaborator

Lewiscowles1986 commented Mar 15, 2024

@YOU54F https://github.com/Lewiscowles1986/pact-testing/actions/runs/8291625745/job/22691646516 which is a fork of the first you showed, says this works

  • deleted the lockfile to pull from ffi branch and observed improved readability of output
  • Experimented until landing on --testdox style rather than dots default

https://github.com/Lewiscowles1986/015-pact-http-producer-php/actions/runs/8291769679 Also runs a producer example (and made me hate GitHub choices 🥲 ), it's the 015-pact-http-producer-php

https://github.com/Lewiscowles1986/014-pact-http-consumer-php/actions/runs/8291853993 passes, although Guzzle had to update

Copy link
Collaborator

@Lewiscowles1986 Lewiscowles1986 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tienvx tienvx merged commit 5ca7280 into master Mar 26, 2024
51 checks passed
@tienvx tienvx deleted the ffi branch March 26, 2024 05:04
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.

None yet

6 participants