> Ciao Guys :)
> After you @ll helped me understand the profile question I went on
> started work on a patch repository generator.
> There is one issue I'd like you to clarify:
> - Does p2 support updating single IUs?
Yes, p2 supports updating single IUs. However,
if you have a group that has a feature-style inclusion that specifies an
exact version, you won't be able to update the single IU without modifying
the group as well. We would really like to move towards groups specifying
a wider range on their dependencies, so that individual IUs could be patched
without also patching all the associated groups. Assuming the group specified
a wider range on an IU, you would be able to update that single IU as long
as it remained inside the group's range.
> An example: A profile containing these IUs:
> Group "A" (1.0.0) -> IU "B" (1.0.0)
> Group "A" (1.0.0) -> IU "C" (1.0.0)
> Now, if I want to send out a patch for IU "C", let's say
I want to move
> it to "1.0.0.patch", do I need to patch "Group A"
> updating it to "188.8.131.52" and updating the requires statement
to the IU B
> but leaving IU C untouched? In theory, I could make the relation
> "group->IU" loose enough so that an update of IU "C"
> would still fulfil the requirement of the group but thinking about
> discussion we had last time, IUs that were explicitely installed and
> ones that were only installed because of requirements, I'm not sure
> that's gonna work out. Patch repositories would be really small if
> those IUs that really were modified were included but my gut tells
> need some form of group to ship them...
As you say, this will work if group A has a dependency
on C with a range such as [1.0.0,1.1.0) that includes the patched version
as well as the original version. Currently if you are using features
the range will be exact: [1.0.0,1.0.0], so the group needs to be modified.
> Another reason for asking this is because I'm wondering if there is
> similar concept to pre-p2 "patch features" (or feature patches,
> remember the exact name), where one would send out a completely new
> feature that patched another feature with some content, mapping this
> concept to p2 would look like this:
> Group "A" (1.0.0) -> IU C (1.0.0)
> Group "D" (1.0.0) patches Group "A" (1.0.0)
> Group "D" (1.0.0) -> IU C (1.0.0.patch)
> Is this supported? What version(s) of IU "C" would be living
> profile in this scenario?
> I've seen the concept of a PatchingIU in the code, but this looks
> feature-centric, so I'm guessing this is a legacy concept not applicable
> to Groups etc..
Yes, it is supported. This is used in p2 to
implement Update Manager patch features, but is the same mechanism we intend
to use as the patch mechanism in p2 going forward. The underlying patch
infrastructure in p2 is slightly more flexible than UM patch features,
and may evolve further in the next release.