Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Questions on doing "feature patch builds" with Tycho

My 0.02$ about multiple target platforms... Tycho, starting with version 0.17.0 [1], allows one to specify multiple target platforms [2], which are independently resolved and *merged*, whereas PDE only lets a user select one target platform at a time [3]. Also, "Each module has its own target platform, although with the normal configuration inheritance in Maven, the target platform configurations are usually the same across multiple modules." [4] In other words, target platforms are defined per-module, not per reactor, and it is possible to modularize them.


Kind regards,
Mikhail Kalkov

On Sat, Feb 8, 2014 at 2:17 AM, Pascal Rapicault <pascal@xxxxxxxxxxxxx> wrote:
What I've done in the past is setup a standalone build that build the patch and all the plugins, and produce an update site. Then my product build includes the feature patch and gets it from the previously built repo.

On 07/02/2014 11:29 AM, David M Williams wrote:
I'm trying to produce some "feature patches" with Tycho, and while I've read of some issues, and read some advice, I'm wondering if someone can confirm or recommend "the best way" to accomplish it ... or confirm if it is impossible! Seems much of what I've found "searching the net" is fairly old, and wondering if there have been improvements?   (I've discussed some of my issues/approaches in Bug 427242 ).

My first thought was that since the build we are trying to "patch" already exists in a p2 repository, I could simply use .target files, configured in the target-platform-configuration so the new bundles being built could get already built "pre-reqs" from there ... and still build the things we said were new and should be re-built. But, this didn't seem to work, easily. As if there was confusion, in Tycho, if it should rebuild something, or just re-use what was in target configuration.

Sound right? Known bug/limitation?

Second, I could sort of get that approach to partially work by carefully specifying things from the target that were not being re-built so only lower level, true "prereqs" would come from there ... but then ran into trouble trying to do things with "more than one Git repository". I _think_ the problem might be related to having some "circular dependencies" (across repositories) so it was impossible to specify "only pre-reqs".  After much tedious effort, I got to the point where the "stumbling" point was in the patch feature, where we say "patch feature requires original feature version 1234". If I did not include "1234" in the list of prereqs, it'd say "not found". If I did include it, then it would "drag along" all its original bundles and they would not be re-built.

Sounds familiar? Known issue? Is there some "trick" to specify the version of the feature to patch? (such as use "0.0.0")? Or could I have been make a simple mistake?

At any rate, it sounded like, from comments in Bug 427242 that perhaps the only way to do "patch features" is to do one run, building everything, and actually "installing" results in local repo. Then do a second run, that did not start with a clean slate, but simply "assembled" what was built and installed the first time.

Is it true this is the recommended pattern in Tycho to produce "feature patches"?

= = = = = = = = = = =

While experimenting with the various approaches, I thought of some solutions (that didn't seem to work) and thought I'd ask some more specific questions, to determine if I was off-base, or simply making a mistake or not doing it quite right? (with the goal of understanding Tycho/Maven better).

Do (or can)  target-platform-configurations have a limited scope? So for example, I could have a different .target file for each feature (or repository) I am building patches for?
I get the impression not, that there is only one, used for everything ... or else, I do not know how to specify "scope".

Even if only one "target-platform-configuration", can the .target files be changed from one point to another ... or are they too "additive" and no way to replace what was specified previously?

= = = = = = = = = = = =

Thanks for any advice or pointers to examples,

tycho-user mailing list

tycho-user mailing list

Back to the top