Community
Participate
Working Groups
As a result of Bug 327966, there are a couple of new features, a plugin and a product in PDE build land. I have added them to the core.map file and tagged. plugin@org.eclipse.pde.build.compiler.adapter feature@org.eclipse.pde.build.feature feature@org.eclipse.pde.build.product.feature The features should show up in the p2 repo and the product should show up on the Eclipse download page. As with the OSGi starter kit that we just setup, only the major platforms need to be provided. Win32/64, Linux 32/64 and Mac 32/64. These should go in a new section just before the PDE Runtimes on the download page with the following heading/description PDE Builders The PDE Builders are self-contained, executable PDE Build configurations that can be used to build OSGi and Eclipse-based systems. They can also be used as the basis for more sophisticated build systems that run tests, do API scans, publish builds etc. This product has the same requirements as the OSGi starter kit in that the executables should be branded (pdebuild.exe in this case) and really only the console executable is relevant. I did not include the windows executables however in this setup as that was not a sustainable approach. Ideally we would ahve a pde build solution for creating products that just have the console launcher.
Hi Jeff Two questions 1) What do you want the name of these zips to be? 2) There aren't any branding icons in the pde.build.product feature, I guess we'll just use the default?
Created attachment 184305 [details] patch
Created attachment 184306 [details] mylyn/context/zip
(In reply to comment #1) > 1) What do you want the name of these zips to be? PDE-builder-<version>-<platform>.zip sounds good. > 2) There aren't any branding icons in the pde.build.product feature, I guess > we'll just use the default? The default (eclipse) icon is fine. We don't have an image to use for PDE build AFAIK. For the most part these are command line tools anyway.
Created attachment 184308 [details] patch
org.eclipse.jdt.core.compiler.batch isn't a bundle that is included in the map files but it is included in the pde.build feature. It's constructed from the ecj jars and thus not available in the build until after the build has been signed and the repo created. The fact that it is includes the compiler adapter means that the product has be assembled after the repo has been signed and created which take a lot of build script calisthenics. Would it be possible to just include jdt.core bundle in the org.eclipse.pde.build.feature?
unfortunately not. jdt.core drags in a lot of other stuff and considerable work has gone into making this all go just on ECJ. Note that related to this the JDT folks have made the jdtCompilerAdapter.jar (included in jdt.core) into a bundle that we can consume in this product/feature setup. That jar/bundle will come out of the normal build embedded in jdt.core but will need to be extracted and published as an individual bundle. So, would it make sense to do think of / implement the build in two steps. Effectively do the normal build that produces and publishes all the bundles that will be needed as well as many/most of the features. Then a second "build" that really just assembles these into deliverables. This second step may generate some additional features but generally would just be building/publishing products and then assembling them. Adding Andrew to the fun since we have talked about some of this kind of thing in the past and he may have some insight
Yes, I know how to implement it :-) I just wanted to confirm with you because this will take more work than I anticipated.
> Yes, I know how to implement it :-) Of course you do! I did not mean to imply otherwise. > I just wanted to confirm with you because > this will take more work than I anticipated. Let me take a pass on the current feature/product before you spend too much more time. The changes around jdtCompilerAdapter.jar make the pde.build.compiler.adapter bundle obsolete. So there will likely be two things that need special treatment. the ecj bundle needs to be available and the ..jdt.core.compiler.adapter bundle (jdtCompilerAdapter.jar) needs to be extracted from the jdt.core bundle and made available. I took a look at the latest nightly build and it seems that the jdtCompilerAdapter.jar in jdt.core has the right plugin.xml but the MANIFEST.MF is wrong. It may have been overwritten by the zip/jar process as it is not an OSGi manifest as set out in bug 327899 comment 15. I'll reopen that bug as it needs to be addressed for this to all work. In the mean time, I'll update the features etc in anticipation of that problem being resolved.
Created attachment 184436 [details] tweaked compiler adapter bundle I updated the pde.build.feature to use the JDT compiler adapter rather than our own and purged the PDE supplied adapter from the repo. Attached is a jdtCompilerAdapter.jar extracted from a recent jdt.core bundle and fixed up to have the right manifest info (to work around the JDT build problem). We should be good to go now.
Regarding, comment #10, do you want me to include this version of the adapter in the repo as a bundle that doesn't change?
No. That attachment was provided for folks wanting to mess with this prior to the JDT build structure being fixed. The jdtCompilerAdapter.jar included in the jdt.core bundle of the current builds is correct and should be used. you can now ignore the attached compiler adapter.
Created attachment 185135 [details] patch
Created attachment 185147 [details] patch
Created attachment 185271 [details] patch
Created attachment 185426 [details] patch
Created attachment 185511 [details] patch
Created attachment 185595 [details] patch
Created attachment 185596 [details] patch
Created attachment 185597 [details] patch
Created attachment 185608 [details] patch
Jeff, noticed this in the org.eclipse.equinox.p2.extras.feature's feature.xml <includes id="org.eclipse.equinox.p2.core.feature" version="0.0.0"/> <requires> <import feature="org.eclipse.equinox.core.feature" version="1.0.0" match="compatible"/> <import feature="org.eclipse.equinox.p2.core.feature" version="1.0.0" match="compatible"/> </requires> Why is the org.eclipse.equinox.p2.core.feature both included and required?
(In reply to comment #22) > Why is the org.eclipse.equinox.p2.core.feature both included and required? That must be a bug - there is no value in requiring a feature that is already included.
I'm going to remove the require statement and leave the include statement.
Created attachment 185673 [details] patch to fix build page presentation
Fixed. This wasn't really fun to implement. Adding nested jars from other bundles to the repo and then assembling products. Ugly Ant code. Released for N20101221-2000.
Thanks Kim. Not sure about the require/include thing. That must have been a leftover from previous structures. Including is the way to go here I think.
Reopening. I'm going to revert this fix because it's causing compile errors in the build. I tried to fix this yesterday but due to a variety of issues, it didn't work. So I'm reverting it so we can have a clean integration build.
Created attachment 186823 [details] patch to revert
The pde builder zips were removed because it was causing compile errors. I spent a huge amount of time on trying to build these zips properly and it didn't work. Since Jeff is no longer involved with Eclipse, I assume I can close the request for the pde build zips.