You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Jean-Sebastien Delfino <js...@apache.org> on 2008/01/02 19:14:07 UTC

Re: Release dependency management

Simon Laws wrote:
> I'm putting Sebastien's ant file generator into the build. The snag is that
> it builds ant files based on dependencies it finds at the module level. We
> ship a release excluding all but the latest level of dependencies. Hence the
> ant file may be looking for dependencies that we don't ship. My first port
> of call here is to look across the project and see if we can rationalize our
> dependencies so that the modules are looking for the latest version. Failing
> that we will have to have some kind of lookup that maps to the latest
> version for each jar. I'm raising it here in the off chance that someone has
> already thought about this and knows a neat solution.
> 
> Regards
> 
> Simon
> 

Happy new year.

I can try to help fix the problem, once I understand it. Can you point 
me to a module and steps to reproduce it?

Thanks.
-- 
Jean-Sebastien

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Release dependency management

Posted by Simon Laws <si...@googlemail.com>.
On Jan 4, 2008 1:08 AM, Jean-Sebastien Delfino <js...@apache.org> wrote:

> Jean-Sebastien Delfino wrote:
> > Simon Laws wrote:
> >> I'm putting Sebastien's ant file generator into the build. The snag is
> >> that
> >> it builds ant files based on dependencies it finds at the module
> >> level. We
> >> ship a release excluding all but the latest level of dependencies.
> >> Hence the
> >> ant file may be looking for dependencies that we don't ship. My first
> >> port
> >> of call here is to look across the project and see if we can
> >> rationalize our
> >> dependencies so that the modules are looking for the latest version.
> >> Failing
> >> that we will have to have some kind of lookup that maps to the latest
> >> version for each jar. I'm raising it here in the off chance that
> >> someone has
> >> already thought about this and knows a neat solution.
> >>
> >> Regards
> >>
> >> Simon
> >>
> >
> > Happy new year.
> >
> > I can try to help fix the problem, once I understand it. Can you point
> > me to a module and steps to reproduce it?
> >
> > Thanks.
>
> Have looked into it today, and still do not understand what you meant,
> sorry :).
>
> The Ant files are generated from the Maven POM model, which must be
> referring to the correct dependencies otherwise our samples won't build
> correctly with Maven. So I must be missing something...
>
> --
> Jean-Sebastien
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>
> OK, an example of the dependency version problem. I've been going through
the poms trying to get us on single versions of dependencies to remove this
issue. Still some to do when we have the branch ant the dependencies settle
down. Abstract example...

ModuleA
   DependencyA-v1.1
ModuleB
   DependencyX-v3.5 - transitive dependency to - DependencyA-v1.0

When we build the distribution the maven build chooses one version of
DependencyA (I don't what the algorithm is but it doesn't always choose the
latest). When we build ant files for ModuleA and ModuleB they are likely to
refer to their specific dependencies. Maven doesn't know that we are only
going to ship with one version in the binary build. When we use the ant
files from the binary build one will fail as a dependency will be missing.

A specific example...

Look at the calculator-webapp sample. We have a JIRA outstanding (
https://issues.apache.org/jira/browse/TUSCANY-1794) that reports that the
war generated for this sample is a different size depending on whether it's
generated by ant or maven. The ant build.xml file was generated from the
pom.xml in the first place and has all of the correct dependencies however
we don't ship all of those dependencies because other modules rely on other
versions. In this case it is primarily Xerces. It just so happens that this
sample works either way. Probably because the app container already has the
missing dependencies so we get lucky in this case.

If you look at the dependency list (
http://people.apache.org/~slaws/trunk-dependencies.html) everywhere you see
multiple versions on the left hand side this is a potential problem. This
list is out of date as I've been working on it. It's also based on the
trunk. I'll make a new one when I cut the branch today.

My preferred solution here is to fix the dependency versions in the poms.
Feel free to help or suggest an alternative approach. Also be useful to know
how the distribution build chooses which dependency to ship if anyone knows.


Regards

Simon

Re: Release dependency management

Posted by Jean-Sebastien Delfino <js...@apache.org>.
Jean-Sebastien Delfino wrote:
> Simon Laws wrote:
>> I'm putting Sebastien's ant file generator into the build. The snag is 
>> that
>> it builds ant files based on dependencies it finds at the module 
>> level. We
>> ship a release excluding all but the latest level of dependencies. 
>> Hence the
>> ant file may be looking for dependencies that we don't ship. My first 
>> port
>> of call here is to look across the project and see if we can 
>> rationalize our
>> dependencies so that the modules are looking for the latest version. 
>> Failing
>> that we will have to have some kind of lookup that maps to the latest
>> version for each jar. I'm raising it here in the off chance that 
>> someone has
>> already thought about this and knows a neat solution.
>>
>> Regards
>>
>> Simon
>>
> 
> Happy new year.
> 
> I can try to help fix the problem, once I understand it. Can you point 
> me to a module and steps to reproduce it?
> 
> Thanks.

Have looked into it today, and still do not understand what you meant, 
sorry :).

The Ant files are generated from the Maven POM model, which must be 
referring to the correct dependencies otherwise our samples won't build 
correctly with Maven. So I must be missing something...

-- 
Jean-Sebastien

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org