Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 423677 - Splash screen shows version 4.3.0 after installing Eclipse SDK 4.3.1 into minimal Eclipse 4.3.1
Summary: Splash screen shows version 4.3.0 after installing Eclipse SDK 4.3.1 into min...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.3.1   Edit
Hardware: PC Windows 7
: P2 normal (vote)
Target Milestone: 4.3.2   Edit
Assignee: David Williams CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-10 06:00 EST by Michael Becker CLA
Modified: 2014-03-02 11:56 EST (History)
7 users (show)

See Also:


Attachments
output of 'grep' on fresh M-build (in 'tychobuild' folder). (17.45 KB, text/plain)
2014-01-15 15:16 EST, David Williams CLA
no flags Details
patch to change select (repository) artifact IDs to "4.3.2" (4.14 KB, patch)
2014-01-16 09:32 EST, David Williams CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Becker CLA 2013-12-10 06:00:12 EST
After installing the Eclipse SDK 4.3.1 into a minimal Eclipse 4.3.1 the splash screen shows 4.3.0 as version. This is confusing.

Steps to reproduce:

1) download, unzip and start "Platform Runtime Binary" from http://download.eclipse.org/eclipse/downloads/drops4/R-4.3.1-201309111000/
2) install Eclipse SDK
3) restart
3) see splash screen -> shows 4.3.0.M20130911-1000 as version
Comment 1 David Williams CLA 2014-01-14 23:16:49 EST
Need to investigate still ... not sure what would cause this, but if still an issue, should try to fix for Kepler SR2. 

I'll try to reproduce.
Comment 2 David Williams CLA 2014-01-15 15:14:29 EST
CCing a few of the seasoned veterans, to ask some questions to: 

1: Do you happen to know where the version in the splash screen comes from? (The version in the about box is correct). 

2: Any chance were we supposed to remove that, when we started putting the word "Kepler" (or "Luna") on the splash screen? 

I ask the latter since I don't see it at all on on my Linux machine, and I see it flash up only briefly on my Windows machine (did not try Mac) ... and on Windows, the first part is truncated (I may have large fonts) but ends up looking like ".3.0.Mxxxxxx" instead of "4.3.0.Mxxxxxx". But, I did confirm the effect, on Windows. But the originator, Michael, either has very good eyes ... or a slow machine :)   

And, for the first question, I've looked all over the source code, and found only one spot that mentions "4.3.0", and that's the .eclipseproduct in root of Eclipse Platform (Eclipse SDK does not have a root folder ... I guess supposed to reuse the one from "Platform"?)

BUT, if I look at what's actually built, it is "all over the place", in p2 metadata "setProperty ... buildId ... " which then, I guess only on "update"? ends up in the configuration area? 

So, its kind of confusing. I can "experiment", correcting that one .eclipseproduct file to see if that fixes what's "built", but I'm just surprised that that one thing would have such a specialized effect, and that it would still show the correct value on a fresh install.  

My worst fear is that Tycho "infers" the value from the "artifact id" ... which would mean a larger change ... but, we'll cross that bridge after we get to it. 

I was just wondering if it happened to come from the executable fragments, or something? If anyone knows off the top of their head.
Comment 3 David Williams CLA 2014-01-15 15:16:19 EST
Created attachment 239035 [details]
output of 'grep' on fresh M-build (in 'tychobuild' folder).

This grep illustrates what I mean by "4.3.0" appearing "all over the place, in what is built.
Comment 4 David Williams CLA 2014-01-16 00:41:27 EST
I did update .eclipseproduct to have version=4.3.2 ... but that didn't have any effect on built artifacts (but ... should still be updated, IMHO).  

I understand this pretty well now ... but, not sure of the best way to fix ... or, maybe doesn't matter and we can just pick any of the possibilities. 

What's going on: 

The platform.product file, and the sdk.product file, define the "configuration" property as follows: 

<property name="eclipse.buildId" value="${unqualifiedVersion}.${buildQualifier}" />

For example in context, see 

http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse.platform.releng.tychoeclipsebuilder/platform/platform.product#n174

As far as I can see, these are the only two "products" that define eclipse.buildId in their configuration. 

Now, the complicated part: ${unqualifiedVersion} is a "Tycho" variable, in this context, and according to 

http://eclipse.org/tycho/sitedocs/tycho-packaging-plugin/plugin-info.html

<quote>
Unqualified project version is assigned to unqualifiedVersion project property. Unqualified version is calculated based on ${project.version} and can be used for any Tycho project (eclipse-update-site, eclipse-application, etc) and regular maven project.
</quote>

Since we never set the value of "unqualifiedVersion" (nor "project.version") I think this means it simply takes the "artifactId" ... which we've "left" as 4.3.0 throughout, for convenience. 

So, alternatives: 

1. change 
<property name="eclipse.buildId" value="${unqualifiedVersion}.${buildQualifier}" />
to 
<property name="eclipse.buildId" value="${buildId}" />

2. change the "artifact id" of our "products" to be accurate, "4.3.2", instead of "4.3.0". 

I sort of prefer this approach, since it is more accurate "from a maven point of view", and since we might also have to do that for our main "repository artifact" (i.e. there may be some "hidden" uses of "unqualifiedVersion"), judging from the content.xml files. But, this change might effect others, who "depend on" eclipse product? ... if there is such a thing (i.e. they might depend on hard coded "4.3.0"? 

I think as long as we do not change the "parent pom" artifact ID, there would be no "ripple effect" ... (which was the reason we were reluctant to do it, to begin with.). 


3. It sounds like, from the URL above, for tycho-packaging-plugin, there is some way to "configure" this value ... but seems to be no good example, and I think that's mostly for configuring "qualifier" part, not unqualified part.
Comment 5 David Williams CLA 2014-01-16 00:47:13 EST
Thanh, I don't know if you wrote the original "product definitions" to use 

<property name="eclipse.buildId" value="${unqualifiedVersion}.${buildQualifier}" />

but wondering if you  have any advice on which of the three alternatives to use ... or, if there are other alternatives I don't "see". 

Thanks. 

If no one has any other thoughts, I'll start "slowly", and change artifacts IDs of the two "products" first ... and see if that, miraculously, takes care of everything? (And if not, just try a few more artifact IDs here and there ... as long as none of them serve as "parents" to any of our other artifacts.
Comment 6 David Williams CLA 2014-01-16 09:32:01 EST
Created attachment 239063 [details]
patch to change select (repository) artifact IDs to "4.3.2"

In my test runs, it seems that changing artifact ID of select artifacts to "version 4.3.2" suffices to get the "setProperty" in the meta data to correctly set "4.3.2". 

I decided to change each of the places in "aggregator" where the artifact is of type "eclipse-repository". I'm not sure each of them is immediately required, but seemed like a "best practice". For example, 

    <artifactId>org.eclipse.rcp.id</artifactId>
    <version>4.3.2-SNAPSHOT</version>
    <packaging>eclipse-repository</packaging>

You can see in the patch, that the "eclipse-junit-tests.product" did not have any version specified ... but, from what I've read, every artifact should have one ... so ... I see no harm in fully specifying each. 

Unless better ideas come forward, I'll commit this post RC1, so by RC2 it should show up as changed. 

If anyone knows of any side effects of this eclipse.buildId, in the config.ini file, please point them out. I'm assuming for now its just use as a simple label, and does not play a central role in "updates" or "reverts". 

I notice in the "unconfigure" action, it's set to "nothing", so testing "revert" might be worthwhile, to make sure nothing odd happens ... but if it did, seems like that would have been a separate issue we'd have anyway.
Comment 7 Thanh Ha CLA 2014-01-16 09:44:10 EST
(In reply to David Williams from comment #5)
> Thanh, I don't know if you wrote the original "product definitions" to use 
> 

No it was already there before I started on the project.


(In reply to David Williams from comment #6)
> Created attachment 239063 [details]
> patch to change select (repository) artifact IDs to "4.3.2"

This patch should fix the issue. The "unqualified" number comes from the version field in the pom.xml in the same directory.

If we want to save some duplication we can also omit the pom.xml's artifact Version and it will inherit the one between the <parent></parent> tags. For example:

    <parent>
        <groupId>eclipse.platform.releng.tychoeclipsebuilder</groupId>
        <artifactId>eclipse.platform.releng.tychoeclipsebuilder</artifactId>
        <version>4.4.0-SNAPSHOT</version>
    </parent>

    <artifactId>org.eclipse.sdk.ide</artifactId>
    <packaging>eclipse-repository</packaging>



In this case since the groupID is also omitted it also inherits the groupId too.
Comment 8 David Williams CLA 2014-01-16 09:53:17 EST
Adding Ian and Pascal to CC, since if anyone should know of side effect of eclipse.buildId in config.ini during updates or reverts, it should be them. 

As an aside, it appears that the value is wrong in initial materialized product as well ... not sure how "4.3.1" was displayed in original case ...  so still many Tycho mysteries. 

= = = = =

Thanks for the comments Thanh. 
I think I'll leave separately defined for now. I'm not actually positive they should always be exactly the same ... though admit in practice they probably will be for a long time to come.
Comment 9 David Williams CLA 2014-01-16 12:45:56 EST
Main fix committed with 

http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?h=R4_3_maintenance&id=01fc682907bcdb64bd397311fe8305fd1666acea

Then decided to leave a nice wording comment on one instance: 

http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?h=R4_3_maintenance&id=c316961bf4bb11d3c629baeb80615c7c133f1b29

Should be ready to verify/test with next week's M-build. (1/22 ... unless we decide to rebuild again :/
Comment 10 David Williams CLA 2014-01-16 21:38:53 EST
(In reply to David Williams from comment #9)
> Main fix committed with 
> 
> http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/
> commit/?h=R4_3_maintenance&id=01fc682907bcdb64bd397311fe8305fd1666acea
> 
> Then decided to leave a nice wording comment on one instance: 
> 
> http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/
> commit/?h=R4_3_maintenance&id=c316961bf4bb11d3c629baeb80615c7c133f1b29
> 
> Should be ready to verify/test with next week's M-build. (1/22 ... unless we
> decide to rebuild again :/

This fix may be involved with build failure of 
http://download.eclipse.org/eclipse/downloads/drops4/M20140116-1730/

Even though it "worked locally" ... it might interact bug 425922 since this fix was in "poms only", the artifacts in "tycho builder" may have to be "touched" to change qualifiers? (Even though they are all sort of "technical" artifacts, not really delivered.)

I'd like to try touching each artifact, and if that doesn't work, will revert this whole set, until bug 425922 is resolved.
Comment 11 Thanh Ha CLA 2014-01-16 22:35:13 EST
(In reply to David Williams from comment #10)
> This fix may be involved with build failure of 
> http://download.eclipse.org/eclipse/downloads/drops4/M20140116-1730/
> 

I'm seeing this in the logs "Installation of product org.eclipse.platform.sdk for environment hpux/gtk/ia64 failed" but I'm not sure what's causing it.
Comment 12 David Williams CLA 2014-01-16 23:04:00 EST
(In reply to Thanh Ha from comment #11)
> (In reply to David Williams from comment #10)
> > This fix may be involved with build failure of 
> > http://download.eclipse.org/eclipse/downloads/drops4/M20140116-1730/
> > 
> 
> I'm seeing this in the logs "Installation of product
> org.eclipse.platform.sdk for environment hpux/gtk/ia64 failed" but I'm not
> sure what's causing it.

My theory comes from the previous build, actually, because besides the comparator errors showing the launcher fragments needed to be touched ... 

http://download.eclipse.org/eclipse/downloads/drops4/M20140116-0900/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt

also shows some funky stuff with that funky "rcp.config" feature we have: 


21.  eclipse.platform.releng.tychoeclipsebuilder/rcp.config
   classifier-root.gtk.linux.x86_64: different
      eclipse: different
   classifier-root.gtk.linux.s390x: different
      eclipse: different
   classifier-root.gtk.aix.ppc64: different
      eclipse: different
   classifier-root.gtk.linux.s390: different
      eclipse: different
   classifier-root.gtk.linux.ppc64: different
      eclipse: different
   classifier-root.gtk.hpux.ia64: different
      eclipse: different
   classifier-root.gtk.linux.x86: different
      eclipse: different
   classifier-root.gtk.linux.ppc: different
      eclipse: different
   classifier-root.gtk.aix.ppc: different
      eclipse: different
   classifier-root.gtk.solaris.x86: different
      eclipse: different
   classifier-root.gtk.solaris.sparc: different
      eclipse: different
   no-classifier: different
      META-INF/ECLIPSE_.RSA: different
    The main artifact has been replaced with the baseline version.
    The following attached artifacts have been replaced with the baseline version: [root.gtk.linux.x86_64, root.gtk.linux.s390x, root.win32.win32.x86_64, root.cocoa.macosx.x86, root.gtk.aix.ppc64, root.gtk.linux.s390, root.gtk.linux.ppc64, root.gtk.hpux.ia64, root.gtk.linux.x86, root.gtk.linux.ppc, root.gtk.aix.ppc, root.gtk.solaris.x86, root.win32.win32.x86, root.gtk.solaris.sparc, root.cocoa.macosx.x86_64]

So ... I don't think we always have to touch that feature, when the fragments change ... but, I'm wondering if "both changes at once" is throwing (the "products", changing artifact ID versions, and the fragments also changing? 

Kind of a long shot, but I think easy enough to test. 

Its not easy to find, in the 350 MB log, but that message is is in the "failed build" log too ... 

[INFO] Artifact comparison detailed log directory /opt/public/eclipse/builds/4M/gitCache/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/target/artifactcomparison
[WARNING] MavenProject: org.eclipse.rcp.configuration:org.eclipse.rcp.configuration:1.0.0-SNAPSHOT @ /opt/public/eclipse/builds/4M/gitCache/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/pom.xml: baseline and build artifacts have same version but different contents
   classifier-root.gtk.linux.x86_64: different
      eclipse: different
   classifier-root.gtk.linux.s390x: different
      eclipse: different
.... 

I suspect we should "disable" that comparison/swap operation for this "configuration feature" ... doesn't really make sense, for it (or, any of the other "tycho builder artifacts").
Comment 13 David Williams CLA 2014-01-19 17:46:52 EST
I've restored the fixes made before the other issues with "executables" last week. 

http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?h=R4_3_maintenance&id=60c941ae96976d0b5325059127701410afd1fd27

Before I 'touch' rcp.config, I'll do a test build, and see if it shows up with errors in comparator log ... or if that was an issue with executables problem.
Comment 14 David Williams CLA 2014-01-19 20:20:09 EST
(In reply to David Williams from comment #13)
> I've restored the fixes made before the other issues with "executables" last
> week. 
> 
> http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/
> commit/?h=R4_3_maintenance&id=60c941ae96976d0b5325059127701410afd1fd27
> 
> Before I 'touch' rcp.config, I'll do a test build, and see if it shows up
> with errors in comparator log ... or if that was an issue with executables
> problem.

In my test build, there was no issue with "rcp.config", but there was one oddity in comparator log ... not sure exactly why this happens ... I'll have to study it ... but doesn't cause me concern, since, off-hand, looks to be more of a "false alarm" than anything of substance. 

7.  rt.equinox.framework/features/org.eclipse.equinox.executable.feature
   no-classifier: different
      META-INF/ECLIPSE_.RSA: present in baseline only
      META-INF/ECLIPSE_.SF: present in baseline only
      build.properties: present in baseline only
      build.xml: present in baseline only
    The main artifact has been replaced with the baseline version.
    The following attached artifacts have been replaced with the baseline version: [root.gtk.linux.x86_64, root.gtk.linux.s390x, root.win32.win32.x86_64, root.cocoa.macosx.x86, root.gtk.aix.ppc64, root.gtk.linux.s390, root.gtk.linux.ppc64, root.gtk.hpux.ia64, root.gtk.linux.x86, root.gtk.linux.ppc, root.gtk.aix.ppc, root.gtk.solaris.x86, root.win32.win32.x86, root.gtk.solaris.sparc, root.cocoa.macosx.x86_64]
Comment 15 David Williams CLA 2014-01-20 03:58:29 EST
(In reply to David Williams from comment #2)

> I ask the latter since I don't see it at all on on my Linux machine, and I
> see it flash up only briefly on my Windows machine (did not try Mac) ... and
> on Windows, the first part is truncated (I may have large fonts) but ends up
> looking like ".3.0.Mxxxxxx" instead of "4.3.0.Mxxxxxx". But, I did confirm
> the effect, on Windows. But the originator, Michael, either has very good
> eyes ... or a slow machine :)   

They say confession is good for the soul ... so wanted to admit ... the "time visible" is largely a function of how large a workspace you are opening. In my initial checks, they were empty workspace and did just fly by, faster than my ability to see them. But, once I started using on "real" workspaces, it is visible a long long time ... some of my workspaces take 10 or 20 seconds to load, and in those cases, it is very prominent, which makes it a much worse (and embarrassing) problem. 

I just didn't want to leave anyone with the wrong impression. 

Thanks again for the report. I would have likely never noticed it, since I nearly always run with splash screen off. 
Thanks!
Comment 16 Dani Megert CLA 2014-01-30 12:23:24 EST
Verified in M20140129-0800.