Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Oomph » Product Setup Update
Product Setup Update [message #1704158] Fri, 07 August 2015 18:08 Go to next message
Claudio Weiler is currently offline Claudio WeilerFriend
Messages: 31
Registered: August 2015
Location: Brazil
Member
On this FAQ question it refers to an "automatic" update?

So far I was able to update my product setup by going on menu Help > Perform Setup Tasks... There is a way to automatically update my Eclipse install as soon my product setup definition is updated and published?

Also, menu Help > Perform Setup Tasks... is always enabled that is normal operation? Should it be enabled only when there is tasks to be performed?


Thanks!!
Re: Product Setup Update [message #1704224 is a reply to message #1704158] Sun, 09 August 2015 06:31 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33258
Registered: July 2009
Senior Member
Claudio,

Comments below.

On 07/08/2015 8:08 PM, Claudio Weiler wrote:
> On this
> https://wiki.eclipse.org/Eclipse_Oomph_FAQ#Oomph_seems_to_update_my_IDE._Should_I_still_use_standard_.22Check_For_Updates....22.3F
> it refers to an "automatic" update?
>
> So far I was able to update my product setup by going on menu Help >
> Perform Setup Tasks...
Yes, that's the intended way.
> There is a way to automatically update my Eclipse install as soon my
> product setup definition is updated and published?
No, that would involve periodic checking, and we have no such polling
mechanism in place.
>
> Also, menu Help > Perform Setup Tasks... is always enabled that is
> normal operation?
Yes.
> Should it be enabled only when there is tasks to be performed?
There are a number of tasks where the cost of checking if a perform is
needed is extremely expensive. E.g., the p2 task, targlet task, and
target definition task. In this case it must essentially load all the
metadata repositories and do a full resolve just determine if that
results in any real updates. This could take several minutes depending
on the internet speed and the number of repositories involved.

So there are generally always tasks (at least a p2 task) to be performed.
>
>
> Thanks!!


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Product Setup Update [message #1704906 is a reply to message #1704224] Mon, 10 August 2015 14:28 Go to previous messageGo to next message
Claudio Weiler is currently offline Claudio WeilerFriend
Messages: 31
Registered: August 2015
Location: Brazil
Member
Hi Ed,

It appears that some tasks are executed on startup, see my post about SVN repositories.


Another questions that I forget in this context:

My product setup specifies a plugin with version range as [1.0.0,1.1.0) and the actual version is 1.0.0, when version 1.0.X is released what will happen? There is an automatic update for this or just triggered? What happen to other installations that use this same plugin when 1 installation is updated?

My Eclipse is configured with automatic updates for each start with automatic download and it notifies me just for install. This will break Oomph p2 pool and I should disabled it?


Thanks!!

[Updated on: Mon, 10 August 2015 18:35]

Report message to a moderator

Re: Product Setup Update [message #1704950 is a reply to message #1704906] Tue, 11 August 2015 05:59 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33258
Registered: July 2009
Senior Member
Claudio,

Comments below.

On 10/08/2015 4:28 PM, Claudio Weiler wrote:
> Hi Ed,
>
> Another question? I forget in this context:
>
> My product setup specifies a plugin with version range as
> [1.0.0,1.1.0) and the actual version is 1.0.0, when version 1.0.X is
> released what will happen? There is an automatic update for this or
> just triggered?
Oomph doesn't do automatic updates. When an update is available and you
manually perform the setup tasks, the p2 task will perform and will find
the updates (and will update if the available updates are within the
version range of the requirement).
> What happen to other installations for this same plugin when 1
> installation is updated?
The bundle pool is shared, so it will contain all bundles from all
installations, but each installation determines (via p2 tasks that
update the installation profile) which of those bundles are actually used.
>
> My Eclipse is configured with automatic updates for each start with
> automatic download and it notifies me just for install. This will
> break Oomph p2 pool and I should disabled it?
It just won't use the pool (I think!), and it definitely won't respect
the version range restrictions you've specified in your p2 tasks. It
won't break anything (other than not respecting the version ranges).
>
>
> Thanks!!


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Product Setup Update [message #1705098 is a reply to message #1704950] Wed, 12 August 2015 07:09 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6692
Registered: July 2009
Senior Member
Am 11.08.2015 um 07:59 schrieb Ed Merks:
>
>>
>> My Eclipse is configured with automatic updates for each start with automatic download and it notifies me just for
>> install. This will break Oomph p2 pool and I should disabled it?
> It just won't use the pool (I think!),
The pool is wired with the installation via the p2 profile of that installation. Once connected to the pool the
profile/installation will stay connected and can only be updated with the pool being used, no matter how you update.

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper


Re: Product Setup Update [message #1705172 is a reply to message #1705098] Wed, 12 August 2015 15:25 Go to previous messageGo to next message
Claudio Weiler is currently offline Claudio WeilerFriend
Messages: 31
Registered: August 2015
Location: Brazil
Member
Hi Eike,

I'm confused now!!! Twisted Evil

> The pool is wired with the installation via the p2 profile of that installation. Once connected to the pool the
> profile/installation will stay connected and can only be updated with the pool being used, no matter how you update.
So, I can safely use automatic update? This means that the referred FAQ is wrong or outdated, or is just my misunderstanding?


> The bundle pool is shared, so it will contain all bundles from all
> installations, but each installation determines (via p2 tasks that
> update the installation profile) which of those bundles are actually used.
Let me be more specific:
I have two installations (A and B) that are configured to use the same plugin: bogus [1.0.0,1.1.0), and the actual version is 1.0.0
In installation A I update my bogus plugin to the version 1.0.1.
When I start my installation B what will be the version of their bogus plugin?


Thanks!!
Re: Product Setup Update [message #1705175 is a reply to message #1705172] Wed, 12 August 2015 15:40 Go to previous messageGo to next message
Abel Hegedus is currently offline Abel HegedusFriend
Messages: 197
Registered: September 2015
Senior Member
Oomph itself doesn't do _automatic_ updates. It will execute the p2 director tasks when you trigger the task (e.g. by "Perform setup tasks").

The automatic update of Eclipse is a different mechanism and it may also install versions that Oomph would not (e.g. if your setup requires a specific version of bogus [1.0.0,1.0.0]).

So the regular update mechanism does not break Oomph, but it may lead to versions that the project setup would not allow. That in turn could lead to problems in your workspace projects (e.g. compile errors).

Since installation A and B have two different p2 profiles, pA and pB, the version when starting installation B will be 1.0.0.
Your p2 bundle pool will store both 1.0.0 and 1.0.1 versions of bogus and pA will use 1.0.1, while pB will use 1.0.0
Re: Product Setup Update [message #1705179 is a reply to message #1705175] Wed, 12 August 2015 15:56 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6692
Registered: July 2009
Senior Member
Am 12.08.2015 um 17:40 schrieb Abel Hegedus:
> Oomph itself doesn't do _automatic_ updates. It will execute the p2 director tasks when you trigger the task (e.g. by
> "Perform setup tasks").
>
> The automatic update of Eclipse is a different mechanism and it may also install versions that Oomph would not (e.g.
> if your setup requires a specific version of bogus [1.0.0,1.0.0]).
>
> So the regular update mechanism does not break Oomph, but it may lead to versions that the project setup would not
> allow. That in turn could lead to problems in your workspace projects (e.g. compile errors).
>
> Since installation A and B have two different p2 profiles, pA and pB, the version when starting installation B will be
> 1.0.0.
> Your p2 bundle pool will store both 1.0.0 and 1.0.1 versions of bogus and pA will use 1.0.1, while pB will use 1.0.0
Exactly. Eclipse's update might produce a different resolution than Oomph's update. But no matter what the resolution
would be, it'll always be installed into the bundle pool if the profile was initially created with a shared bundle pool.

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper


Re: Product Setup Update [message #1712832 is a reply to message #1704158] Wed, 28 October 2015 15:25 Go to previous messageGo to next message
Mattias Mising name is currently offline Mattias Mising nameFriend
Messages: 19
Registered: June 2010
Junior Member
Hi,

I have a feature where I like to specify a version range. Has anyone found a way to disable the Eclipse automatic update mechanism?

I would like to set the preference with Oomph, but the preference (org.eclipse.equinox.p2.ui.sdk.scheduler/enabled) is stored in the P2 profile.


BR Mattias
Re: Product Setup Update [message #1712874 is a reply to message #1712832] Thu, 29 October 2015 06:05 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6692
Registered: July 2009
Senior Member
Am 28.10.2015 um 16:25 schrieb Mattias Andersson:
> Hi,
>
> I have a feature where I like to specify a version range. Has anyone found a way to disable the Eclipse automatic
> update mechanism?
> I would like to set the preference with Oomph, but the preference (org.eclipse.equinox.p2.ui.sdk.scheduler/enabled) is
> stored in the P2 profile.
The profile settings are already accessible via the "/profile/..." scope, but we noticed that the profile path/key is
agent location specific (see attached screenshot). We can add new built-in variables to provide uniform access to
fundamental p2 preferences. Please submit a bugzilla.

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper


Re: Product Setup Update [message #1751409 is a reply to message #1712874] Mon, 09 January 2017 23:21 Go to previous messageGo to next message
Nikos Argyriou is currently offline Nikos ArgyriouFriend
Messages: 11
Registered: September 2016
Junior Member
Hi

According to http://eclipsesource.com/blogs/tutorials/oomph-basic-tutorial/ :

...
The Oomph Updater is responsible for keeping an existing Eclipse instance up-to-date once it has been created. Therefore, on every start-up, it checks the product setup model for any changes in the configuration. If there are any changes, e.g. a new bundle has been added, it will apply those changes automatically to the existing Eclipse instance.
....

Is it correct? Because I had the impression that the steps for updating an existing installation are summarised below:

• First run the installer. The installer respects version ranges acceptable. Update includes:
o Eclipse installer
o Eclipse product and project models
• However, Oomph doesn't do automatic updates. So, you have to manually update an existing Eclipse version by >Perform Setup Tasks after the installer update.

Thank you in advance
Nikos
Re: Product Setup Update [message #1751418 is a reply to message #1751409] Tue, 10 January 2017 07:55 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33258
Registered: July 2009
Senior Member
On startup, the setup task performer performs with Startup trigger. There are three trigger values, Bootstrap, Startup, Manual. Specific setup tasks are inherently capable of performing only one certain triggers. Many can perform on all triggers, some can only perform on certain triggers. For example, the Git Clone task can only perform in the IDE so cannot perform for Bootstrap time. This is why the cloning isn't done while the installer is running but rather after the IDE launches and in that IDE. When you author a setup task, via the advanced properties, you can further restrict the which triggers the will result in the setup task being considered for performing. In addition to that, some setup tasks behave differently depending on the trigger. The p2 task is one such example. On manual trigger it always return true for isNeeded. That's because there is no cheap way to determine if any update sites have any updates to any installable units that could be installed into the installation. So the p2 task performs, and if there are any updates available, it installs them. This is the reason one could claim that Oomph doesn't do any automatic updates. However, on manual trigger the isNeeded testing for the p2 task is a bit fancier. It checks to see that all the requirements specified by the setup task are satisfied by the installable units in the current profile. Given that the requirements can specify version ranges, this testing can be quite specific. So if your product version definition changes, i.e., the version range of a requirement is changed, or a new requirement is added, you can ensure that on next startup, existing installations will notice those changed/new requirements aren't satisfied and will perform the p2 task to update the installation automatically. This is the reason one could claim that Oomph does automatic updates.

One situation where this arose is that the generated product catalog has version ranges for the requirements. E.g., each mars product version has
<?xml version="1.0" encoding="UTF-8"?>
<p2:Requirement
    xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:p2="http://www.eclipse.org/oomph/p2/1.0"
    name="org.eclipse.platform.feature.group"
    versionRange="[4.5.0,4.6.0)"/>
Moreover, there are two "moving target" product versions, latest and latest.released. When a release happens or a new release stream starts, e.g., Neon released in June, Oxygen stream started a few months later, the generator updates these product versions to be copies of the Neon or Oxygen product versions. So before the Neon release, latest.released was a copy of Mars, but after the release it was a copy of Neon. As a result, on startup, any user who installed with latest.released were automatically updated from Mars to Neon. Some people found this surprising and confusing, so we added support for an optional prompt to warn when the p2 task automatically performs on startup.


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Product Setup Update [message #1751429 is a reply to message #1751418] Tue, 10 January 2017 10:03 Go to previous messageGo to next message
Nikos Argyriou is currently offline Nikos ArgyriouFriend
Messages: 11
Registered: September 2016
Junior Member
So a simple lazy guide could be:

- Run the installer and install a product/project with plugins.
- In order to update the IDE:
a) Run the installer again in order to update the setup models
b) Run the IDE
b1) Some tasks are executed automatically due to the updated product/project setup model
b2) Some tasks like .p2 can be executed only manually

If we agree on this, it is quite simple from now on.
Re: Product Setup Update [message #1751437 is a reply to message #1751429] Tue, 10 January 2017 11:27 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33258
Registered: July 2009
Senior Member
For a), the IDE will update (re-fetch remote resources) automatically on startup, so no need to run the installer to force that. In an already-running IDE, you can use Preferences -> Oomph -> Remote Resources -> Refresh Remote Cache... to force setup models to reload to be sure you have the latest versions of the remote resources, so no need even to restart. You can always Perform Setup Tasks manually to pick up any changes that might result from changes to remote update site; the p2 task will always perform when triggered manually. The p2 task will only perform on Startup if the installation does not satisfy the requirements. So simple guide would be "refresh remote resources and then perform setup tasks". Then for sure your environment will match the remote setups and the latest available updates from any update sites.

Ed Merks
Professional Support: https://www.macromodeling.com/
Previous Topic:Deterministic Product Build
Next Topic:Help needed in how to get started with Oomph
Goto Forum:
  


Current Time: Sun Dec 08 00:20:37 GMT 2024

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

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

Back to the top