[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Mirroring a subset of a p2 repo

You might consider B3 Aggregator (http://www.eclipse.org/modeling/emft/b3/documentation/)
I'm attaching a .b3aggr file which shows how to mirror "org.eclipse.rcp.feature.group 4.2.1" with all its dependencies from http://download.eclipse.org/releases/juno/ into its own p2 repository.

-----Original Message-----
From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Mikhail Kalkov
Sent: Freitag, 14. Dezember 2012 12:29
To: P2 developer discussions
Subject: Re: [p2-dev] Mirroring a subset of a p2 repo

Oh, I've forgot to explain why other mirroring options don't suite me. Mirroring a complete repository is just a waste of resources, especially, given that I may have to mirror several complete repositories and be forced to specify exact versions of certain features in test configuration so that a too-new version from a second repo doesn't overshadow the desired one from the first repo.

On the other hand, listing all required IUs explicitly is quite tedious and I don't want to do this because my features have to work in certain Eclipse configurations, e.g. the baseline is Eclipse Platform 3.6.1 + CDT 7.0, and it additionally has to work in EPP for C/C++ developers 3.7.2 and EPP for C/C++ developers 3.8.0. I might not use all features from these configurations right now, but I want my tests to start failing if I introduce some code, which is incompatible with one of these configurations. Thus, I want to run my unit tests against three different target platforms.

By the way, speaking of using p2 publisher to produce a p2 repo from runnable, I would be happy if I could specify a profile, from which it would produce a p2 repo without loosing any metadata. However, I am not sure if any metadata (e.g., touchpoint instructions) is really lost in the chain (p2 repo) --p2.director--> (runnable) --p2.featuresAndBundlesPublisher--> (p2 repo).


----- Original Message -----
From: "Mikhail Kalkov" <mikhail.kalkov@xxxxxxxxxxxxxx>
To: "P2 developer discussions" <p2-dev@xxxxxxxxxxx>
Sent: Friday, December 14, 2012 11:58:28 AM
Subject: [p2-dev] Mirroring a subset of a p2 repo

Hi p2,

I want to mirror a subset of a p2 repo, or to be more precise, to mirror one or more root IUs and all their (transitive) dependencies. The use case is to produce a local p2 repo, which I can use as a target platform for unit testing. p2 director does something very similar, but in addition to downloading the artifacts, it also installs them. PDE Build actually does support runnable eclipse installations as target platforms, but we use Tycho, which only supports p2 repositories as target platforms.

I've tried to use p2 mirror task, but it seems that one has to explicitly include/exclude IU or otherwise everything is mirrored. There is no support for recursively resolving and adding dependencies. On the other hand, p2 director can automatically resolve all the dependencies and download them together with the root IU, but there seem to be no way to skip IU installation.

What I have so far come up with is to first run p2 director to create an installation which includes all the bundles I want and only them, and after it to run p2 features and bundles publisher to create metadata from plugins/ and features/ directories in this installation. However, this looks like a kludge. Does anybody know if there is an easier and better way to achieve my goal? Shall I file an issue to add this function either to p2 mirror or to p2 director? Finally, in general what are advantages and drawbacks of using a p2 repo instead of a runnable installation as a target platform, form p2 point of view?

Kind regards, 
Mikhail Kalkov 

Purple Scout AB 
Software Developer

Address: Kyrkogatan 20-22, SE-41110 Gothenburg, Sweden
Phone:   +46 (0) 732 - 051405
E-mail:  mikhail.kalkov@xxxxxxxxxxxxxx
Web:     www.purplescout.se

p2-dev mailing list
p2-dev mailing list

Attachment: PartlyMirror.b3aggr
Description: PartlyMirror.b3aggr