pact-foundation / pact-reference

Reference implementations for the pact specifications
https://pact.io
MIT License
91 stars 46 forks source link

Run CI for FFI on Multiple OSs #159

Closed adamrodger closed 1 year ago

adamrodger commented 2 years ago

Following on from the discussion on #122, we should change the CI for the FFI libraries to make sure they're tested on all supported OSs. We need to avoid another situation where we release the FFI and then find afterwards that it doesn't work on one or more OSs after downstream libraries try to integrate with it.

YOU54F commented 1 year ago

I love this idea, I've been playing with https://github.com/YOU54F/hello_ffi after getting inspired by ruby/php examples in this repo.

Cucumber seems like it will be a nice way to describe in a language agnostic format, features of Pact, which can serve as documentation, both for users of the end libraries but for maintainers as well, or new potential contributors/language authors, in basic lifecycle handling etc.

By seeing them all side by side, you can begin to appreciate where things should be pushed into the core and not a client concern, or where things need to be dealt which on a case by case basis dependant on the idiosyncrasies of individual languages

YOU54F commented 1 year ago

It seems like it can help address a few cross cutting concerns.

It aligns with some of my thought patterns for end users in the more user facing documentation

https://github.com/pact-foundation/docs.pact.io/pull/189#issuecomment-1335989322

I think we need to address our developer community in ours docs more, like this page is really useful for me

https://github.com/pact-foundation/pact-reference/blob/master/rust/pact_ffi/ARCHITECTURE.md

but I prefer seeing stuff in code. I got lots of inspiration by looking at the various FFI backed impls out there, but it was hard to corral them into a few tabs just so I could contrast and compare.

mefellows commented 1 year ago

It does currently run on the 3 major OS's:

Screen Shot 2022-12-07 at 7 38 27 am
rholshausen commented 1 year ago

Closing this for now. If we need to run the CI build on other OSs, we will need to setup custom agents to run them.