Comments (7)
These are the direct dependency versions in my environment:
I'm not sure how you're running the tests, in that case, because those dependencies are not compatible with each other. If you drop gem 'cucumber-gherkin', "26.0.3"
and gem 'cucumber', "8.0.0"
into your gemfile, Bundler won't even get past installation because cucumber
does not currently support any version of cucumber-gherkin
past 23.x
.
I was puzzled about the
'cucumber', 2.2.0'
specification in the Gemfile, so I've patched it to be>= 2.2.0
and tried running thedefault
rake target, and to my surprises it runs fine
The usage of 2.2.0
is conditional. It depends on which version of cucumber-gherkin
you want to use when running the tests.
Line 7 in e304842
Will CukeModeler run with any version of Cucumber? Yes. Will Cucumber run with any version of Gherkin? No. Cucumber
2.2.0
is special because it uses a version of Gherkin that doesn't use the Gherkin
namespace, thus allowing it to not conflict with the namespace of whatever version of cucumber-gherkin
is being tested.from cuke_modeler.
Hello! Thanks for the clarifications. I think I'm able to use cucumber 8 with gherkin 26 because I must have tweaked the gemspec files a bit to allow that, and generally do not use Bundler (as the Gemfiles often include extraneous dependencies that'd need to be patched out and the environment is already managed by Guix). I try running the test suites where practicable, so I have at least some confidence that the components fit together. I wonder why cucumber can't use the latest gherkin.
from cuke_modeler.
I wonder why cucumber can't use the latest gherkin.
It's less an issue of "can't" and more an issue of "won't".
Keeping the cucumber-gherkin
dependency up to date may be so trivial as to be able to be done by a bot but that does not mean that the maintainers are inclined to make a new release when those updates happen. Additionally, they have a habit of skipping dependency versions. So, rather than the next release going from being compatible with Gherkin 23.x to being compatible with 23.x-26.x, they may decide to just lock it to only 26.x, leaving anyone who needs 24.x or 25.x out in the cold.
from cuke_modeler.
OK. I see the referenced PR has been merged so cucumber 8 can use gherking 26 as long as it's < 26.0.3, and as of 4 days ago they've bumped it again to < 26.1.1. They could probably use the compatible operator instead, something like ~>26.0, which seems to me like would be less tedious and create less friction. I've asked here if it's something they could consider: cucumber/cucumber-ruby#1701.
from cuke_modeler.
The reason we keep cucumber gherkin so tightly pinned was debated a while back and answered. The long and the short of it is they should be thought of as package private for the inter-dependency to cucumber. People who use gherkin elsewhere can pin their own dependency rules (Such as for spinach).
from cuke_modeler.
@luke-hill Thanks for taking the time answer the question! The problem I'd see with this is when using e.g. spinach and cucumber in the same project; they might disagree on the version of gherkin to use, which would be less likely with a 'compatible' specification, but I guess this was discussed already.
from cuke_modeler.
... I guess this was discussed already.
@Apteryks There was a rather lengthy discussion on the topic, yes. With some of the same people involved and the same conclusion reached, even.
from cuke_modeler.
Related Issues (7)
- update cucumber-gherkin dependency HOT 2
- Upgrading from 0.4.1 to 1.0.3 results in undefined method `row_elements` HOT 2
- Cuke modeler crapping it's pants parsing feature text HOT 1
- Possibly incorrect parsing of commented tags HOT 5
- cuke_modeler `cucumber_gherkin` dependency breaks cucumber specs / parallel specs HOT 3
- Adding step definitions HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cuke_modeler.