Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Resolution question
Resolution question [message #787597] Tue, 31 January 2012 14:18 Go to next message
Wim Jongman is currently offline Wim Jongman
Messages: 276
Registered: July 2009
Senior Member

Hi,

I have a product with a bunch of features. I am using a feature (not my own) in this product that _depends_ on a plugin and does not include it.

When I do a import with a cquery, everything is found and placed in my target platform directory, including that plugin. Then the next step is to create a product from these features.

During this process, the director complains:

"Cannot complete the install because one or more required items could not be found"

So what I do is I add the missing plugin to my top level feature and run the build again. Then I bump against the next one and do the same process again until the product is build.

Since the build takes 15 minutes to complete, this is time consuming.

I can see the plugin in my target directory but not in buckminster.out which is used as the repository for the director.

Is there a way to let buckminster also save the dependent plugin in buckminster.out? Or is there another way to fix this?

Thanks in advance,

Wim Jongman
Re: Resolution question [message #787895 is a reply to message #787597] Tue, 31 January 2012 23:52 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik Lindberg
Messages: 2499
Registered: July 2009
Senior Member
We typically have a top level feature that describes what we include in
the product, and we have a separate feature that describes what we want
to include in our p2 site.

IIRC You can use multiple sites when running the director if you don't
want to host everything in your own repository.

If you want to look at one of our setups, take a look at
cloudsmith/geppetto @ github. Look at the releng project for a place to
start.

Hope that helps?

Regards
- henrik

On 2012-31-01 20:18, Wim Jongman wrote:
> Hi,
>
> I have a product with a bunch of features. I am using a feature (not my
> own) in this product that _depends_ on a plugin and does not include it.
> When I do a import with a cquery, everything is found and placed in my
> target platform directory, including that plugin. Then the next step is
> to create a product from these features.
> During this process, the director complains:
> "Cannot complete the install because one or more required items could
> not be found"
>
> So what I do is I add the missing plugin to my top level feature and run
> the build again. Then I bump against the next one and do the same
> process again until the product is build.
> Since the build takes 15 minutes to complete, this is time consuming.
>
> I can see the plugin in my target directory but not in buckminster.out
> which is used as the repository for the director.
> Is there a way to let buckminster also save the dependent plugin in
> buckminster.out? Or is there another way to fix this?
>
> Thanks in advance,
>
> Wim Jongman
Re: Resolution question [message #788111 is a reply to message #787895] Wed, 01 February 2012 06:03 Go to previous messageGo to next message
Wim Jongman is currently offline Wim Jongman
Messages: 276
Registered: July 2009
Senior Member

Thanks Henrik

Yes, I see what you mean. Adding another repo to the director would do the trick. However, we want all dependencies in our site.p2 because of [1].

Just to be clear: this process of adding dependent "<requires/>" bundles in some additional feature is currently the way to do this?

It would be so cool if Buckminster could flag "<requires/>" bundles in some way in the log.

Regards,

Wim

[1]
We have a requirement to also ship the dependencies in a separate repos. This way we can ship this to customers that are not allowed to open up to the internet (and need to install our software in an Eclipse based product).
Re: Resolution question [message #788145 is a reply to message #788111] Wed, 01 February 2012 06:56 Go to previous message
Henrik Lindberg is currently offline Henrik Lindberg
Messages: 2499
Registered: July 2009
Senior Member
On 2012-01-02 12:04, Wim Jongman wrote:
> Thanks Henrik
>
> Yes, I see what you mean. Adding another repo to the director would do
> the trick. However, we want all dependencies in our site.p2 because of [1].
> Just to be clear: this process of adding dependent "<requires/>" bundles
> in some additional feature is currently the way to do this?
>
Have a "site-feature" that defines what you want to include in your p2
repository/site. Make it include your product's stuff, and everything
else you need from your target platform.

> It would be so cool if Buckminster could flag "<requires/>" bundles in
> some way in the log.
>
not afaik.

I typically look at the launch config - start by only adding the core of
the product, then press "add all required", then manually add all
optional things and fragments! If the launch is clean, I know I have
found everything required.

One concern is how you are going to handle updates. Each generated
repository will contain the exact set of things (and most importantly,
it does not contain the old things).

Thus if you simply replace the old repository with the new, it is not
possible for users to revert an update as the metadata for the old
version is nowhere to be found.

We solve that by having a composite repository where the repository for
each version is simply added to the aggregate. (From time to time we
prune it of versions we decide are of no value to revert to).

If you do this, you typically do *not* want each such repository to
contain all of the bundles from the target platform (which is something
big like Indigo or Juno). Instead you want to link that just once to the
platform repository/ies.

> We have a requirement to also ship the dependencies in a separate repos.
> This way we can ship this to customers that are not allowed to open up
> to the internet (and need to install our software in an Eclipse based
> product).
>
That is sort of how we do it too - our repo contains our product, and
the bundles from 3d parties that we do not want our users to have to
figure out where to get them - the rest comes from Eclipse. We do not
have all that many such bundles so we felt there was no need to have
these in a separate repo (to save space).

Hope that helps.
- henrik
Previous Topic:web start/jnlp/signing question
Next Topic:Problems with source feature generation/resolution
Goto Forum:
  


Current Time: Fri Aug 22 16:00:59 EDT 2014

Powered by FUDForum. Page generated in 0.01925 seconds