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
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
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?