[kepler-dev] Add depency in build.xml?

Matt Jones jones at nceas.ucsb.edu
Thu Mar 25 10:46:12 PST 2004


I guess the problem comes down to this: where should code live that is 
re-used inmultiple projects.  For many external projects, we make a copy 
because we have no access to the CVS servers.  But for this EcoGrid 
client code, it is part of one of the sponsoring projects for Kepler, 
and the same people contributing the code for EcoGrid are integrating it 
into Kepler.  In this situation, code duplication seems like it will 
complicate maintenance tremendously (from our experience, its a huge 
time sink to duplicate code).  Given that Ant supports CVS checkouts, 
its easy to build the dependencies directly into the build, and thereby 
eliminate a lot of maintenance headaches.

In terms of shipping a release of Kepler, I think that release should 
include all of the code on which Kepler depends and that we control, so 
we'll just have to make the dist target build a release package that 
includes the relevant code.  Again, this shouldn't be hard.

Matt

David Buttler wrote:
> I will just note that this will complicate any type of source 
> distribution for Kepler.  Either it will need to contain SEEK, or the 
> build file will have to be modified to exclude Jing's functionality.  I 
> am not sure if this will turn out to be a problem, as I do not see how 
> separate SEEK and Kepler are.
> 
> Matt, are the JUnit tests you are referring to in SEEK or in Kepler? 
> Thanks,
> Dave
> 
> Matt Jones wrote:
> 
>> Jing,
>>
>> Ant has the ability to prompt for input.  Matthew has used this 
>> feature in the JUnit tests in utilities -- check that for an example.  
>> So you should be able to construct the CVSROOT from a userid that you 
>> either get from user input or from the environment (for example, from 
>> $USER or $CVSROOT environment vars). That way the developer does not 
>> have to edit build.xml, and the account will change to the right CVS 
>> account.
>>
>> As to whether or not we should include the checkout in the build 
>> process, I think we should.  Everyone that has CVS access to kepler 
>> has CVS access to seek, and the costs of duplicating code and having 
>> it be out of date is high.  THat is why we have the development 
>> guideline in the Kepler development guidelines:
>>   4. Try to not check in files that can be generated from the build 
>> system
>>
>> I think your approach follows this guideline well.
>>
>> Matt
>>
>> Jing Tao wrote:
>>
>>> Hi, Dave:
>>>
>>> No, you don't need to my username and password. But user should 
>>> customize the build.xml before running kepler(it is a pain:)). In the 
>>> init target, there is property named cvs.root and  current value is 
>>> :ext:tao at cvs.ecoinformatics.org:/cvs. Users can change the value and 
>>> use their own username and password. For example, if a username is 
>>> "foo", he needs to change the value to 
>>> ":ext:foo at cvs.ecoinformatics.org:/cvs".
>>>
>>> The reseaon why we add this cvs.root property is we don't want to 
>>> duplicate code. The alternative way is adding ecogrid jar files 
>>> directly to kepler/lib/jar dir. This way would not cause this issue 
>>> (needing customize build.xml), but the code will be duplicated to 
>>> seek/project/ecogrid module.
>>>
>>> Your suggestion for asking username and password is good. But I have 
>>> no idea how ant can do that. Does anyone have some suggestions?
>>>
>>> Thanks.
>>>
>>> Jing
>>>
>>> On Wed, 24 Mar 2004, David Buttler wrote:
>>>
>>>
>>>> Hi Jing,
>>>> I looked at the CVS diff of the build.xml file you just updated and 
>>>> I have a question:
>>>> it looks like you have modified the general compile target so that 
>>>> it requires your package, but in the build file you also added a CVS 
>>>> target that would check it out from the repository under your 
>>>> username, requesting the password from the builder at compile time.
>>>> Does this mean that I need your password in order to compile kepler 
>>>> now?
>>>> There has to be a better way to manage this; at the very least ask 
>>>> for username and password, rather than hard coding your username 
>>>> into the build file.  Does anyone else have other suggestions?
>>>>
>>>> Dave
>>>>
>>>> Jing Tao wrote:
>>>>
>>>>
>>>>> Hi, everyone:
>>>>>
>>>>> My kepler code will need the some jar files (about 6) in lib when 
>>>>> it communicates to ecogrid service. Those jar files come from 
>>>>> ecogrid client library in seek/ecogrid project.
>>>>>
>>>>> Now I have a question: do I need add those jar file direclty to 
>>>>> kepler cvs or add adependency on seek/ecogrid project in 
>>>>> build.xml(add a target in kepler build.xml and this target will 
>>>>> create those jar files then copy them to kepler/lib/jar)?
>>>>> The first one is easiest one but duplicate code. The second one 
>>>>> doesn't duplicate the codes, but make user to run kepler should 
>>>>> checkout seek module first(it is pain too).
>>>>>
>>>>> Any idea or suggestions?
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Jing
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>

-- 
-------------------------------------------------------------------
Matt Jones                                     jones at nceas.ucsb.edu
http://www.nceas.ucsb.edu/    Fax: 425-920-2439    Ph: 907-789-0496
National Center for Ecological Analysis and Synthesis (NCEAS)
University of California Santa Barbara
Interested in ecological informatics? http://www.ecoinformatics.org
-------------------------------------------------------------------



More information about the Kepler-dev mailing list