Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting rid of ruby dependency #290

Closed
AnarchoSystems opened this issue Jan 24, 2024 · 6 comments
Closed

Getting rid of ruby dependency #290

AnarchoSystems opened this issue Jan 24, 2024 · 6 comments
Labels

Comments

@AnarchoSystems
Copy link

Hello!

Thanks for getting rid of the boost dependency, that simplified things a lot.

Is there any plan to also get rid of cucumber ruby and use a gherkin parser instead?

A gherkin parser library for cpp can be found, e.g., here:

https://github.com/cucumber/gherkin

(in the cpp folder)

@ursfassler
Copy link
Contributor

Hi, and thanks for the feedback ☺️.

There is no plan to go to a C++ only solution. I personally don't know what it would mean, but from the experience from others it takes quite some effort to maintain the whole thing. It is an ongoing discussion if the already existing different implementation (Ruby, Java, ...) can be merged back to reduce maintenance.

The idea is to test and maybe improve the interface between cucumber-cpp and cucumber-ruby, see #284.

What is the motivation for the question?
I.e. is there a problem you face with the current solution or a simplification if it is C++ only?

@AnarchoSystems
Copy link
Author

Motivation: I'm working with cucumber-ruby 2.0 because I'm facing difficulties installing any later versions on the old CentOS versions we still maintain. I am facing instabilities on the ruby side that are somewhat inexplicable and very non-deterministic. Something about "no method [] for nil class" that randomly pops up. I hoped a C++ only solution might at least give me more clarity what is going wrong (if it's anything in my code).

@ursfassler
Copy link
Contributor

Is this the same problem as #226?
The error message is slightly different but sounds close. If it is the same it hints to an C++ exception in an BEFORE or AFTER hook.

I fear that we break compatibility with such old cucumber-ruby version once we have to implement changes for #284. Maybe there is a way for you to update the distribution, run cucumber-ruby in a docker container or on a different machine?

@AnarchoSystems
Copy link
Author

I've definitely seen this type of error when there were problems in BEFORE, so yes. But I don't understand how my code isn't deterministic.

Ok, I'll have to try to work around the issue then. Maybe using a c++ gherkin parser is more of a long term nice to have.

@luke-hill
Copy link
Contributor

Hi @AnarchoSystems

Yes we know that previously c++ was tied to cucumber 2.0

It "should" in theory be possible to use the latest cucumber. This is because the wire plugin (Sort of the intermediary between cpp and ruby), is now updated and should be fully conformant.

There is a ticket here: #284 that should see us use the latest version of wire (And accordingly ruby).

This would be considered by me as fairly high priority, if this isn't working

@ursfassler
Copy link
Contributor

Closing it because we will keep the setup with Cucumber -> cucumber-cpp. Will work instead on the conformance of this interaction, i.e. #284.

@ursfassler ursfassler closed this as not planned Won't fix, can't repro, duplicate, stale Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants