Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Run task before the target is resolved (target-resolve phase..)?

I am not aware of such plans, but Tycho is an opensource project and you
are welcome to contribute patches.

--
Regards,
Igor

On 11-08-08 12:58 PM, Luchesar Cekov wrote:
Thank you Igor,

Please excuse me giving an opinion on something I do not understand
completely.
 From my pure user point of view it looked correct.

It was tempting to post over here as my recent post about incremental
building with tycho went unanswered.

Great to know that there is a way and potentially some day the
performance will be improved. I am also quite glad tycho has become an
eclipse project as well.

Are there any plans for improving the performance and implementing a
support for incremental builds in the near future?

Thanks again,
Luchesar

On 08/08/11 09:18, Igor Fedorenko wrote:
I highly doubt resolving dependencies at a later build stage will
improve overall build performance. More likely performance will slightly
degrade because in addition to today's full dependency resolution, tycho
will need to perform preliminary resolution to establish module build
order.

I do believe it is possible to substantially improve tycho dependency
resolution performance, and skip it altogether during rebuilds,
but this would require separate effort, not directly related to the
changes being discussed in this thread.

--
Regards,
Igor

On 11-08-08 12:03 PM, Luchesar Cekov wrote:
This would be great as it would enable better incremental build support
and will make tycho almost as fast as using the eclipse IDE itself.

I have enormous number of plugins to build about 400 and resolving them
every time is quite a slow operation. I find it hard to justify
migrating from PDE build to tycho and even harder to justify not using
Buckmister instead.

I am looking forward to use the new version of tycho even if I have to
update my maven to 3.1. There can be default behaviour for 3.0 to be as
it is now and as of 3.1 to resolve the dependencies later. Everybody is
updating to the latest maven anyway.

Excellent idea!
Luchesar

On 04/08/11 15:19, Oberlies, Tobias wrote:
This is a great discussion - I believe that deferring the target and
dependency resolution would be a great structural improvement for
Tycho.

I couldn't stop thinking about it, so I have written a proposal of
how this could be
implemented:http://wiki.eclipse.org/Tycho/Ideas/Deferring_Dependency_Resolution

Unfortunately it will be quite a bit of work, but IMHO it could be
worth it.

Regards
Tobias

-----Original Message-----
From:tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-
bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: 29 July 2011 10:50
To:tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] Run task before the target is resolved
(target-
resolve phase..)?

Yes, I agree that it would be nice to move dependency resolution to a
later phase. In the mean time, you can disable tycho dependency
resolution with -Dtycho.mode=maven when running
tycho-versions-plugin:set-version and other goals that do not need
resolved dependencies or proper module order.

--
Regards,
Igor

On 11-07-29 12:31 PM, Niels Nielsen wrote:
Hi,

Thanks for enlightning me. It is easier to separate issues when
closer
to the subject matter.
Agreed that target platform is a PDE/IDE problem, but as such I have
heard of very few eclipse plugin developers not using eclipse PDE for
development, so I would probably still resort to providing a target
platform using something like maven-dependency-plugin anyway, since
the
eclipse target definition has a limited way of materializing
dependencies.
And I also agree that eclipse/tycho versus other OSGi bundles and
repositories is not optimal at present.
So yes, lets keep that reasoning out of the equation.

So, one particular problem that it still relevant:

I have a few multi-module structures with lots of
server/shared/client
code of which the OSGi bundles are build with Tycho. Since Tycho
resolves
eagerly it has a very long dependency resolution phase before first
project is being built. That is particularly annoying if you run a
maven
phase or plugin which is not relevant to the tycho build (such as
clean or
versions:set etc).
I would be happy to take a look at the source code, but it may be
overwhelming since I am no subject matter expert. Is there any bug
reports
or feature requests on any of this?
Regards
/Niels


-----Original Message-----
From:tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-
bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: 26 July 2011 12:10
To:tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] Run task before the target is resolved
(target-resolve phase..)?
I think you are mixing several separate issues here.

There is currently no IDE support for Tycho project is a problem,
so we
have to play various tricks to make Tycho projects usable with PDE.
Integration between Tycho and OSGi bundles produced by other Maven
tools
(maven-bundle-plugin comes to mind, but there are others), is another
problem. This is made worse by the lack of proper IDE support, so
we have
to deal with Tycho and PDE configuration separately.
And there is dependency resolution timing, which can be seen as a
feature or inconvenience depending on your point of view. Moving
dependency resolution to a later build stage will allow more tricks to
workaround other two problems, but I don't believe it brings actual
resolution to any of them.
Having said that, I'm willing to accept a patch that defers Tycho
dependency resolution until it is actually necessary and can provide
pointers on tycho-dev.
--
Regards,
Igor


On 11-07-26 2:30 PM, Niels Nielsen wrote:
I for one happen to like the deferred dependency resolution even
though
I have seen problems related to this as you mention. These are mostly
solved by manually adjusting the modules order. I cannot see why tycho
should be any different.
While target platforms are some order of PDE limitations, I
completely
agree with that view, they are nevertheless very much used, and in
many
projects form the basis of compilation. I sit in (yet another)
imperfect
project with a PDE legacy that is not easily solved by tycho.
Because of
this I need to use<pomDependencies>consider</pomDependencies> to
specify
all transitive dependencies for the plugin (we only have p2 repo for
eclipse artifacts), but a few of the features cannot be build without
explicitly referencing a tycho target platform (possible
discrepancy in
tycho there, but that is a separate issue).
Secondly, since the developers also needs a target platform for
the PDE
development anyway, it makes sense to populate it from the same maven
configuration that builds the project in order to control project
dependencies. I usually 'sell' maven builds by telling how the same
build
forms the basis of IDE, local build, CI and release.
Personally, I think booting up the p2 resolver during reactor
ordering
is overkill. There is so much functionality involved, so much
configuration in the project that is eagerly executed without any
possibility to interfere, when essentially the only goal is to order
project dependencies.
Essentially a bad configuration in one of the tycho projects will
invalidate the entire build, whereas a standard maven dependency
problem
will usually just cause the individual module to fail, hence all other
non-related modules can be build.
While reactor reordering is a nice feature, I think it should be
toned
down from executing the individual module builds.

Regards
/Niels



-----Original Message-----
From:tycho-user-bounces@xxxxxxxxxxx
[mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: 26 July 2011 10:57
To:tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] Run task before the target is resolved
(target-resolve phase..)?
You are solving wrong problem, I think. The only reason you want to
create target platform before dependency resolution is to workaround
PDE limitations. ;-)

Maven defers dependency resolution until it is actually necessary at
the cost of less precise ordering of reactor modules (it is
theoretically
possible to have wrong reactor order when there is indirect dependency
between modules and remote artifacts). We can implement similar
approach
in Tycho, i.e. calculate module order based on project metadata
only and
resolve project target platform and dependencies at a later stage. Not
sure if this is worth the hassle, however.
--
Regards,
Igor

On 11-07-26 1:47 PM, Oberlies, Tobias wrote:
Dependency resolution needs to happen before the module build
starts,
because it determines the module build order.
My idea to solve this issue was to introduce a lifecycle phase
before
module ordering (and just execute that phase in an arbitrary
order), but I
couldn't convince the Maven guys to implement this for me, so this
will
probably not come - unless you or someone else is willing to implement
this in Maven...
Regards
Tobias


-----Original Message-----
From:tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-
bounces@xxxxxxxxxxx] On Behalf Of Niels Nielsen
Sent: 25 July 2011 17:49
To: Tycho user list
Subject: Re: [tycho-user] Run task before the target is resolved
(target- resolve phase..)?

Hi,

I have been using Tycho on and off for the last year without ever
going into details.
However, it has always been strange to me this fact that
dependency
resolution has to happen before the build cycle starts.
I assume this is eclipse resolver specifics, but it does have some
drawbacks

1) It is error prone to any propertybased specification of
resolver
definition in parent poms as the parent pom is not build before
subprojects are analyzed
2) It prevents generating a target platform without having to
have a
bootstrap mechanism.
3) Problems wrt dependency resolution is highlighted outside of
the
individual project containing the error, which is confusing and
difficult to trace.

Now, given that it is so contrary to normal maven dependency
resolutions, how come it is not possible to work around it or at
least lazy load the dependency mechanism?

Regards
/Niels

-----Original Message-----
From:tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-
bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: 16 July 2011 07:24
To:tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] Run task before the target is resolved
(target- resolve phase..)?

Dependency resolution has to happen before build lifecycle starts,
so it is not possible to run any maven goals before it.

--
Regards,
Igor

On 11-07-15 5:22 PM, motes motes wrote:
In a maven3/tycho project I would like to run an ant task before
the target is resolved. But it seems that the target is resolved
before any of the standard maven phases is run. Is there
someway to
do stuff before the target is resolved, I have tried:

<phase>generate-
resources</phase>
<goals>
<goal>copy</goal>
</goals>

but still the target is resolved (and the projec fails if the
resolve
fails) before this task is executed.
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user


--

Luchesar Cekov
Software Engineer
+44 (0)20 7239 4949
*Ontology Systems*
www.ontology.com <http://www.ontology.com/>



cid:image001.gif@01CB28DC.799AB7D0

Registered Office: Ontology-Partners Limited, Dalton House, 60 Windsor
Avenue, London SW19 2RR, UK

Company Registration No. 5794201



.



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user


--

Luchesar Cekov
Software Engineer
+44 (0)20 7239 4949
*Ontology Systems*
www.ontology.com <http://www.ontology.com/>

	

cid:image001.gif@01CB28DC.799AB7D0

Registered Office: Ontology-Partners Limited, Dalton House, 60 Windsor
Avenue, London SW19 2RR, UK

Company Registration No. 5794201



.



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user


Back to the top