RE: [nant-dev] Rational behind not supporting basedir?

2005-06-30 Thread Martin Aliger
Hmm,

is there any way to share script between Ant and NAnt and still using
proprietary features of both? something like conditionals? Maybe this could
be solution. If not, propably both teams would be needed to code it...

somehing like:
target name=clean
delete dir=${output.dir} failonerror=false
if=${directory::exists(output.dir)}/
delete dir=${tests.dir} failonerror=false
if=${directory::exists(tests.dir)}/
!--#if NAnt085--
loadtasks assembly=${tools.dir}\Gordic.Develop.NAnt.dll/
!--#endif--
!--#if Ant123--
ant buildfile=${src.dir}/Extras/BuildServer/clean.build
unless=${debug} /
!--#endif--
/target

(or use of PI ?if  ?)

Just an idea,
Martin Aliger
 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On 
 Behalf Of Gert Driesen
 Sent: Wednesday, June 29, 2005 9:40 PM
 To: 'Shawn Oster'
 Cc: nant-developers@lists.sourceforge.net
 Subject: RE: [nant-dev] Rational behind not supporting basedir?
 
  
 
  -Original Message-
  From: Shawn Oster [mailto:[EMAIL PROTECTED]
  Sent: woensdag 29 juni 2005 21:20
  To: Gert Driesen
  Subject: Re: [nant-dev] Rational behind not supporting basedir?
  
  On 6/29/05, Gert Driesen [EMAIL PROTECTED] wrote:
   
   
-Original Message-
   
I'm curious what the rational is behind not supporting
  the standard
basedir attribute of the project element? I have quite a few 
maintenance scripts that I use to not only build source
  but also do
sysadmin type functions on my machine and all of them use
  basedir in
some way.  In exploring NAnt every single one of them 
 fails with a 
basedir property not defined error.
   
   We do support the basedir attribute of the project
  element. We just
   don't support the basedir property.
  
  Ahh pity.  From an academic, developer to developer point 
 of view I'm 
  curious why that decision was made.  I'm just wondering because 
  obviously that's a big decision since many existing Ant scripts use 
  ${basedir} as a property and it must have been a conscious 
 decision to 
  break the interface.  Obviously a lot of thought must go into each 
  decision that breaks simple compatibility with the original 
 Ant since 
  by the nature of calling it NAnt it implies a certain 
 compatibility.
   At some point I'm sure someone said, Ok, Ant does it this 
 way but I 
  don't think NAnt should because (fill in blank)  It's that fill in 
  the blank part I'm after.
 
 I definitely agree that compatibility with Ant would've been nice. 
 
 However, I wasn't involved in NAnt when some of these 
 decision were made.
 
   You should either use the project::get-base-directory() or the 
   nant.project.basedir property
   
  
  Thanks for the advice but I think I'll stick with Ant.  Too many 
  scripts use ${basedir} and I don't want to convert all of 
 those that 
  do to use the NAnt proprietary project::get-base-directory() or 
  nant.project.basedir.  We share these admin-style scripts and I 
  don't want to force others to use nant just to work around 
 this issue.
 
 I understand. I appreciate your feedback anyway.
 
 Gert
 
 
 
 ---
 SF.Net email is sponsored by: Discover Easy Linux Migration 
 Strategies from IBM. Find simple to follow Roadmaps, 
 straightforward articles, informative Webcasts and more! Get 
 everything you need to get up to speed, fast. 
 http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
 ___
 nant-developers mailing list
 nant-developers@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/nant-developers
 



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Rational behind not supporting basedir?

2005-06-30 Thread Ian MacLean

Gert Driesen wrote:


don't support the basedir property.



Ahh pity.  From an academic, developer to developer point of view I'm
curious why that decision was made.  I'm just wondering because
obviously that's a big decision since many existing Ant scripts use
${basedir} as a property and it must have been a conscious decision to
break the interface.  Obviously a lot of thought must go into each
decision that breaks simple compatibility with the original Ant since
by the nature of calling it NAnt it implies a certain compatibility.
At some point I'm sure someone said, Ok, Ant does it this way but I
don't think NAnt should because (fill in blank)  It's that fill in
the blank part I'm after.
  



I definitely agree that compatibility with Ant would've been nice.
However, I wasn't involved in NAnt when some of these decision were made.
 

come on - you can find a better example of incompatability than this one 
:) . basedir vs nant.project.basedir is hardly a huge difference and as 
far as I'm aware this is the first time this has been brought up as an 
issue. If it had been that important to a majority of NAnt users then it 
surely would have been changed years ago.



You should either use the project::get-base-directory() or the
nant.project.basedir property




Thanks for the advice but I think I'll stick with Ant.  Too many
scripts use ${basedir} and I don't want to convert all of those that
do to use the NAnt proprietary project::get-base-directory() or
nant.project.basedir.  We share these admin-style scripts and I
don't want to force others to use nant just to work around this issue.
  


Proprietry ? its not proprietary its just different. In the online docs 
there is a section for Ant Users which says :


If you have used Ant before than NAnt should feel comfortable but NAnt 
is only compatible with Ant in spirit. - ie its not meant to be an 
exact clone of Ant. 
However on a more positive note - its easy enough to add a basedir 
property thats an alias for project::get-base-directory(). Just add the 
following property definition to NAnt.exe.config


... from line 1095 or so
   properties
  !-- properties defined here are accessible to all build 
files --

  !-- property name=foo value = bar readonly=false / --
  property name=basedir value = 
${project::get-base-directory()} readonly=false /   
/properties

  /nant
  ...

and the basedir property will become available to all scripts. Of course 
you'd need to make this change in NAnt.exe.config on every developers 
machine but thats less work than changing all your buil scripts.


Ian







---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Rational behind not supporting basedir?

2005-06-30 Thread Troy Laurin
On 6/30/05, Martin Aliger [EMAIL PROTECTED] wrote:
 Hmm,
 
 is there any way to share script between Ant and NAnt and still using
 proprietary features of both? something like conditionals? Maybe this could
 be solution. If not, propably both teams would be needed to code it...

Ant and NAnt are currently fundamentally un-interoperable, if only
because Ant tests (if/unless) are based on property existence, while
NAnt tests are based on evaluation to 'true'.  And as Ian mentioned,
that's just one source-level incompatibility... there are plenty more!

But that being said, I'm not sure what the goal of interoperability of
scripts between Ant and NAnt is.  That sounds like asking for
source-code interoperability between C# and Java... sure it might be
nice in a couple of cases, but however similar the structure of the
language they each have their own exclusive constructs and foibles. 
Or to put it a different way, it just doesn't make sense :-)

What's wrong with using Ant to run Ant scripts, and using NAnt to run
NAnt scripts?  If you have a situation which Ant can deal with but
NAnt can't, then use Ant... and vice versa.

The only reason I can think of to try to run an Ant script in NAnt is
to port it across because there is a feature in NAnt that you want to
take advantage of... but by definition, this feature is not available
in Ant so interoperability is impossible.  Is there some other reason
that I'm missing?


-- 
Troy


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


RE: [nant-dev] Rational behind not supporting basedir?

2005-06-29 Thread Gert Driesen
 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On 
 Behalf Of Shawn Oster
 Sent: woensdag 29 juni 2005 20:22
 To: nant-developers@lists.sourceforge.net
 Subject: [nant-dev] Rational behind not supporting basedir?
 
 Just posted this over in the users list but this seems more 
 like a dev question.
 
 I'm curious what the rational is behind not supporting the standard
 basedir attribute of the project element? I have quite a few
 maintenance scripts that I use to not only build source but also do
 sysadmin type functions on my machine and all of them use basedir in
 some way.  In exploring NAnt every single one of them fails with a
 basedir property not defined error.

We do support the basedir attribute of the project element. We just
don't support the basedir property.

You should either use the project::get-base-directory() or the
nant.project.basedir property

Eg.

echo message=base dir = ${project::get-base-directory()} /
echo message=base dir = ${nant.project.basedir} /

 Perhaps this is still on the todo list since NAnt is still beta (not
 yet at a 1.0 release)?

We're not planning on introducing a basedir property, as you can use
one of the alternatives mentioned above.

Gert



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


RE: [nant-dev] Rational behind not supporting basedir?

2005-06-29 Thread Gert Driesen
 

 -Original Message-
 From: Shawn Oster [mailto:[EMAIL PROTECTED] 
 Sent: woensdag 29 juni 2005 21:20
 To: Gert Driesen
 Subject: Re: [nant-dev] Rational behind not supporting basedir?
 
 On 6/29/05, Gert Driesen [EMAIL PROTECTED] wrote:
  
  
   -Original Message-
  
   I'm curious what the rational is behind not supporting 
 the standard
   basedir attribute of the project element? I have quite a few
   maintenance scripts that I use to not only build source 
 but also do
   sysadmin type functions on my machine and all of them use 
 basedir in
   some way.  In exploring NAnt every single one of them fails with a
   basedir property not defined error.
  
  We do support the basedir attribute of the project 
 element. We just
  don't support the basedir property.
 
 Ahh pity.  From an academic, developer to developer point of view I'm
 curious why that decision was made.  I'm just wondering because
 obviously that's a big decision since many existing Ant scripts use
 ${basedir} as a property and it must have been a conscious decision to
 break the interface.  Obviously a lot of thought must go into each
 decision that breaks simple compatibility with the original Ant since
 by the nature of calling it NAnt it implies a certain compatibility.
  At some point I'm sure someone said, Ok, Ant does it this way but I
 don't think NAnt should because (fill in blank)  It's that fill in
 the blank part I'm after.

I definitely agree that compatibility with Ant would've been nice. 

However, I wasn't involved in NAnt when some of these decision were made.

  You should either use the project::get-base-directory() or the
  nant.project.basedir property
  
 
 Thanks for the advice but I think I'll stick with Ant.  Too many
 scripts use ${basedir} and I don't want to convert all of those that
 do to use the NAnt proprietary project::get-base-directory() or
 nant.project.basedir.  We share these admin-style scripts and I
 don't want to force others to use nant just to work around this issue.

I understand. I appreciate your feedback anyway.

Gert



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers