Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » headless buckminster and plugin dependencies
headless buckminster and plugin dependencies [message #516273] Tue, 23 February 2010 13:27 Go to next message
Bernhard Merkle is currently offline Bernhard MerkleFriend
Messages: 88
Registered: July 2009
Member
Hi,

I have a project which has depdencies to e.g. emf 2.5 plugins.

Now my eclipse installation (with buckminster) has emf 2.5.0 and everything builds fine, also the buckminster task for p2 updatesite build fine.

Now if I run the same in my headless-buckminster, (which has no emf 2.5.0) I of course get build/compile errors.

question:
- what is the right approach to cope with this

1. make emf2.5.0 (and all other required plugins) part of my version control ? and check them out ?
if yes, how can I achive that in a simple way ?

or
2. install emf2.5.0 also in the headless-bucky installation ?
which seem to end in a duplicated installation and anyway this build is not 100% reproducable as it is not under version control.

is there another method to handle this in a elegant way,

thanks,
Berni.
Re: headless buckminster and plugin dependencies [message #516310 is a reply to message #516273] Tue, 23 February 2010 15:13 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2509
Registered: July 2009
Senior Member
Hi,
The elegant way is to use a target platform.

You want to use the same TP in your IDE and headless.
This enables you to build your code against a precise definition (as
opposed to building it against whatever you happen to have installed in
your IDE).

As an example, a TP is very useful when using say 3.6 to develop against
3.5.

Buckminster can materialize a TP, and it can materialize from p2
repositories - so there is no need to check things into your SCM, nor do
you need to install them into your headless buckminster.

There has been several posts in this newsgroup with
examples/questions/answers how to do this. Also check out the
Buckminster Book (from the Buckminster download site).

In short - you need to decide on where the TP is (a folder). Best
practice is to keep this folder in the workspace so it can be
inspected). You then need a buckminster MSPEC (materialization
specification) that directs the components found in the resolution to
different locations (the workspace, or the TP of your choice).

Continuing on this path, you may want to also want to create your own p2
repository with the things you require in the TP (unless you want to
rely on external update sites to keep the things you need for as long as
you need them). To easily create the p2 repository you can use the b3
aggregator (a.k.a the buckminster aggregator) to author, run, and
validate your p2 repository composition.

Regards
- henrik

On 2/23/10 2:27 PM, Bernhard Merkle wrote:
> Hi,
>
> I have a project which has depdencies to e.g. emf 2.5 plugins.
>
> Now my eclipse installation (with buckminster) has emf 2.5.0 and
> everything builds fine, also the buckminster task for p2 updatesite
> build fine.
>
> Now if I run the same in my headless-buckminster, (which has no emf
> 2.5.0) I of course get build/compile errors.
>
> question:
> - what is the right approach to cope with this
>
> 1. make emf2.5.0 (and all other required plugins) part of my version
> control ? and check them out ? if yes, how can I achive that in a simple
> way ?
>
> or 2. install emf2.5.0 also in the headless-bucky installation ?
> which seem to end in a duplicated installation and anyway this build is
> not 100% reproducable as it is not under version control.
>
> is there another method to handle this in a elegant way,
>
> thanks,
> Berni.
>
Re: headless buckminster and plugin dependencies [message #516377 is a reply to message #516310] Tue, 23 February 2010 19:09 Go to previous messageGo to next message
Bernhard Merkle is currently offline Bernhard MerkleFriend
Messages: 88
Registered: July 2009
Member
Hi Henrik

thank for your help.

Essentially what i am searching is something like ant ivy or the maven stuff. Download all required plugins and then save them e.g. into version control.
On our build server i can not access public p2 repos, because we are behind a firewall and the build user has no access outside..

So Target Platform seems to be the similar eclipse solution like ant ivy and others A bit a term confusion: Eclipse wiki talks about Target Definitions ? With TD i define a TP ? right ?

According to the Bucky book i also can specify the local directory.
However when i create my.target TD in eclipse i can not find this.
Where can I specify this ?
Also the necessary plugins should be computed via the PDE plugin dependency facility.

I think the org.eclipse.buckminster.tutorial is missing this (TD or TP) as an example. (and hence lots of questions in the newsgroup). Maybe it would make sense to add this ?
And add your description from below to the BuckyBook ?

thanks again for your great help,
Berni.

PS. the eclipse newsgroup is a pain to search sorry, even with the google search box. Is there any trick ?
Re: headless buckminster and plugin dependencies [message #516443 is a reply to message #516377] Tue, 23 February 2010 23:13 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2509
Registered: July 2009
Senior Member
On 2/23/10 8:09 PM, Bernhard Merkle wrote:
> Hi Henrik
>
> thank for your help.
> Essentially what i am searching is something like ant ivy or the maven
> stuff. Download all required plugins and then save them e.g. into
> version control.
> On our build server i can not access public p2 repos, because we are
> behind a firewall and the build user has no access outside..
>
We have users that use the b3 aggregator to create a blessed repository
inside the firewall. The aggregator is capable of making sure there are
no external references to other update sites etc.

> So Target Platform seems to be the similar eclipse solution like ant ivy
> and others A bit a term confusion: Eclipse wiki talks about Target
> Definitions ? With TD i define a TP ? right ?
>
A target platform is a configuration similar to the IDE's configuration
of "itself", but used to "build against" as opposed to "running". Maybe
I am using the wrong term and Target Definition is the right/official one...

> According to the Bucky book i also can specify the local directory.
> However when i create my.target TD in eclipse i can not find this.
> Where can I specify this ?
> Also the necessary plugins should be computed via the PDE plugin
> dependency facility.
>
> I think the org.eclipse.buckminster.tutorial is missing this (TD or TP)
> as an example. (and hence lots of questions in the newsgroup). Maybe it
> would make sense to add this ?
> And add your description from below to the BuckyBook ?
>
The Buckminster demo from ESE 09 used a target platform definition
located in the workspace. (Don't have the URL's handy, but they are
shown in the presentation).

Agree that more documentation is needed in this area.

But, start by reading about MSPEC and what it can do.

> thanks again for your great help,
> Berni.
>
> PS. the eclipse newsgroup is a pain to search sorry, even with the
> google search box. Is there any trick ?

I use Thunderbird as a news reader, and I use the search there.

Regards
- henrik
Re: headless buckminster and plugin dependencies [message #516465 is a reply to message #516443] Wed, 24 February 2010 01:56 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 02/24/2010 12:13 AM, Henrik Lindberg wrote:
> A target platform is a configuration similar to the IDE's configuration
> of "itself", but used to "build against" as opposed to "running". Maybe
> I am using the wrong term and Target Definition is the right/official
> one...
>
I think both are valid. A target definition defines a target platform.

>> PS. the eclipse newsgroup is a pain to search sorry, even with the
>> google search box. Is there any trick ?
>
> I use Thunderbird as a news reader, and I use the search there.
>
I found that one prerequisite for the search to work well in Thunderbird is that the newsgroup folder is marked as
available for off-line use.

- thomas
Re: headless buckminster and plugin dependencies [message #517237 is a reply to message #516377] Fri, 26 February 2010 16:26 Go to previous message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Bernhard!


So far we have just used a downloaded Eclipse as target platform. It's then provided to Buckminster using the preference org.eclipse.buckminster.pde.targetPlatformPath with the path to the installation as the value. It's described on page 187 in the Bucky book, how it's actually handled. We keep the target platform in a "safe place" to make sure we always use the same. Smile

We're in the process right now to change to using a target definition that we make ourselves. We have the same problem with firewalls, so I have made an Aggrgator model like this:

<?xml version="1.0" encoding="UTF-8"?>
<aggregator:Aggregator xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/buckminster/2009/aggregator" label="Galieo RCP Target">
<configurations/>
<contributions label="Galileo">
<repositories location="http://download.eclipse.org/releases/galileo" categoryPrefix="galileo">
<metadataRepository href=" p2:http://download.eclipse.org/releases/galileo#//@metadataR epository"/>
</repositories>
</contributions>
</aggregator:Aggregator>

Then I headed home and sucked down the full Galileo site to my disk (all 2600 plugins). Smile Next step is to create a target definition that uses this update site and only takes the parts we use. This is my first version:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.5"?>

<target name="galileo">
<locations>
<location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit">
<unit id="org.eclipse.emf.sdk.feature.group" version="2.5.0.v200906151043"/>
<repository location="file:/C:/rcp_target/rcp_target-3.5.0/"/>
</location>
</locations>
</target>

We will surely keep the bloated Galileo mirror in a safe place in case we need to use new features in the future and want to be sure they are compatible with what we already use.

Next step is to import it with headless Buckminster using importtargetdefinition. I'm still undecided whether we want to do this for every build or if we want to make a template workspace, but it's probably worth considering the altter.

/John
Previous Topic:buckminster invoke action... Dialog
Next Topic:org.eclipse.swt not found when building on Mac OS X
Goto Forum:
  


Current Time: Sun Sep 26 10:32:53 GMT 2021

Powered by FUDForum. Page generated in 0.02322 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top