Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 347825

Summary: Build fails when target platform contains a feature patch
Product: z_Archived Reporter: Tobias Oberlies <t-oberlies>
Component: TychoAssignee: Tobias Oberlies <t-oberlies>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: igor
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
ITest demonstrating the issue none

Description Tobias Oberlies CLA 2011-05-31 12:20:10 EDT
If the target platform contains a feature and a feature patch for that feature, the build fails.

Example:
- Feature A contains org.eclipse.core.runtime in version 3.4
- Feature patch B (for feature A) updates the version of the included org.eclipse.core.runtime to version 3.5
The build fails when I try to include both feature A and feature patch B in a feature built by Tycho.

The reason for the failure seems to be, that the p2 dependency resolver excludes 3.4 from the target platform (because it is not needed with the patch present), but then Tycho dependency walker code fails. Apparently the dependency walker code is not available of feature patches.

I remember that I had once proposed a patch to remove the depencency walker usage in case of the p2 resolver [1]. It is not really needed, and if it fixes this issue, I'll probably apply the patch.


Related issues:
- TYCHO-580 [2] is a different issue. I only tried to include a feature patch built elsewhere. TYCHO-580 is about building patches with Tycho.
- TYCHO-228 [3] looks like the same issue. Since we now track bugs here, TYCHO-228 should be closed as duplicate.

[1] https://issues.sonatype.org/browse/TYCHO-554
[2] https://issues.sonatype.org/browse/TYCHO-580
[3] https://issues.sonatype.org/browse/TYCHO-228
Comment 1 Igor Fedorenko CLA 2011-05-31 15:35:08 EDT
FYI, there is a separate issue with building feature patches using tycho. I have local branch against 0.11.1, but need to port it for 0.13 before I can apply.
Comment 2 Tobias Oberlies CLA 2011-06-01 06:53:57 EDT
(In reply to comment #1)
> FYI, there is a separate issue with building feature patches using tycho. I have
> local branch against 0.11.1, but need to port it for 0.13 before I can apply.
AFAIK this is TYCHO-580. If you plan to fix this issue, please open a new bug here in Bugzilla so that we will be able to generate the release notes for 0.13.0 from Bugzilla.
Comment 3 Tobias Oberlies CLA 2011-06-01 08:40:33 EDT
Created attachment 197086 [details]
ITest demonstrating the issue

This integration test demonstrates the problem. The build results in the following message:

java.lang.RuntimeException: Could not resolve plugin org.eclipse.core.runtime_3.4.0.v20080512; Path to dependency:
  eclipse-feature:featurePatch.external.combine.feature:1.0.0.qualifier: org.eclipse.tycho.core.osgitools.DefaultReactorProject@24561250
  eclipse-feature:org.eclipse.example.original_feature:1.0.0: C:\Users\D051585\.m2\repository\p2\org\eclipse\update\feature\org.eclipse.example.original_feature\1.0.0\org.eclipse.example.original_feature-1.0.0.jar

	at org.eclipse.tycho.core.ArtifactDependencyVisitor.newRuntimeException(ArtifactDependencyVisitor.java:42)
	at org.eclipse.tycho.core.ArtifactDependencyVisitor.missingPlugin(ArtifactDependencyVisitor.java:33)
	at org.eclipse.tycho.core.osgitools.AbstractArtifactDependencyWalker.traversePlugin(AbstractArtifactDependencyWalker.java:207)
	at org.eclipse.tycho.core.osgitools.AbstractArtifactDependencyWalker.traverseFeature(AbstractArtifactDependencyWalker.java:85)
	at org.eclipse.tycho.core.osgitools.AbstractArtifactDependencyWalker.traverseFeature(AbstractArtifactDependencyWalker.java:170)
	at org.eclipse.tycho.core.osgitools.AbstractArtifactDependencyWalker.traverseFeature(AbstractArtifactDependencyWalker.java:89)
	at org.eclipse.tycho.core.osgitools.AbstractArtifactDependencyWalker.traverseFeature(AbstractArtifactDependencyWalker.java:170)
	at org.eclipse.tycho.core.osgitools.EclipseRepositoryProject$1.walk(EclipseRepositoryProject.java:60)
	at org.eclipse.tycho.core.osgitools.AbstractArtifactBasedProject.resolve(AbstractArtifactBasedProject.java:42)
	at org.eclipse.tycho.core.resolver.DefaultTychoDependencyResolver.resolveProject(DefaultTychoDependencyResolver.java:101)
	at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:91)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:268)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:151)
	... 11 more
Comment 4 Igor Fedorenko CLA 2011-06-05 09:24:16 EDT
(In reply to comment #2)
> (In reply to comment #1)
> > FYI, there is a separate issue with building feature patches using tycho. I have
> > local branch against 0.11.1, but need to port it for 0.13 before I can apply.
> AFAIK this is TYCHO-580. If you plan to fix this issue, please open a new bug
> here in Bugzilla so that we will be able to generate the release notes for
> 0.13.0 from Bugzilla.

Opened Bug 348326. Btw, I found git log more reliable/convenient way to generate release notes.
Comment 5 Tobias Oberlies CLA 2011-06-07 04:46:22 EDT
This issue is resolved with 09d71aa [1]. This commit also includes the attached integration test.

[1] https://github.com/sonatype/sonatype-tycho/commit/09d71aa2f895d94bb002b7e6c6bdf299a740c224