|Re: [p2-dev] Publishing units with whole manifest|
On 2011-07-12, at 7:29 PM, Borislav Kapukaranov wrote:
From memory Tycho has not yet been updated to use p2 3.7.
What you've seen in BundlesAction is everything when it comes to generate an IU from a bundle. There is no flag to keep on including a complete manifest in the IU.
To be sure, do you intend to do this resolution before downloading the bundles?
If you don't, I have an easy answer, if you do, it is another story :)
Stepping back on why we stopped including the complete manifest in 3.7, this was mostly done to improve the memory consumption when loading large repos. Given that other changes have been done, it would worth checking what would be the cost of reintroducing the manifests. Aside from this I can think of several solutions:
1) adding a flag to the publisher for the IUs to always include the manifests, but this could cause an issue for the consumer since some IUs in the dependency chain of the one he wants to consume may not have the required manifest information.
2) adding back the manifest in every IU, but improve the parsing code to skip over the attribute and only load it on demand
3) enhancing the p2 requirement model to include the uses flag (so you would have the data in there and could continue on what I assume is inferring the manifest from the IU requirements) and having it be ignored by the p2 resolver for now.
4) change the code in BundlesAction to include the complete manifest if it has a uses clause.
At this point, I think that 2 and 4 are the most viable. 3 would work, but is heavier to coordinate since it will require a metadata change unless we decide to play some trick with how the uses clause is expressed (e.g. we could have it be a provided capability instead of a requirement but this is really ugly :) ).
Now two questions on the virgo aspect:
- How often does the resolution fail when the app is actually deployed?
- How will you handle the regions while invoking the resolver?