pact-foundation / pact-go

Golang version of Pact. Pact is a contract testing framework for HTTP APIs and non-HTTP asynchronous messaging systems.
http://pact.io
MIT License
825 stars 102 forks source link

Current state of the go implementation and roadmap #406

Closed Metamogul closed 1 day ago

Metamogul commented 1 week ago

Expected behaviour

When trying to find information on the projects feature set and roadmap, I'd expect to find information that enables me to propose a decision wether and when to implement pact contract tests across the different services of our product.

Actual behaviour

The Roadmap section of the README currently links two pages: The roadmap on pact.io last edited ~4 years ago and a roadmap document in this projects GitHub wiki, last edited ~8 years ago. Obviously this cannot help gaining insights.

Trying to join the projects slack as pointed out in the README when looking for help leads to a company-private workspace that is not open to the general public. Following the help section on pact.io also does not provide any other sources of information.

Steps to reproduce

Read the README. Try to join slack.

Follow-up questions

The issues seems to indicate a lack of community resources to drive the project; outdated and scattered documentation (e.g. outdated docs on the go implementation on pact.io) or the removal of GraphQL support in the 2.x.x version of the go module support that impression, while the communication on the whole pact framework seems to have shifted to a company-private approach. This contributes to a situation where there is little transparency over the state of the project, its maintainers and their plans, and leaves me with doubts whether I should recommend the implementation of pact contract tests in our product. Adopting an only partly open source project as well as contributing seems risky long term.

Is there still an open community space in which I could get in touch with the maintainers? Are there any notable public contributions to this project at the moment or plans to keep it public?

mefellows commented 1 week ago

Thaks for the issue, you're right there are a few gaps in the docs here we can resolve.

TL;DR - the project is alive and well, is conducted in the open and you can join the community workspace here: slack.pact.io.

Pact Go is up there with the support for most of the latest Pact features.

Feel free to continue the chat in #pact-go.

On Fri, Apr 19, 2024, 19:58 Jan Zombik @.***> wrote:

Expected behaviour

When trying to find information on the projects feature set and roadmap, I'd expect to find information that enables me to propose a decision wether and when to implement pact contract tests across the different services of our product. Actual behaviour

The Roadmap section of the README currently links two pages: The roadmap on pact.io https://docs.pact.io/roadmap last edited ~4 years ago and a roadmap document in this projects GitHub wiki https://github.com/pact-foundation/pact-go/wiki/Native-implementation-roadmap, last edited ~8 years ago. Obviously this cannot help gaining insights.

Trying to join the projects slack as pointed out in the README when looking for help leads to a company-private workspace that is not open to the general public. Following the help section on pact.io also does not provide any other sources of information. Steps to reproduce

Read the README. Try to join slack. Follow-up questions

The issues seems to indicate a lack of community resources to drive the project; outdated and scattered documentation (e.g. outdated docs on the go implementation on pact.io) or the removal of GraphQL support in the 2.x.x version of the go module support that impression, while the communication on the whole pact framework seems to have shifted to a company-private approach. This contributes to a situation where there is little transparency over the state of the project, its maintainers and their plans. This left me with doubts whether I should recommend the implementation of pact contract tests in our product in the current state of the go language implementation. Adopting an only partly open source project well as contributing seems risky long term.

Is there still an open community space in which I could get in touch with the maintainers? Are there any notable public contributions to this project at the moment or plans to keep it public?

— Reply to this email directly, view it on GitHub https://github.com/pact-foundation/pact-go/issues/406, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAANFDH3KRBH262A3P745E3Y6DTFJAVCNFSM6AAAAABGO34GQKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2TENJXHAZTMOA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Metamogul commented 1 week ago

Hey @mefellows! Thanks for the super quick response and openness. So let's continue in Slack :-) Unfortunately the workspace is closed as I tried to explain above and prevents easily getting in touch. Specifically joining is limited to users with email addresses on the following TLDs:

rabobank.nl freddiemac.com cultureamp.com chase.com jpmchase.com smartbear.com trustvip.com

If you could add me with my work address I'd be glad to join.

mefellows commented 1 week ago

Ah, the inviter looks to have stopped working.

Use this for now: https://join.slack.com/t/pact-foundation/shared_invite/zt-2h7ovnj5x-VD82RSfK68jseNXTQ_KTdA

On Fri, Apr 19, 2024, 22:42 Jan Zombik @.***> wrote:

Hey @mefellows https://github.com/mefellows! Thanks for the super quick response and openness. So let's continue in slack :-) Unfortunately the workspace is closed as I tried to explain above and prevents easily getting in touch. Specifically the Slack workspace is limited to users with email addresses on the following TLDs:

rabobank.nl freddiemac.com cultureamp.com chase.com jpmchase.com smartbear.com trustvip.com

If you could add me with my work address .@.com I'd be glad to join.

— Reply to this email directly, view it on GitHub https://github.com/pact-foundation/pact-go/issues/406#issuecomment-2066491842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAANFDAHMED7TUM4P45Y4Y3Y6EGKHAVCNFSM6AAAAABGO34GQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRWGQ4TCOBUGI . You are receiving this because you were mentioned.Message ID: @.***>

YOU54F commented 1 week ago

Sorry about the slack issue @Metamogul. we've had issues recently due to the way Slack works, it was tracked in the below issue.

https://github.com/pact-foundation/devrel/issues/26

tl;dr the invite link only lasts for a limited amount of users and we need to refresh the link, and then update the redirect for our invite link.

(e.g. outdated docs on the go implementation on pact.io)

ahh,

https://docs.pact.io/implementation_guides/go/readme

It seems that when we moved over to v2, we have lost our sync docs job

https://github.com/pact-foundation/pact-go/blob/v1.x.x/.github/workflows/trigger_pact_docs_update.yml

we will want to restore that against the master branch, which will allow it to trigger the sync job in the docs repo

https://github.com/pact-foundation/docs.pact.io/blob/master/scripts/sync/pact_go.rb

We would be happy to accept a pull request, or for it to be raised as a separate issue to track and resolve. It's obviously less than desirable for our centralised docs to be out of date with the readme in github, especially as we want to increase adoption of pact-go v2 which invariably teases out bugs.

while the communication on the whole pact framework seems to have shifted to a company-private approach.

outside of the slack invite being locked down (we don't have a paid slack account ), how would you suggest this is the case?

The framework is as open-source as it has ever been, we do more companies using the project, and some of those customers choose PactFlow (which is a commercial product), however the Pact ecosystem which serves both Pact Open source and PactFlow commercial users.

From a maintainer perspective, we are vastly outweighed by the number of users, vs the number of maintainers and active contributors. We all have varying pressures at work, and in our home life, but we are as committed as always to Pact being open and accessible for everyone

This contributes to a situation where there is little transparency over the state of the project, its maintainers and their plans, and leaves me with doubts whether I should recommend the implementation of pact contract tests in our product. Adopting an only partly open source project as well as contributing seems risky long term.

Is there still an open community space in which I could get in touch with the maintainers? Are there any notable public contributions to this project at the moment or plans to keep it public?

There are no plans to make it not public... and you are making contact in an open community space here in github.

You can see public contributions via git commit history, and pull requests. They ebb and flow, with users wants and needs.

There has been several go users, who have dived into the Pact matrix, learned about Pact's shared core (built in Rust) and done some Polyglot programming in the process.

YOU54F commented 1 week ago

Slack is locked down and not-open source, we lose history of conversations after 90 days. It's a shame to lose the valuable insight from the community, and not be able to serve it for others, so we did something about it.

We do so by leveraging another oss product https://github.com/Linen-dev/linen.dev where our slack history is fully searchable and hosted here

https://www.linen.dev/s/pact-foundation

That allows us to preserve conversation that takes place on Slack, for users for years to come.

We were previously scraping it and hosting it here https://docs.pact.io/slack but it wasn't as nice to consume

YOU54F commented 1 week ago

If you have ideas about pact-go's future, and want to help make it awesome, we are all ears, both in term so ideas, and PR's!

YOU54F commented 1 week ago

Sync job has been restored, and the website has been updated with the latest documentation

https://docs.pact.io/implementation_guides/go

thanks for bringing it to our attention

Metamogul commented 1 day ago

Hey @YOU54F, thx for restoring the sync job and the various clarifications & transparency! This helps me assess the situation much better 😌 When it comes to contributions I'm already overbooked myself with my time – so my ability to contribute to the project depends largely on my employer's allocation of my hours. If I'll be given more time on our Pact implementation and I'll need to amend to the project I'll be pushing to make these publicly available as PR. For now, I think this issue can be closed. Thanks again for your time and the insightful posts.