Update Gherkin/Cucumber Dependencies#656
Conversation
There was a problem hiding this comment.
If that doesn't help, can you flag me in the issue where you have the actual problem?
See here:
I tried to update everything to the latest version but getting:
Error: Could not resolve version conflict among [ io.cucumber.eclipse:io.cucumber.eclipse.java.plugins:jar:3.0.0-SNAPSHOT -> io.cucumber:messages:jar:30.1.0, io.cucumber.eclipse:io.cucumber.eclipse.java.plugins:jar:3.0.0-SNAPSHOT -> io.cucumber:messages:jar:32.3.1, io.cucumber.eclipse:io.cucumber.eclipse.editor:jar:3.0.0-SNAPSHOT -> io.cucumber:messages:jar:32.3.1, io.cucumber:gherkin:jar:36.1.0 -> io.cucumber:messages:jar:[19.1.4,31.0.0), io.cucumber:messages:jar:30.1.0, io.cucumber:messages-ndjson:jar:0.4.1 -> io.cucumber:messages:jar:[32.0.0,33.0.0), io.cucumber:messages:jar:32.3.1, io.cucumber:gherkin-utils:jar:11.0.0 -> io.cucumber:messages:jar:[32.0.0,33.0.0)]If I decode this right
io.cucumber:gherkin:jar:36.1.0requiresio.cucumber:messages:jar:[19.1.4,31.0.0)butio.cucumber:gherkin-utils:jar:11.0.0wantsio.cucumber:messages:jar:[32.0.0,33.0.0)what has no intersection.So currently there seem to be no grantee that
gherkin-utilsdepends on "compatible"gherkin(because its only a test-dependency) what sounds a bit strange.Originally posted by @laeubi in cucumber/gherkin-utils#171 (comment)
There is a watershed around messages v32 because of some breaking changes. I'm lining those up to release with cucumber-jvm v8.
So you either have to use a set of dependencies which depend messages before 32 or after. Because of the breaking changes you can't mix and match those. Now I can't immediately get a clear picture of the dependency tree, but it looks like it includes cucumber-jvm. Because v8 is not yet released, you'd have to use the v7 set of dependencies.
The current and previous set of converging versions can be found in the cucumber-bom.
| org.eclipse.e4.ui.css.swt.theme, | ||
| org.eclipse.ui.genericeditor, | ||
| io.cucumber.gherkin;bundle-version="16.0.0", | ||
| io.cucumber.messages;bundle-version="13.2.1", |
There was a problem hiding this comment.
Btw, these versions look a bit old.
| org.eclipse.core.expressions;bundle-version="3.9.500" | ||
| org.eclipse.core.expressions;bundle-version="3.9.500", | ||
| io.cucumber.gherkin.utils;bundle-version="11.0.0", | ||
| io.cucumber.cucumber-gherkin;bundle-version="7.33.0" |
There was a problem hiding this comment.
This conflicts with gherkin.utils.
And do you need io.cucumber.cucumber-gherkin? I wrote that mostly as an internal adaptor so I didn't have to rewrite everything when introducing messages. It will eventuallyTM fade out.
Ideally you'd use io.cucumber.gherkin here instead.
| </dependency> | ||
| <dependency> | ||
| <groupId>io.cucumber</groupId> | ||
| <artifactId>messages-ndjson</artifactId> |
There was a problem hiding this comment.
With messages-ndjson do you still need the jackson dependencies above?
| <artifactId>cucumber-expressions</artifactId> | ||
| <version>18.0.1</version> | ||
| <artifactId>cucumber-core</artifactId> | ||
| <version>7.34.3</version> |
There was a problem hiding this comment.
This version isn't compatible with messages-ndjson further down in this file. You'd need the unreleased v8 version here or downgrade messages-ndjson.
|
Mmh. It also looks like @laeubi I'm assuming you want the set of dependencies that is compatible with |
|
@mpkorstanje thanks I'll try to sort this out - maybe I can eben try using the bom - should work theoretically but haven't tried that lately :-) |
|
@mpkorstanje I'm currently looking at https://repo1.maven.org/maven2/io/cucumber/cucumber-bom/7.34.3/cucumber-bom-7.34.3.pom and it seems to depend on some properties for the versions, even though that works its often easier for consumption if these properties are resolved e.g. with https://www.mojohaus.org/flatten-maven-plugin/flatten-mojo.html |
|
Sadly the bom feature is currently broken in m2e ... |
|
@laeubi the I suppose I could manually inline the versions. But why are properties problematic anyway? |
|
I now tried with the bom but it also seems to be inconsistent regarding versions when it comes to messages package imports. The I'll try to take a look how I possibly can resolve this or if I should possibly just wait for the next bom release where things are then hopefully more aligned. |
I don't get this part. The range in the pom is https://github.com/cucumber/messages-ndjson/blob/release/v0.3.2/java/pom.xml I also don't understand this part:
Because cucumber-jvm uses a fixed version in the bom here: https://github.com/cucumber/cucumber-jvm/blob/v7.34.3/cucumber-bom/pom.xml |
This is the version range in the pom, yes but it is not used as the OSGi import package could be adjusted maybe, but still it seems the bom includes things that depend on different messages versions. I need to think about how one could possibly best manage this.
That's likely only a follow up because the first one can not be resolved. |
No description provided.