| Summary: | new PDE features and product | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Jeff McAffer <jeffmcaffer> | ||||||||||||||||||||||||||||||||
| Component: | Releng | Assignee: | Kim Moir <kim.moir> | ||||||||||||||||||||||||||||||||
| Status: | RESOLVED WONTFIX | QA Contact: | |||||||||||||||||||||||||||||||||
| Severity: | normal | ||||||||||||||||||||||||||||||||||
| Priority: | P3 | CC: | aniefer, daniel_megert, gunnar, kim.moir | ||||||||||||||||||||||||||||||||
| Version: | 3.7 | ||||||||||||||||||||||||||||||||||
| Target Milestone: | --- | ||||||||||||||||||||||||||||||||||
| Hardware: | PC | ||||||||||||||||||||||||||||||||||
| OS: | Mac OS X - Carbon (unsup.) | ||||||||||||||||||||||||||||||||||
| Whiteboard: | |||||||||||||||||||||||||||||||||||
| Bug Depends on: | 327899 | ||||||||||||||||||||||||||||||||||
| Bug Blocks: | |||||||||||||||||||||||||||||||||||
| Attachments: |
|
||||||||||||||||||||||||||||||||||
|
Description
Jeff McAffer
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. |