pact-foundation / pact-reference

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

Issue/434 missing buffer logs #435

Closed YOU54F closed 3 months ago

YOU54F commented 3 months ago

fixes #434

I believe this issue stems from one of the pact crates having a different version of the tracing crate used for logging.

This seems like an awkward position to be in, when upgrading dependencies of each of the indiv pact rust crates, especially as two sit across different repos (pact_mock_server / pact-plugin-driver).

Would it make sense to crate a pact_logging crate that wraps the required deps for logging, and this singular crate can be imported by all the other pact rust crates.

If we need to update the logging deps, we update them in the pact_logging crate, and then can use the workspace override to patch all crates to use the same versions (via pact_logging)

rholshausen commented 3 months ago

I'm wondering if we use the patch block to force the logging crate version, this will fix this issue. It does mean we need some way of working out when to update it. But the logging crates have been quite stable.

rholshausen commented 3 months ago

I'm going to close this PR, as it can't be merged in the current state. I'll then cherry pick the changes from your branch.

rholshausen commented 3 months ago

This was not caused by the logging crates, but by the FFI InMemory sink which uses the global static LOG_BUFFER in the pact_matching crate. This is required to be the same version across all crates (i.e. mock server crate).

YOU54F commented 3 months ago

ahhh great, good detective work @rholshausen