Open luke-hill opened 7 months ago
This are great news! I'd like to see cucumber-cpp seamlessly integrated. I personally don't yet really know the cucumber ecosystem outside of cucumber-cpp. Question for me is, how do we know that cucumber-cpp fulfills the requirements? Is this the part where the compatibility kit comes into play? Or is it when it works with cucumber wire 7.x and a cucumber-ruby 9.x? Best case is we have test cases to see what is missing and what is not yet complete.
When the wire plugin was first made many moons ago it was a sort of "spin-off" from cucumber ruby. That was used in contract testing. I didn't do any of said work.
However this meant it was often tightly integrated into cucumber ruby. And then when it was no longer fashionable / used, it just fell by the wayside.
A secondary (or arguably now, primary), use was to use as a server if you like where you could fire events to it, this is what cpp uses it as and others could too.
If you find that cucumber-cpp just works as expected, then it is integrated and working. However it's likely that as we build up things we may find more items that are wrong / incorrect.
Once we have a v1.0 of cpp cut where we're happy with where it's at, I think then we can look at auxiliary frameworks, such as tag-expressions/cucumber-expressions e.t.c and begin to look at CCK conformance.
For reference. The only 100% CCK conformant flavour of cucumber (In the correct way), is JS. Cucumber-Ruby is fully conformant but "not in the right way" (That's being done now). JVM is closely following suit I believe in 2024 once the core maintainer has more time.
Once you've got the v1.0 version cut we can also look at some of the more tightly coupled concepts, such as either gherkin (Which is already quite fully formed), or maybe something like the messages protocol (The messages protocol is basically our language agnostic way of decoupling large amounts of complexity and giving us an easier maintenance burden) -> It's worth pointing out cpp messages was first released only a month or so ago if you check here. So it might be a good time to look into that when you can - https://github.com/cucumber/messages/blob/main/CHANGELOG.md
@luke-hill do I understand correct that the relevant thing for this issue is to make cucumber-cpp compatible with cucumber 9.x and cucumber-wire 7x?
A short test (#285) indicate that it works for the few small built in examples. But as I understand you, this is probably by accident. If yes, my question is how we know that cucumber-cpp is really compatible? I understand from your last response that the CCK does not help here. Are there other tests or definitions?
In here no I don't believe so. There are some in cucumber-wire which have recently been amended.
🤔 What's the problem you're trying to solve?
@ursfassler - We're now trying to get the cpp version actively supported. The next step would be to fix any wire integrations to use as close to the latest version/s as possible.
Ideally this would see us be able to release a 1.0 version of the cpp framework with late(r) versions of cpp support (Get rid of lots of legacy code / support). And then go down the traditional semver path
✨ What's your proposed solution?
Update to use a cucumber wire 7.x version and a cucumber-ruby 9.x version
⛏ Have you considered any alternatives or workarounds?
N/A
📚 Any additional context?
Cucumber-Wire between v2 and v5 was predominantly not changed much, it was mainly focussed on de-coupling from the cucumber-ruby implementation. As such these versions for the wire plugin can largely be perceived to be identical / having very little difference/s
Since then the main changes are just ruby / stylistic tweaks. Again not much to worry about.
The bigger concern is cucumber-ruby. This has changed a lot. There are some bug fixes going in recently which show some of these oddities (Such as the envelopes not looking as expected). Also some of the acceptance tests with the integrations were a bit flaky. cc/ @canmor
This text was originally generated from a template, then edited by hand. You can modify the template here.