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

Bug 351384

Summary: Generate features doesn't appear to use contextQualifiers
Product: [Eclipse Project] PDE Reporter: Ian Bull <irbull>
Component: BuildAssignee: pde-build-inbox <pde-build-inbox>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: aniefer, gunnar, kim.moir, mknauer
Version: 3.7   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Ian Bull CLA 2011-07-07 00:21:56 EDT
While building a product from git, I hit the following:


/home/irbull/yoxos/git/build/yoxos/com.yoxos.yim.releng/yoxos.launcher.product/productBuild.xml:69: java.lang.IllegalArgumentException: invalid qualifier: origin/master
        at org.osgi.framework.Version.validate(Version.java:195)
        at org.osgi.framework.Version.<init>(Version.java:161)
        at org.eclipse.pde.internal.build.site.BuildTimeSite.findFeature(BuildTimeSite.java:303)
        at org.eclipse.pde.internal.build.site.BuildTimeSite.findFeature(BuildTimeSite.java:288)
        at org.eclipse.pde.internal.build.FeatureGenerator.createFeature(FeatureGenerator.java:477)
        at org.eclipse.pde.internal.build.FeatureGenerator.generate(FeatureGenerator.java:163)
        at org.eclipse.pde.internal.build.tasks.FeatureGeneratorTask.run(FeatureGeneratorTask.java:54)
        at org.eclipse.pde.internal.build.tasks.FeatureGeneratorTask.execute(FeatureGeneratorTask.java:36)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)


It appears that it's trying to set the qualifier to origin/master. I have a context qualifier set. If I pull from tags and keep the context qualifier I get the context qualifier (as expected). It appears this just happens when we first try to generate the root feature to represent the product.
Comment 1 Andrew Niefer CLA 2011-07-11 11:18:58 EDT
As a workaround, I believe you can use just "master" when building from head instead of "origin/master".  The fetch factory should take care of fetching so that the local repo is in sync with the origin
Comment 2 Ian Bull CLA 2011-07-11 12:38:10 EDT
Yep, I tracked this a big last week. Here's is what (I think) is happening. When we create the root (temporary) feature to represent the product, we just use .TAG for the qualifier (where TAG might be HEAD, MASTER, whatever). Since this feature is only used a build time, it doesn't matter.

However, origin/master is not a very good qualifier because of the '/'.

Andrew's right, you can just use master, however, it appears we do a 'fetch' when we update the scmCache. This means that during your 2nd build, origin/master and master don't point to the same thing. The workaround is to remove the scmCache and use 'master', this will re-clone the repository and master and origin/master will be in sync.
Comment 3 Lars Vogel CLA 2018-12-03 09:06:32 EST
Currently we are not actively enhancing PDE build anymore. Therefore, I close this bug as WONTFIX. 

Please reopen, if you plan to provide a fix.