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

Bug 491626

Summary: test and move to Tycho 0.25
Product: [Eclipse Project] Platform Reporter: David Williams <david_williams>
Component: RelengAssignee: David Williams <david_williams>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: akurtakov, daniel_megert, jan.sievers, Lars.Vogel, lshanmug, markus.kell.r, mat.booth
Version: 4.6   
Target Milestone: 4.6 M7   
Hardware: PC   
OS: Linux   
Whiteboard:

Description David Williams CLA 2016-04-13 16:18:01 EDT
+++ This bug was initially created as a clone of Bug #480588 +++

I did not see the fixes we needed for Tycho 0.24.1 (related to "cross-repository dirty trees") but believe we can set the check for dirty working trees to "ignore" (at least for local or test builds) and then test Tycho 25. They did change the way feature qualifiers are calculated that *might* cause some initial grief, but otherwise have several features that would allow us to remove some of our "custom" processing, such as us creating out own XZ files post build. 

https://wiki.eclipse.org/Tycho/Release_Notes/0.25
Comment 1 Jan Sievers CLA 2016-04-14 03:37:10 EDT
(In reply to David Williams from comment #0)

> I did not see the fixes we needed for Tycho 0.24.1 (related to
> "cross-repository dirty trees") 

bug 480951 should be fixed in Tycho 0.25.0
Comment 2 Alexander Kurtakov CLA 2016-04-14 11:53:33 EDT
David, does comment 1 mean we can jump to Tycho 0.25 for Neon?
Comment 3 David Williams CLA 2016-04-14 16:06:48 EDT
(In reply to Jan Sievers from comment #1)
> (In reply to David Williams from comment #0)
> 
> > I did not see the fixes we needed for Tycho 0.24.1 (related to
> > "cross-repository dirty trees") 
> 
> bug 480951 should be fixed in Tycho 0.25.0

Thanks, Jan. I could have sworn I looked and didn't see it fixed. 

(In reply to Alexander Kurtakov from comment #2)
> David, does comment 1 mean we can jump to Tycho 0.25 for Neon?

Not my itself. First I have to make sure it works for us. :) 

So far, it mostly worked, but got an error at the end that said 

[ERROR] Failed to execute goal org.eclipse.tycho.extras:tycho-p2-extras-plugin:0.25.0:mirror (mirror-org.eclipse.rcp.source) on project eclipse.platform.repository: Error during mirroring: Could not find IU [org.eclipse.equinox.executable, 0.0.0] in any of the source repositories

I suspect that was because that feature is having it's qualifier computed slightly differently. Earlier in log I had:

[WARNING] MavenProject: org.eclipse.equinox.feature:org.eclipse.equinox.executable:3.6.300-SNAPSHOT @ /data/shared/eclipse/buildsmirror/4I/gitCache/eclipse.platform.releng.aggregator/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml: baseline and build artifacts have same version but different contents


= = = = 

That's that I meant by "initial trouble" ... we may have to "touch" some featues to make sure their qualifiers are incremetend and unique. (And then once they are, hope they stay that way :)
Comment 4 David Williams CLA 2016-04-15 16:54:21 EDT
Received this error again: 

Failed to execute goal org.eclipse.tycho.extras:tycho-p2-extras-plugin:0.25.0:mirror (mirror-org.eclipse.rcp.source) on project eclipse.platform.repository: Error during mirroring: Could not find IU [org.eclipse.equinox.executable, 0.0.0] in any of the source repositories 

And this time no warning about it being "swapped out" for an existing version, with the same qualifier. 

That made me read the message closer, and see it is complaining about mirroring eclipse.rcp.source. As far as I know, we have never had a source version for our "executable feature". I'll see if there is something I can "exclude" from source. 
(I think we already exclude all the "fragments" from source, but perhaps not the feature as a whole?)
Comment 5 David Williams CLA 2016-04-17 02:50:53 EDT
(In reply to David Williams from comment #4)
> Received this error again: 
> 
> Failed to execute goal
> org.eclipse.tycho.extras:tycho-p2-extras-plugin:0.25.0:mirror
> (mirror-org.eclipse.rcp.source) on project eclipse.platform.repository:
> Error during mirroring: Could not find IU [org.eclipse.equinox.executable,
> 0.0.0] in any of the source repositories 
> 
> And this time no warning about it being "swapped out" for an existing
> version, with the same qualifier. 
> 
> That made me read the message closer, and see it is complaining about
> mirroring eclipse.rcp.source. 

Turns out this error message was completely unrelated to "source". And technically not related to mirror-org.eclipse.rcp.source. That just happened to be the first occurrence where we tried to use "org.eclipse.equinox.executable". 

That feature, org.eclipse.equinox.executable, is an unusual "IU only" sort of feature that we create using XSL, and then "hack" into the middle of Tycho's normal process of creating repositories to add it to content.xml file. As part of that addition, we needed to also delete the existing content.jar. So, NOW, there is also a content.xml.xz file that did not have the tweak in it, hence subsequent steps that tried to use the repo failed to find it, since it was looking in content.xml.xz. 

Luckily, the cure was to simply also delete content.xml.xz file so that content.xml is the only source of metadata left. We will continue to jar it up, and then XZ compress later in the process. 

There is already a long-standing bug to remove or reduce the need for this XSL "hack" (bug 412709).  But for moving forward, adding to the hack seems prudent. 

I have tested locally, and 0.25.0 seems to work ok (with the additionally deletion) so will make the change to master and then do a test I-build on build machine to test if any features qualifiers seem to change in ways we would not expect. (I do not think they will). 

I have done one test build (also) with the "deletion" of content.xml.xz file still on Tycho 23.1, just to make sure that didn't "break" anything -- and it did not. As expected, since done in an "ant target" we just get the normal ant behavior of saying that file did not exist.
Comment 6 David Williams CLA 2016-04-17 11:11:15 EDT
Another consequence of moving to 0.25.0: 

I had read of course where Java 8 was now required to "run Tycho" at the 0.25.0 level. No problem there, we have been for a while. BUT, I see the job we had on Hudson to "deploy eclipse platform parent" failed, apparently because deploy job was using Java 7:

Caused by: java.lang.UnsupportedClassVersionError: org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant : Unsupported major.minor version 52.0

For full failed log, see 
https://hudson.eclipse.org/platform/job/deploy-eclipse-platform-parent-pom-4.6/285/console
Comment 7 David Williams CLA 2016-04-17 14:09:51 EDT
The test builds I have been doing indicate all is well, so will close this bug as fixed. 

One reminder, since we "skipped" Tycho 0.24, we can still, now, take advantage of new or fixed items in 0.24, so in addition to 

https://wiki.eclipse.org/Tycho/Release_Notes/0.25
interested parties should also re-read
https://wiki.eclipse.org/Tycho/Release_Notes/0.24 

A case in point I have removed the special 
<rootFolders> elements in our product definitions for the Mac since the need for that was fixed in Tycho 0.24.0.
Comment 8 David Williams CLA 2016-04-17 14:24:22 EDT
Removed bug 485646 from the "blocks" list since no longer true. 

Also removed bugs 420078, 490413, 480588, 488935 since our remaining dirt does not prohibit moving to Tycho 0.25.0.
Comment 9 David Williams CLA 2016-04-20 11:29:13 EDT
(In reply to David Williams from comment #7)

> 
> A case in point I have removed the special 
> <rootFolders> elements in our product definitions for the Mac since the need
> for that was fixed in Tycho 0.24.0.

One thing I've noticed is that not specifying the root folder element using "Eclipse.app" results in us getting "eclipse.app" instead: (lower case 'e'). 

The "bundle name" in the info.plist file is still upper cased "Eclipse", and it shows up in the finder as "Eclipse.app". 

I have tried with and without Java 6 installed on my system, and so far seems to work fine. 

Would be good though if other did some testing on the Mac before or during M7 to see if there is any need to put the "rootfolder" element back in order to get the upper cased Eclipse.app.
Comment 10 Lakshmi P Shanmugam CLA 2016-05-02 06:37:13 EDT
(In reply to David Williams from comment #9)
> (In reply to David Williams from comment #7)
> 
> > 
> > A case in point I have removed the special 
> > <rootFolders> elements in our product definitions for the Mac since the need
> > for that was fixed in Tycho 0.24.0.
> 
> One thing I've noticed is that not specifying the root folder element using
> "Eclipse.app" results in us getting "eclipse.app" instead: (lower case 'e'). 
> 
> The "bundle name" in the info.plist file is still upper cased "Eclipse", and
> it shows up in the finder as "Eclipse.app". 
> 
> I have tried with and without Java 6 installed on my system, and so far
> seems to work fine. 
> 
> Would be good though if other did some testing on the Mac before or during
> M7 to see if there is any need to put the "rootfolder" element back in order
> to get the upper cased Eclipse.app.

I'm not sure if this could be causing Bug 492807.