Skip to content
This repository has been archived by the owner on Apr 21, 2023. It is now read-only.

xtext-maven-plugin has problems when used with Tycho (will soon have) #146

Closed
LorenzoBettini opened this issue Jun 21, 2021 · 32 comments
Closed
Assignees
Labels
Milestone

Comments

@LorenzoBettini
Copy link
Contributor

I'm experiencing a few problems migrating to Eclipse TP 2021-06 when using xtext-maven-plugin to generate Java code from my DSLs (relying on Xbase) when it is run together with Tycho (just to be clear, in a pure Maven project, there's no problem). That's somehow related to the JDT version range dependency hell (see also eclipse-xtext/xtext#1976) and to the new versions of JDT in Eclipse 2021-06. I reproduced the problem in this simple DSL (using Xbase): https://github.com/LorenzoBettini/xtext-maven-plugin-example

Simple grammar

grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations

generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"

Model:
	greetings+=Greeting*;
	
Greeting:
	'Hello' name=ID body=XBlockExpression;

Simple JvmModelInferrer:

class MyDslJvmModelInferrer extends AbstractModelInferrer {

	@Inject extension JvmTypesBuilder

	def dispatch void infer(Model model, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
		model.greetings.forEach [
			greeting |
			acceptor.accept(greeting.toClass("example." + greeting.name)) [
				members += greeting.toMethod("toString", typeRef(String)) [
					annotations += annotationRef(Override)
					body = greeting.body
				]
			]
		]
	}
}

I'll try to detail the problem (it's not easy to understand what's going on) and a few solutions. I think one of such solutions should be somehow provided by Xtext when creating new projects that are meant to be built with Maven/Tycho.

The problem shows up when you use xtext-maven-plugin to generate the Java source of your DSL input file, and such input file refers to a Java source file (so, there's no problem if the DSL file is "self-contained").

For example (https://github.com/LorenzoBettini/xtext-maven-plugin-example/tree/master/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.example), given this helper Java class

package example.helper;

public class Helper {
	/**
	 * No real processing.
	 * @param s
	 * @return
	 */
	public String process(String s) {
		return s;
	}
}

and this DLS input file

Hello WorldWithHelper {
	val s = "World!"
	val helper = new example.helper.Helper
	helper.process(s)
}

The xtext-maven-plugin is configured as usual:

<build>
	<plugins>
		<plugin>
			<groupId>org.eclipse.xtext</groupId>
			<artifactId>xtext-maven-plugin</artifactId>
			<version>${xtextVersion}</version>
			<executions>
				<execution>
					<goals>
						<goal>generate</goal>
					</goals>
				</execution>
			</executions>
			<configuration>
				<languages>
					<language>
						<setup>org.xtext.example.mydsl.MyDslStandaloneSetup</setup>
						<outputConfigurations>
							<outputConfiguration>
								<outputDirectory>src-gen</outputDirectory>
							</outputConfiguration>
						</outputConfigurations>
					</language>
				</languages>
			</configuration>
			<dependencies>
				<dependency>
					<groupId>org.xtext.example.mydsl</groupId>
					<artifactId>org.xtext.example.mydsl</artifactId>
					<version>${project.version}</version>
				</dependency>
			</dependencies>
		</plugin>
	</plugins>
</build>

The problem raises when you run the Maven/Tycho build when your DSL (i.e., the dependency in the xtext-maven-plugin) has a (possibly transitive) dependency on JDT core. The symptoms are these error messages:

[INFO] Starting validation for input: 'ExampleWithHelper.mydsl'
[ERROR] ERROR:example.helper.Helper cannot be resolved. (file:/home/bettini/work/xtext/xtext-maven-plugin-example/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.example/src/example/ExampleWithHelper.mydsl line : 3 column : 19)

Unfortunately, there's no other information. If you enable -X you get something more:

[INFO] [reading    java/lang/Object.class]
[WARNING] class "org.eclipse.jdt.internal.compiler.lookup.AptSourceLocalVariableBinding"'s signer information does not match signer information of other classes in the same package
[INFO] Stubs compilation finished with errors.

In fact, what's happening is that org.xtext.example.mydsl drags in as a transitive dependency jdt.core (the new version 3.26 from the TP 2021-06) and org.eclipse.xtext:org.eclipse.xtext.builder.standalone:jar:2.25.0 drags in org.eclipse.jdt:org.eclipse.jdt.core:jar:3.23.0 (but too late, so the newer version 3.26 from TP will be used) and org.eclipse.jdt:org.eclipse.jdt.compiler.apt:jar:1.3.1100, which is too old for JDT core 3.26 (the newer version is 1.3.1300) and so we have the "does not match signer information" problem above that breaks everything (well, it does not allow xtext-maven-plugin to compile the stub classes and later the DSL input cannot find the Java class).

Now, why does org.xtext.example.mydsl have a transitive dependency on jdt.core? Actually org.eclipse.xtext.xtext.generator depends on jdt.core (optionally, but Tycho finds it, so it uses that). But org.eclipse.xtext.xtext.generator is in the additional.bundles of build.properties and Tycho ignores additional.bundles... well it does now because of a bug, which has been fixed in the forthcoming 2.4.0.

Summarizing, the problem will show up when updating to 2021-06 and Tycho 2.4.0. Or, even without using Tycho 2.4.0, when you have a required bundle dep on anything that depends on jdt.core.

Solutions

The idea is to force the newer version of jdt.compiler.apt that works with jdt.core. Or, in any case, to make sure that jdt.compiler.apt is taken from the same dependency context as jdt.core.
Each solution is in a separate branch (built with GitHub Actions on Linux, macOS and Windows)

Explicit Maven dependencies in the plugin configuration

Force all the needed jdt dependencies (and yes, due to the version ranges of jdt, also of runtime and equinox to avoid further problems), see https://github.com/LorenzoBettini/xtext-maven-plugin-example/blob/explicit-jdt-deps/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.example/pom.xml

<build>
	<plugins>
		<plugin>
			<groupId>org.eclipse.xtext</groupId>
			<artifactId>xtext-maven-plugin</artifactId>
			<version>${xtextVersion}</version>
			<executions>
				<execution>
					<goals>
						<goal>generate</goal>
					</goals>
				</execution>
			</executions>
			<configuration>
				<languages>
					<language>
						<setup>org.xtext.example.mydsl.MyDslStandaloneSetup</setup>
						<outputConfigurations>
							<outputConfiguration>
								<outputDirectory>src-gen</outputDirectory>
							</outputConfiguration>
						</outputConfigurations>
					</language>
				</languages>
			</configuration>
			<dependencies>
				<dependency>
					<groupId>org.xtext.example.mydsl</groupId>
					<artifactId>org.xtext.example.mydsl</artifactId>
					<version>${project.version}</version>
				</dependency>
				<!-- Explicit deps to avoid mixing versions of jdt.core
					(from Tycho TP: 2.26)
					and jdt.compiler.apt (from Maven 1.3.1100,
					needed by org.eclipse.xtext.builder.standalone) -->
				<dependency>
					<groupId>org.eclipse.jdt</groupId>
					<artifactId>org.eclipse.jdt.core</artifactId>
					<version>3.26.0</version>
				</dependency>
				<dependency>
					<groupId>org.eclipse.jdt</groupId>
					<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
					<version>1.3.1300</version>
				</dependency>
				<dependency>
					<groupId>org.eclipse.platform</groupId>
					<artifactId>org.eclipse.core.runtime</artifactId>
					<version>3.22.0</version>
				</dependency>
				<dependency>
					<groupId>org.eclipse.platform</groupId>
					<artifactId>org.eclipse.equinox.common</artifactId>
					<version>3.15.0</version>
				</dependency>
			</dependencies>
		</plugin>
	</plugins>
</build>

I find this solution not easy to maintain: you have to keep it in sync with the version of JDT from the TP. Moreover, it cannot be easily handled by Xtext itself. Remember that the BOM does not work with plugin dependencies.

Explicit dependency in the additional.bundles

Since Tycho 2.4.0 will support additional.bundles, we can add org.eclipse.jdt.compiler.apt in the additional.bundles of the DSL plugin project; this way, the same version as the one in the TP will be used, see https://github.com/LorenzoBettini/xtext-maven-plugin-example/blob/explicit-compiler.apt-in-additional.bundles/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.properties:

source.. = src/,\
           src-gen/,\
           xtend-gen/
bin.includes = model/generated/,\
               .,\
               META-INF/,\
               plugin.xml
bin.excludes = **/*.mwe2,\
               **/*.xtend
additional.bundles = org.eclipse.xtext.xbase,\
                     org.eclipse.xtext.common.types,\
                     org.eclipse.xtext.xtext.generator,\
                     org.eclipse.emf.codegen.ecore,\
                     org.eclipse.emf.mwe.utils,\
                     org.eclipse.emf.mwe2.launch,\
                     org.eclipse.emf.mwe2.lib,\
                     org.objectweb.asm,\
                     org.apache.commons.logging,\
                     org.apache.log4j,\
                     org.eclipse.jdt.compiler.apt

This is much easier to maintain: once the dependency is there nothing else is required.
NOTE: org.eclipse.jdt.compiler.apt is a FRAGMENT so it must be added manually (cannot be added with the Eclipse editor). This fix can be generated by the Xtext generator itself since it should be able to handle build.properties if I remember correctly.
Remember though, that this is based on Tycho 2.4.0. For older versions, it must be a required bundle (possibly optional).

Tycho target-platform-configuration

Add org.eclipse.jdt.compiler.apt as an extra requirement in the target-platform-configuration. In Xtext projects there are already a few of them (org.eclipse.rcp and xtext.logging), see https://github.com/LorenzoBettini/xtext-maven-plugin-example/blob/explicit-compiler.apt-in-target-platform-configuration/org.xtext.example.mydsl.parent/pom.xml

<plugin>
	<groupId>org.eclipse.tycho</groupId>
	<artifactId>target-platform-configuration</artifactId>
	<version>${tycho-version}</version>
	<configuration>
		<target>
			<artifact>
				<groupId>org.xtext.example.mydsl</groupId>
				<artifactId>org.xtext.example.mydsl.target</artifactId>
				<version>${project.version}</version>
			</artifact>
		</target>
		<environments>
			<environment>
				<os>macosx</os>
				<ws>cocoa</ws>
				<arch>x86_64</arch>
			</environment>
			<environment>
				<os>win32</os>
				<ws>win32</ws>
				<arch>x86_64</arch>
			</environment>
			<environment>
				<os>linux</os>
				<ws>gtk</ws>
				<arch>x86_64</arch>
			</environment>
		</environments>
		<dependency-resolution>
			<extraRequirements>
				<requirement>
					<type>eclipse-plugin</type>
					<id>org.eclipse.xtext.logging</id>
					<versionRange>1.2.15</versionRange>
				</requirement>
				<!-- to get the org.eclipse.osgi.compatibility.state plugin if the target 
					platform is Luna or later. (backward compatible with kepler and previous 
					versions) see https://bugs.eclipse.org/bugs/show_bug.cgi?id=492149 -->
				<requirement>
					<type>eclipse-feature</type>
					<id>org.eclipse.rcp</id>
					<versionRange>0.0.0</versionRange>
				</requirement>
				<!-- to force the same version of jdt.compiler.apt
					and jdt.core (for xtext-maven-plugin) -->
				<requirement>
					<type>eclipse-plugin</type>
					<id>org.eclipse.jdt.compiler.apt</id>
					<versionRange>0.0.0</versionRange>
				</requirement>
			</extraRequirements>
		</dependency-resolution>
	</configuration>
</plugin>

That's my favorite one: it does not touch the projects and solves the problem at the right level (that is, in Maven/Tycho POM), it works for all versions. Again the Xtext wizard can generate that, as it generates the POMs.

@cdietrich
Copy link
Member

cdietrich commented Jun 21, 2021

hmm i have no clue where the generator depends on jdt.core. maybe to solve some transitive emf.codegen?
should it also depend on tool and apt?

i also wonder if there is another tycho solution to the fragment problem.

@cdietrich
Copy link
Member

we simply should stop all the backwards compatibility crap ....

@cdietrich
Copy link
Member

@LorenzoBettini is it guaranteed that the tycho and non tycho deps are ordered in a certain way?

@LorenzoBettini
Copy link
Contributor Author

@LorenzoBettini is it guaranteed that the tycho and non tycho deps are ordered in a certain way?

@cdietrich I'm answering this one first, and then later to the other questions:

As far as I know, Maven creates a classpath by first inserting the runtime dependencies of the plugin, the ones in the <dependencies section and then the actual compile dependencies of the plugin itself. Thus, it first inserts in the classpath the dependencies of org.xtext.example.mydsl. Since we are in a Tycho build and since org.xtext.example.mydsl is in the same reactor, then org.xtext.example.mydsl is treated as an Eclipse bundle, so it uses the TP (as I said in the beginning, you have no problem in a pure Maven build, unless org.xtext.example.mydsl's POM has a Maven dependency on jdt.core). That's a part of the of dependency collection obtained with -X (by the way, note the p2.eclipse-plugin:org.eclipse.emf.codegen, I'll get back in another comment):

[INFO] --- xtext-maven-plugin:2.25.0:generate (default) @ org.xtext.example.mydsl.example ---
[DEBUG] Dependency collection stats:
[DEBUG] org.eclipse.xtext:xtext-maven-plugin:jar:2.25.0
[DEBUG]    org.xtext.example.mydsl:org.xtext.example.mydsl:jar:1.0.0-SNAPSHOT:runtime
[DEBUG]       p2.eclipse-plugin:com.google.guava:jar:30.1.0.v20210127-2300:system
[DEBUG]       p2.eclipse-plugin:com.google.inject:jar:3.0.0.v201605172100:system
...
[DEBUG]       p2.eclipse-plugin:org.eclipse.emf.codegen:jar:2.22.0.v20210420-0623:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.emf.common:jar:2.22.0.v20210319-0732:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.jdt.core:jar:3.26.0.v20210609-0549:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.jdt.launching:jar:3.19.200.v20210326-1452:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.text:jar:3.12.0.v20210512-1644:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.emf.codegen.ecore:jar:2.26.0.v20210506-1425:system
...
[DEBUG]       p2.eclipse-plugin:org.eclipse.e4.ui.swt.gtk:jar:1.1.100.v20210108-1832:system
[DEBUG]    org.eclipse.xtext:org.eclipse.xtext.builder.standalone:jar:2.25.0:compile
[DEBUG]       org.eclipse.xtext:org.eclipse.xtext.xbase:jar:2.25.0:compile
[DEBUG]       org.eclipse.xtext:org.eclipse.xtext.common.types:jar:2.25.0:compile
[DEBUG]          org.ow2.asm:asm-commons:jar:9.1:compile (scope managed from default) (version managed from default)
...
[DEBUG]       org.eclipse.jdt:org.eclipse.jdt.core:jar:3.23.0:compile (scope managed from default) (version managed from default)
...
[DEBUG]       org.eclipse.jdt:org.eclipse.jdt.compiler.apt:jar:1.3.1100:compile (scope managed from default) (version managed from default)
[DEBUG]       org.eclipse.jdt:org.eclipse.jdt.compiler.tool:jar:1.2.1000:compile (scope managed from default) (version managed from default)

Note that the Eclipse bundle jdt.core does NOT depend on jdt.compiler.apt, which is a fragment. In fact, org.eclipse.xtext:org.eclipse.xtext.builder.standalone has an explicit Maven dep on jdt.compiler.apt (introduced here if I understand correctly eclipse/xtext-xtend#116).

Of course, the Eclipse bundle jdt.core (3.26) is inserted first, so when org.eclipse.jdt:org.eclipse.jdt.core:jar:3.23.0:compile is inspected it's too late. org.eclipse.jdt:org.eclipse.jdt.compiler.apt:jar:1.3.1100:compile is instead inserted because it's not already there (note the old version of compiler.apt).

So it's not really a question of tycho deps and non-tycho deps ordered differently: the classpath is created by Maven in the above order.

For example, as an extreme borderline solution, just as an example, if you force org.eclipse.xtext:org.eclipse.xtext.builder.standalone (see https://github.com/LorenzoBettini/xtext-maven-plugin-example/tree/explicit-xtext.builder.standalone-dep) as the first dependency

<plugin>
	<groupId>org.eclipse.xtext</groupId>
	<artifactId>xtext-maven-plugin</artifactId>
	<version>${xtextVersion}</version>
	<executions>
		<execution>
			<goals>
				<goal>generate</goal>
			</goals>
		</execution>
	</executions>
	<configuration>
		<languages>
			<language>
				<setup>org.xtext.example.mydsl.MyDslStandaloneSetup</setup>
				<outputConfigurations>
					<outputConfiguration>
						<outputDirectory>src-gen</outputDirectory>
					</outputConfiguration>
				</outputConfigurations>
			</language>
		</languages>
	</configuration>
	<dependencies>
		<dependency>
			<!--
			Redundant (since xtext-maven-plugin depends on that)
			but it forces jdt deps to be taken from Maven instead of
			from the TP -->
			<groupId>org.eclipse.xtext</groupId>
			<artifactId>org.eclipse.xtext.builder.standalone</artifactId>
			<version>${xtextVersion}</version>
		</dependency>
		<dependency>
			<groupId>org.xtext.example.mydsl</groupId>
			<artifactId>org.xtext.example.mydsl</artifactId>
			<version>${project.version}</version>
		</dependency>
	</dependencies>
</plugin>

then everything works, because the old jdt.core and jdt.compiler.apt both appear first:

[INFO] --- xtext-maven-plugin:2.25.0:generate (default) @ org.xtext.example.mydsl.example ---
[DEBUG] Dependency collection stats:
[DEBUG] org.eclipse.xtext:xtext-maven-plugin:jar:2.25.0
[DEBUG]    org.eclipse.xtext:org.eclipse.xtext.builder.standalone:jar:2.25.0:compile
[DEBUG]       org.eclipse.xtext:org.eclipse.xtext.xbase:jar:2.25.0:compile
[DEBUG]       org.eclipse.xtext:org.eclipse.xtext.common.types:jar:2.25.0:compile
[DEBUG]          org.ow2.asm:asm-commons:jar:9.1:compile (scope managed from default) (version managed from default)
...
[DEBUG]       org.eclipse.jdt:org.eclipse.jdt.core:jar:3.23.0:compile (scope managed from default) (version managed from default)
...
[DEBUG]       org.eclipse.jdt:org.eclipse.jdt.compiler.apt:jar:1.3.1100:compile (scope managed from default) (version managed from default)
[DEBUG]       org.eclipse.jdt:org.eclipse.jdt.compiler.tool:jar:1.2.1000:compile (scope managed from default) (version managed from default)
[DEBUG]    org.xtext.example.mydsl:org.xtext.example.mydsl:jar:1.0.0-SNAPSHOT:runtime
[DEBUG]       p2.eclipse-plugin:com.google.guava:jar:30.1.0.v20210127-2300:system
[DEBUG]       p2.eclipse-plugin:com.google.inject:jar:3.0.0.v201605172100:system
...
[DEBUG]       p2.eclipse-plugin:org.eclipse.emf.codegen:jar:2.22.0.v20210420-0623:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.emf.common:jar:2.22.0.v20210319-0732:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.jdt.core:jar:3.26.0.v20210609-0549:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.jdt.launching:jar:3.19.200.v20210326-1452:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.text:jar:3.12.0.v20210512-1644:system
[DEBUG]       p2.eclipse-plugin:org.eclipse.emf.codegen.ecore:jar:2.26.0.v20210506-1425:system
...
[DEBUG]       p2.eclipse-plugin:org.eclipse.e4.ui.swt.gtk:jar:1.1.100.v20210108-1832:system

@LorenzoBettini
Copy link
Contributor Author

we simply should stop all the backwards compatibility crap ....

@cdietrich but is it really a problem of backwards compatibility? That's not related to Java 8 and Java 11... or I don't understand what you mean

@LorenzoBettini
Copy link
Contributor Author

hmm i have no clue where the generator depends on jdt.core. maybe to solve some transitive emf.codegen?
should it also depend on tool and apt?

First of all, from what I understand, the jdt.core optional dependency in xtext.xtext.generator is completely useless since we never use that in the sources, but only in some wizard strings: https://github.com/eclipse/xtext-core/search?l=Java&q=jdt.core

So we could simply remove that.

However, as you say, even by removing that we still get it transitively from emf.codegen:

image

Funny thing: jdt.core is shown to depend on jdt.compiler.apt but it actually doesn't: as I said, jdt.compiler.apt is a fragment of jdt.core

i also wonder if there is another tycho solution to the fragment problem.

as far as I know, if you want a pure Tycho solution, the target-platform-configuration extra dependency is the way to go. Remember, that's the same "trick" we use to drag jdt.launching.macosx for UI tests on macOS. In that case, we use as an extra dependency the whole jdt.feature, because specifying the fragment alone would not work: it would make the build fail when the build is executed on a non macOS system. So that's a slightly different situation but the idea is the same.

@cdietrich
Copy link
Member

see aalso eclipse/xtext-core#1722

@LorenzoBettini
Copy link
Contributor Author

PING! Before 2.26 this should be fixed...

@cdietrich
Copy link
Member

am not sure if pinging will help. wait for feedback for months now

@cdietrich cdietrich added this to the Release_2.26 milestone Nov 22, 2021
@kthoms
Copy link

kthoms commented Nov 22, 2021

I know, I know. Shame on me. I am completely under load with my customer also since months, and it has zero to do with anything Xtext, Eclipse, Maven. Whenever I think there is light at the end of the tunnel then it just the train. 😔

@LorenzoBettini
Copy link
Contributor Author

@cdietrich @kthoms OK, let me know what I can do now... I think I've already done what I could do up to now...

@cdietrich
Copy link
Member

cdietrich commented Nov 23, 2021

i still did not fully understand the problem.
i also have no idea how all the fragment stuff works with tycho.
i also dont know why org.eclipse.xtext.xtext.generator is there at all insolved.
i also dont understand why mydsl pulls only half the stuff.
so the goal would be to teach tycho to pull the fragments?

i also assume this affects all xbase/common types deps that pull jdt

@LorenzoBettini
Copy link
Contributor Author

I did my best to explain the problem and the solution...
let's see whether @kthoms can comment something... looks like you trust him more than me

@cdietrich
Copy link
Member

:( this arguing makes me want to quit.

@LorenzoBettini
Copy link
Contributor Author

it also makes me want to quit as well

@kthoms
Copy link

kthoms commented Dec 8, 2021

I'll try to catch up here finally.

First, I could not reproduce the actual problem so far. I have checked out your example project, and it worked out of the box. Then I changed to Target Platform 2021-12 and also to Tycho 2.4.0, both worked.

However, I got your main point here. The risk is that a fragment contributes to the same package as the host bundle, but with different signatures, because they do not match (jdt.core, jdt.compiler.apt). To avoid this somehow force that when jdt.core is a project dependency, the fragment is also. From the log I see is that these dependencies are pulled in by org.eclipse.xtext.builder.standalone, which has an optional dependency on jdt.core.

Your proposals will work around this issue by making the fragment and jdt.core transitive a project dependency. I like the extraRequirement more than additionalBundles, since it is more visible and only managed in the parent pom.

The same issue will arise when another dependency configured as dependency for xtext-maven-plugin does pull in a fragment for a host bundle that comes from the target platform. That is an unlikely, but possible situation. In this case the client has to do the same trick. The JDT dependency is the most prominent example here, though.

The drawback is more visible and not obvious configuration, and additional usually unneeded project dependencies. However, still better than breaking by default.

@LorenzoBettini
Copy link
Contributor Author

@kthoms thank you for the feedback!

It's quite strange you could not reproduce the original problem... I'll check it myself in the next few days.

In any case, please tell me how you'd like to proceed.

@kthoms
Copy link

kthoms commented Dec 9, 2021

From my side I would be fine with the "extraRequirements" approach. This should be generated by the wizard. At least in the wizard code there should be a comment why this is added, since one year later no-one would know and that this is "just" a workaround.

@LorenzoBettini
Copy link
Contributor Author

@kthoms OK, so I'll create a PR in the next few days following the approach of extraRequirement, which we used in the past, and leave a comment there. (We also do something similar for UI tests in the macOS environment for jdt.launch feature)

@cdietrich
Copy link
Member

any update here?

@LorenzoBettini
Copy link
Contributor Author

@cdietrich I'll try to provide a PR as soon as possible.

@cdietrich
Copy link
Member

@LorenzoBettini should i go with M3 without?

@LorenzoBettini
Copy link
Contributor Author

@cdietrich I can't assure to work on that in the weekend or on the next week, so I'd say yes. For sure I'll work on that before the final release. For that there's still time, right?

@cdietrich
Copy link
Member

it depends if we release on 31st or postpone it

@cdietrich
Copy link
Member

@LorenzoBettini any update?

@LorenzoBettini
Copy link
Contributor Author

@cdietrich I'll try to address that by the end of the week

@cdietrich
Copy link
Member

@LorenzoBettini please be aware we wont postpone release on 28th

@LorenzoBettini
Copy link
Contributor Author

@cdietrich sorry I don't understand, do you mean after 28th?

@cdietrich
Copy link
Member

if we dont have a patch in time for the release on feb 28th we will release without a patch

LorenzoBettini added a commit to eclipse/xtext-core that referenced this issue Feb 16, 2022
LorenzoBettini added a commit to eclipse/xtext-core that referenced this issue Feb 16, 2022
@LorenzoBettini
Copy link
Contributor Author

@cdietrich PR eclipse/xtext-core#1833 created

cdietrich added a commit to eclipse/xtext-core that referenced this issue Feb 21, 2022
conflicts with maven dependencies when using tycho in xtext-maven-plugin
see eclipse/xtext-maven#146

Signed-off-by: Christian Dietrich <[email protected]>
@cdietrich
Copy link
Member

workaround in place. final solution still needs discussion

@cdietrich cdietrich self-assigned this Feb 21, 2022
@cdietrich
Copy link
Member

workaround in place.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants