On 09/19/2013 01:22 AM, Igor Fedorenko
wrote:
Iteration
#2: Make it useful without breaking anything
* Implement a
compatible-version-with-same-content strategy, comparing
content of bundles with same x.y.z (ignoring qualifier) and
replace by
baseline when there is no change worth producing a new bundle.
At the end of this iteration, we should be able to consume
"compatible"
bundles from baseline just by setting
baselineStrategy="compatible-version-with-same-content"
Now thinking about this, what you want may require massive changes
to
how dependency resolution works and it may be a good idea to wait
until
we fix move dependency resolution to proper build phase.
Currently all build fully qualified versions are determined and
all
dependencies are resolved before the actual build starts. If later
during the build project artifacts are replaced with baseline and
get
different fully qualified version, I this there is currently no
mechanism to propagate the new version of other projects that
depend on
this one.
As you foresaw, I'm facing this issue.
Changing the qualifier breaks dependency management since it
introduces new p2 artifacts that are not the same as computed
earlier. Early dependency resolution seems necessary to decide the
order in which one modules should be built, but the concrete
resolution of the p2 IU for reactor modules could probably happen
later. We could think of introducing "lazy dependencies" in
early-computed target platform which are good enough to resolve
build order but for which one concrete artifact/qualifier is meant
to be computed while starting to build the module depending on them.
|