pact-python icon indicating copy to clipboard operation
pact-python copied to clipboard

Contributors wanted: support V3 of the pact specification

Open venthur opened this issue 7 years ago • 15 comments

The README says you currently support V2 of the spec, please support V3 as well.

venthur avatar Jul 06 '18 09:07 venthur

You say this as if it's so easy😁

We are working on v3 but it's a lot of work.

Is there a particular feature of v3 you're particularly interested in as a priority? For example, message support (which is not a distant prospect).

mefellows avatar Jul 06 '18 10:07 mefellows

No worries, I didn't imply it's gonna be easy. Just wanted to create the ticket, so we can keep track of the progress. I've looked into the code and wanted to start working on it, but it is unclear how it should look like in the end, especially when it comes maintaining several supported spec-versions.

So maybe we can use this issue to collect the requirements, use cases etc.

venthur avatar Jul 06 '18 11:07 venthur

No worries!

For inspiration/ideas, we can look at the implementation guide (for want of a better term) following other language implementations for guidance:

  • Ruby spike (including some useful sequence diagrams): https://github.com/pact-foundation/pact-ruby-message-spike
  • PHP: https://github.com/pact-foundation/pact-php/issues/29
  • JS: https://github.com/pact-foundation/pact-js/tree/feat/message-pact
  • Golang: https://github.com/pact-foundation/pact-go/tree/release/1.x.x

mefellows avatar Jul 07 '18 03:07 mefellows

You say this as if it's so easy😁

We are working on v3 but it's a lot of work.

Is there a particular feature of v3 you're particularly interested in as a priority? For example, message support (which is not a distant prospect).

Message support gets a +1 from me. Has there been any progress on this so far?

Thanks guys

jbw avatar Jan 14 '20 09:01 jbw

+1 for message support as well.

liamtmeade avatar Jan 16 '20 15:01 liamtmeade

Someone is currently working on adding pact-message. Hop on slack.pact.io and ask around the pact-python channel.

bethesque avatar Jan 16 '20 21:01 bethesque

I'm going to look into this now after the initial V3 support added to Pact-JS and Pact-C++

uglyog avatar May 29 '20 02:05 uglyog

Initial prototype of V3 consumer test is in the feat/V3 branch: https://github.com/pact-foundation/pact-python/blob/feat/V3/e2e/v3/todo/tests/test_todo_consumer.py

uglyog avatar Jun 01 '20 00:06 uglyog

Any news on the messaging support?

gdelia avatar Jun 09 '20 14:06 gdelia

Any news here? We'd like to use Pact for our RMQ integrations too.

antonakospanos avatar Dec 01 '20 17:12 antonakospanos

So I haven't started on this and to be honest probably won't until sometime 2021 as I'm not time rich at the moment.

elliottmurray avatar Dec 01 '20 22:12 elliottmurray

Welcome back to having a job Elliot :P

bethesque avatar Dec 02 '20 06:12 bethesque

Minor update on this that's worth sharing here:

Pact JS, Pact Go and Pact .NET have all made good progress on the v3 implementation using the Rust shared core. Pact PHP is also underway.

The work in these languages has significantly improved the standard and features of the shared core, which should make integration.

If there is somebody who has a few weeks to get stuck into it, we'd be happy to do a kickoff over VC get you on the right track.

mefellows avatar Jul 01 '21 12:07 mefellows

Hi folks, just curious what the status of this is? My team has a vested interest in supporting some features from V3 and we are largely python developers.

@mefellows if there is any progress here / anything that I can do to help push this forward a bit?

ThatDevShparki avatar Jan 12 '22 19:01 ThatDevShparki

You can ping me on Slack and I can help with that. We starting looking at FFI bindings for this but it has stalled. I've had good intentions but been distracted. Can help out if better python devs (and more importantly those with time!) than me want to contribute.

elliottmurray avatar Jan 12 '22 22:01 elliottmurray

Hey all,

There has been a few attempts so far at helping tickle along progress of Pact-Python to utilise the new Rust Core.

2 on the verifier side

  • https://github.com/pact-foundation/pact-python/pull/245
  • https://github.com/pact-foundation/pact-python/pull/265

I've put together a demonstration of Python and the Pact FFI based on some of the work done by awesome folk above.

These are for the consumer side, showing up to v4 Pact's being generated, and utilising the new Pact plugin framework

https://github.com/YOU54F/pact-python-ffi

We would love to find new maintainers or long term contributors to the projects, so would appreciate anyone sharing the word out amongst fellow Pythonista's and see if we can bring this to the masses

YOU54F avatar Nov 25 '22 15:11 YOU54F

Hey @elliottmurray I am going to re-pin this, and will flesh out the top level post with the work performed to date, and it will help us as we progress in our maintainer/community chats as to the actual work required to say a language is feature complete for v3, so we know the target we are aiming towards.

As per my comment in the just closed #312

I think we are still in need of contributors, in order to support pact v3 and beyond, and that thread has been open for longer

We are severely lacking in willing participants, and we are happy to lend a hand in moving things forward <3

If you would love to practise some python and become a pythonista, or you are a seasoned pythonista, drop into https://github.com/pact-foundation/pact-python/issues/88 and give us a shout!

YOU54F avatar May 03 '23 17:05 YOU54F

Whoops closed it by accident, fail

YOU54F avatar May 03 '23 17:05 YOU54F

thanks for raising @venthur

YOU54F avatar May 03 '23 17:05 YOU54F

👋🏾

I've been working on this on and off, and got a big push this week to really make some progress towards a user facing DSL.

If anyone wants to review, or join in please follow Feature: PactV3 / VerifierV3 / MessageProvider interface (powered by pact_ffi)

YOU54F avatar Aug 03 '23 11:08 YOU54F

This issue has been linked to a Canny post: Pact V3 Specification for Python :tada:

canny[bot] avatar Aug 03 '23 11:08 canny[bot]

I'm going to close this longstanding issue in favour of #396 which sets out a roadmap to transition towards using the Rust library.

JP-Ellis avatar Sep 27 '23 02:09 JP-Ellis