Community
Participate
Working Groups
Bug 396009 was about a specific case where the examples source feature did not adequately describe its contents. The root cause of that is that the source feature is not getting assigned a suffix. For example, from a recent run .. $ ls -1 features org.eclipse.sdk.examples_3.5.101.v20121211-005349-81FCDFcgFLWk78APnnpFnu5GoM.jar org.eclipse.sdk.examples.source_3.5.101.v20121211-005349.jar Notice the prefix part is the same ... when it was last touched in source repository. The suffix is made up by changes in contents, so if example bundles change, the suffix will change, but ... the source feature itself will forever keep the same version, since it has no suffix. v20121211-005349-81FCDFcgFLWk78APnnpFnu5GoM v20121211-005349 I just wanted to document the general issue here. I'm sure it can be fixed, but it may not be worth too much effort, since the Tycho based builds will use a non-suffix technique and thus should no have this problem. In the mean time, if a source bundle is touched, even if to fix a pom file, we need to remember to "touch" the feature so its qualifier will increment. I've "turned on" the comparator even for these examples, so should be easier to spot when it happens (though, won't be quite automatic, at least for a while).
Created attachment 225226 [details] comparing 3.8.x to 4.2.x After encountering this general issue a couple of times, in as many weeks, I at least looked at a little more detail at our "example repo" ... doing a diff of contents. I was surprised at how many changes there are (implied by the qualifier changes).
Created attachment 225227 [details] comparing 4.2.x to 4.3.x similar number of differences from 4.2.x to 4.3.x. If there are really "changes" being made to examples, that's fine, but, I wonder if the large number of changed qualifiers is an artifact, of some sort?, related to the way we build them, rather changes to the code itself.
Just some quick observations on what I've discovered about the "oddities" of examples. First, I've discovered there is a separate target for sdk.examples, even though they are also included in the master.feature (and built there). Apparently, the sdk.examples is called first, before the master target. Apparently this is done in the "buildEclipseSourceDrops" target, which we don't really deliver "source drops" any longer, but there is a comment in there that says <!--examples are required to pull sample doc into SDK doc plug-ins --> The "source drops" and "real build" are controlled by <antcall target="buildEclipseSourceDrops" /> <antcall target="buildMasterFeature" /> I'm sure I tried this when first taking over from Kim, but I'm tempted to try a few nightly build with "buildEclipseSourceDrops" commented out to determine what real effect it has; and what ever those are, if there is a better solution?
I'm going to try an experiment with tonight's Nightly build; put generateFeatureVersionSuffix=true in the build.properties of the sourceTemplateFeature of org.eclipse.sdk.examples-feature We do not do that elsewhere, instead relying on the build.properties in the buildConfig to have priority (and build.properties of sdk.examples DOES have it set) .... but, maybe there's some odd interaction with the "early checkout" of examples that requires it at the lower level. Seems worth a try, with little to hurt?
Never figured out this problem, but should no longer be an issue in Maven/Tycho based builds.