[nant-dev] NAnt pre- and post-build events within the task

2005-06-03 Thread Matthew Mastracci
What does everyone think of adding native NAnt pre- and post-build 
events to the  task.  These tasks would be independent of the 
existing project pre- and post-build events.


Ideally, we would make the current pre- and post-build expansion macro 
variables available via properties:


My suggestion is this, although we might need to add additional elements 
or properties to support triggers on successful/failed builds:












About to build project ${projectpath}


Built project ${projectpath}!



Or we could use a custom function available in the solution task to 
retrieve a macro:












About to build project ${solution::expand('ProjectPath')}


Built project ${solution::expand('ProjectPath')}!



Thoughts?

Matt.


---
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20

___
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Fileset / task change

2004-11-23 Thread Matthew Mastracci
Sounds good to me.  I think the behaviour is more reasonable overall.  
If I specify that a file should be excluded, its directory should not be 
removed, no matter what.

I always found the delete task to be a bit odd.  ;)
Matt.
Gert Driesen wrote:
Hi Matthew,
I've had another look at how our  task is working right now, and the
more I think of it, the more I'm convinced that we should change it to match
the Ant  task.
Right now, we remove all directories that are matched by the fileset. But
this does not respect any excludes.
When you have the following directory structure :
\
test\
web.config
subdir\
web.config
And you'd execute the following task :






Then the \test\subdir would be completely removed
(although, there's a web.config file in there that should not be deleted),
as that directory is returned in the DirectoryNames collection of the
fileset, and alls path returned in that collection are completely removed by
the  task.
Instead, it might be better to first remove all matching files, and then
remove all matching directories that are empty (and do this only if
"includeemptydirs" is set to true).
What do you think ?
Gert
 


begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
tel;fax:(403) 247-8797
url:http://www.aclaro.com
version:2.1
end:vcard



[nant-dev] Re: latest nightly build

2004-10-27 Thread Matthew Mastracci
I think I've found the issue.  I wasn't canonicalizing some of the 
paths, so they weren't getting matched.  Any parent-relative paths were 
ignored.  I've added a fix and some testcases to ensure that this is 
tested in the future.

It'll be in CVS now, or the next nightly build.  Give it a shot if you'd 
like to test it.

Matt.
Martin Aliger wrote:
Maybe... CommonAssemblyInfo seems to be missing in all projects!
Martin Aliger
 


-Original Message-
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On 
Behalf Of Matthew Mastracci
Sent: Wednesday, October 27, 2004 4:07 PM
To: Gert Driesen; [EMAIL PROTECTED]
Subject: [nant-dev] Re: latest nightly build

Taking a look at the build file for the tests, it looks like 
the MSNet tests DLL doesn't include any files but the 
../../src/CommonAssemblyInfo.cs.

It's possible that the fileset changes broke parent directory 
traversal.

Gert Driesen wrote:
Hi Martin,
I'll look into that error later. For now, you can just use 
the binary 

distribution.
If I recall correctly, the version should include the fileset 
performance improvements.

My cable modem at home is f¨**cked up, so I won't be able 
to do much 

at home in the next few days :(  Until its fixed, I (try 
to) leave for 

work at 6 AM (I normally leave at about 10 AM ... oops) so 
I have some 

time for responding to emails and stuff ... What a devotion ;-)
Gert
- Original Message -
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Wednesday, October 27, 2004 10:56 AM
Subject: [nant-dev] latest nightly build


Hi all,
I just grab latest (10-25) nighly and it's build failed due 
to lack of
MSNet

test-cases:
   [nant] 
E:\src\extern\nant\tests\NAnt.MSNet\NAnt.MSNet.build build
  Buildfile:
file:///E:/src/extern/nant/tests/NAnt.MSNet/NAnt.MSNet.bu
ild
  Target(s) specified: build
  build:
[csc] Compiling 0 files to 
'E:\src\extern\nant\build\net-1.1.w
in32\nant-0.85-debug\bin\NAnt.MSNet.Tests.dll'.
[csc] fatal error CS2008: No inputs specified

  BUILD FAILED
  
E:\src\extern\nant\tests\NAnt.MSNet\NAnt.MSNet.build(11,10):
  External Program Failed:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.432
2\csc.exe (return code was 1)
  Total time: 0 seconds.
BUILD FAILED
Nested build failed.  Refer to build log for exact reason.
Total time: 10.5 seconds.
Martin
btw: is in this build already those performance changes?

---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE LinuxWorld 
Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers



---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE LinuxWorld 
Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88&alloc_id065&op=click


---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE 
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88&alloc_id065&op=ick
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88&alloc_id065&op=click

---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88&alloc_id065&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: latest nightly build

2004-10-27 Thread Matthew Mastracci
Taking a look at the build file for the tests, it looks like the MSNet 
tests DLL doesn't include any files but the ../../src/CommonAssemblyInfo.cs.

It's possible that the fileset changes broke parent directory traversal.
Gert Driesen wrote:
Hi Martin,
I'll look into that error later. For now, you can just use the binary
distribution.
If I recall correctly, the version should include the fileset performance
improvements.
My cable modem at home is f¨**cked up, so I won't be able to do much at home
in the next few days :(  Until its fixed, I (try to) leave for work at 6 AM
(I normally leave at about 10 AM ... oops) so I have some time for
responding to emails and stuff ... What a devotion ;-)
Gert
- Original Message - 
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Wednesday, October 27, 2004 10:56 AM
Subject: [nant-dev] latest nightly build


Hi all,
I just grab latest (10-25) nighly and it's build failed due to lack of
MSNet
test-cases:
[nant] E:\src\extern\nant\tests\NAnt.MSNet\NAnt.MSNet.build build
   Buildfile:
file:///E:/src/extern/nant/tests/NAnt.MSNet/NAnt.MSNet.bu
ild
   Target(s) specified: build
   build:
 [csc] Compiling 0 files to
'E:\src\extern\nant\build\net-1.1.w
in32\nant-0.85-debug\bin\NAnt.MSNet.Tests.dll'.
 [csc] fatal error CS2008: No inputs specified
   BUILD FAILED
   E:\src\extern\nant\tests\NAnt.MSNet\NAnt.MSNet.build(11,10):
   External Program Failed:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.432
2\csc.exe (return code was 1)
   Total time: 0 seconds.
BUILD FAILED
Nested build failed.  Refer to build log for exact reason.
Total time: 10.5 seconds.
Martin
btw: is in this build already those performance changes?

---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88&alloc_id065&op=click


---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88&alloc_id065&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: temp leekage

2004-10-26 Thread Matthew Mastracci
Can you try running filemon while NAnt is going?  Once you've got the 
error, filter your filemon output to include only the failing directory 
and reply with that.  It should show us the file being deleted after the 
fact.

Matt.
Nicklas Norling wrote:
There are no files in that directory after it's finished. Only the 
directory itself remains.
/Nicke

Matthew Mastracci wrote:
What sort of files are in that temp directory after NAnt completes?
Nicklas Norling wrote:
Hi.
No, my system is not very slow. It's a P4 3(?) GHz with a HD doing 
60-40 MB/s random read.
I've tried it both with and without [EMAIL PROTECTED] running and it seemed 
to make no differance. I've had
no extra load on the hard drive though. The hard drive was no where 
near full.

I tried -verbose but ended up getting just successful builds then. 
But that might have been good fortune
as it takes 10 minutes to run each test and I only tried it about 5 
times.

I'll try to run it more times and use -debug, thanks for the tip! 
I'll be using the new nightly then, no need
to hunt down bugs you guys might have accidentially fixed already.

/Nicke
Gert Driesen wrote:
Has anyone else ran into this issue ?
Nicklas, is your system perhaps very slow ?
Can you try running the build in debug mode
(NAnt.exe -debug -logfile:log.txt), and send me a log of a failed 
build ?
Can you check what's left in that directory after the build failure ?

Thanks !
Gert
- Original Message - From: "Nicklas Norling" 
<[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, October 26, 2004 4:05 PM
Subject: [nant-dev] temp leekage

 

Hi.
I've been a lazy boy running on nightly 03/24 for much too long.
Decided to try out 10/25 today and a few days ago the newest 
nightly at
  

that
 

time.
To my great sorrow there appears to have sneaked in a tricky bug 
where
timing appears to be of essence.
Due to the code I have is propritary I can not provide a repo, but 
I'll
  

try
 

to be as specific as I can anyway.
I compile a project using the solution task in Nant nightly 10/25. 
The
snipplet that compiles it is well tested.

   
The solution itself contains 38 C# projects. This is the 
occational error
output:

[nant]
C:\CodeModules\Montgomery\modules\fndwin\packages.build debug
   Buildfile:
file:///C:/CodeModules/Montgomery/modules/fndwin/pack

ages.build
   Target(s) specified: debug
   debug:
[solution] Starting solution 
build.
[solution] Building
  

'IFSVSAddInManager'
 

[Debug] ...
[solution] Building
'Ifs.Fnd.Data.CodeGen' [Debug] ...
[solution] Building
'Ifs.Fnd.Feature.Design.Installer' [Debug]
...
  [resgen] Read in 0
resources from 'C:\CodeModules
  

\Montgomery\modules\fndwin\framework\Design\Ifs.Fnd.Feature.Design.Installer 

 

\FeatureInstaller.resx'
  [resgen] Writing
  

resource
 

file...  Done.
   BUILD FAILED
   Cannot delete directory
'C:\TEMP\tmp1966.tmp'.
   The directory is not empty.
   Total time: 3.2 seconds.
   BUILD FAILED
   Nested build failed.  Refer to build log 
for exact
reason.

   Total time: 3.4 seconds.
This error message occurs only maybe one in 5-10 times that I 
compile.
  

It's
 

always complaining with the same type
of error, but sometimes the directory's number is different, like
"tmp243.tmp" etc.
Looking at disk this folder is there in the temp folder. I can 
remove it
without getting an error.

I'm assuming somewhere between 03/24 and 10/25 someone did some 
change to
the resgen part of the solution task
that resulted in a non-deterministic order of deletion of files in 
the
  

temp
 

folder and the folder itself. Hence at times not all
files are removed in time for when the folder is removed and it 
then gives
this error.

With this info is it possible to review the code part to find such 
a bug
  

or
 

can I do anything else to help reproduce this?
/Nicke



---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: temp leekage

2004-10-26 Thread Matthew Mastracci
What sort of files are in that temp directory after NAnt completes?
Nicklas Norling wrote:
Hi.
No, my system is not very slow. It's a P4 3(?) GHz with a HD doing 60-40 
MB/s random read.
I've tried it both with and without [EMAIL PROTECTED] running and it seemed to 
make no differance. I've had
no extra load on the hard drive though. The hard drive was no where near 
full.

I tried -verbose but ended up getting just successful builds then. But 
that might have been good fortune
as it takes 10 minutes to run each test and I only tried it about 5 times.

I'll try to run it more times and use -debug, thanks for the tip! I'll 
be using the new nightly then, no need
to hunt down bugs you guys might have accidentially fixed already.

/Nicke
Gert Driesen wrote:
Has anyone else ran into this issue ?
Nicklas, is your system perhaps very slow ?
Can you try running the build in debug mode
(NAnt.exe -debug -logfile:log.txt), and send me a log of a failed build ?
Can you check what's left in that directory after the build failure ?
Thanks !
Gert
- Original Message - From: "Nicklas Norling" 
<[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, October 26, 2004 4:05 PM
Subject: [nant-dev] temp leekage

 

Hi.
I've been a lazy boy running on nightly 03/24 for much too long.
Decided to try out 10/25 today and a few days ago the newest nightly at
  
that
 

time.
To my great sorrow there appears to have sneaked in a tricky bug where
timing appears to be of essence.
Due to the code I have is propritary I can not provide a repo, but I'll
  
try
 

to be as specific as I can anyway.
I compile a project using the solution task in Nant nightly 10/25. The
snipplet that compiles it is well tested.
   
The solution itself contains 38 C# projects. This is the occational 
error
output:

[nant]
C:\CodeModules\Montgomery\modules\fndwin\packages.build debug
   Buildfile:
file:///C:/CodeModules/Montgomery/modules/fndwin/pack

ages.build
   Target(s) specified: debug
   debug:
[solution] Starting solution build.
[solution] Building
  
'IFSVSAddInManager'
 

[Debug] ...
[solution] Building
'Ifs.Fnd.Data.CodeGen' [Debug] ...
[solution] Building
'Ifs.Fnd.Feature.Design.Installer' [Debug]
...
  [resgen] Read in 0
resources from 'C:\CodeModules
  
\Montgomery\modules\fndwin\framework\Design\Ifs.Fnd.Feature.Design.Installer 

 

\FeatureInstaller.resx'
  [resgen] Writing
  
resource
 

file...  Done.
   BUILD FAILED
   Cannot delete directory
'C:\TEMP\tmp1966.tmp'.
   The directory is not empty.
   Total time: 3.2 seconds.
   BUILD FAILED
   Nested build failed.  Refer to build log for 
exact
reason.

   Total time: 3.4 seconds.
This error message occurs only maybe one in 5-10 times that I compile.
  
It's
 

always complaining with the same type
of error, but sometimes the directory's number is different, like
"tmp243.tmp" etc.
Looking at disk this folder is there in the temp folder. I can remove it
without getting an error.
I'm assuming somewhere between 03/24 and 10/25 someone did some 
change to
the resgen part of the solution task
that resulted in a non-deterministic order of deletion of files in the
  
temp
 

folder and the folder itself. Hence at times not all
files are removed in time for when the folder is removed and it then 
gives
this error.

With this info is it possible to review the code part to find such a bug
  
or
 

can I do anything else to help reproduce this?
/Nicke
  

---
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl

---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Major performance enhancements landed

2004-10-26 Thread Matthew Mastracci
With the help of Gert Dreisen, we've landed some major file-scanning 
performance changes.  You'll find them in any nightly builds from today 
onward.  I'm seeing major CPU usage drops as well as improvements in 
scanning many filesets.  I can now run a full rebuild on an unchanged 
-task-based, 100-project solution in about 2 seconds.  :)

Some of the major changes include caching and compiling of regexes 
(avoiding re-creation of the same regex over and over), scanning only 
the regexes that apply to a given directory and various improvements to 
the regexes themselves.

Give it a shot and make sure it works with your current projects.  If 
you find something breaking, please try to reduce it to a managable 
testcase before reporting - stuff changes all the time and it may not be 
related to the regex changes.  Ideally, your testcase should consist of 
a single task with a single fileset and a number of files to select from.

Finally, if you are wondering why NAnt is behaving a certain way with 
your filesets, you can uncomment the "DEBUG_REGEXES" line in 
DirectoryScanner.cs to get a full dump of all directory scanning 
activity (extremely verbose).

Matt.
---
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: fileset/directoryscanner hang

2004-09-07 Thread Matthew Mastracci

I think we decided to just document this side-effect.

My memory fails me here ... But if that is what we decided, then I 
guess we should indeed document it in both the filset doc and in the 
release notes ..

Sounds fair.
The reason for keeping this was that it was more consistent with
patterns like foo/**/bar.cs.  We can enhance the warning in
DirectoryScanner.cs to recommend using either "**" to match the base
directory or "*/**" to not match the base directory.  I suppose we could
even make that particular pattern an error.

Not sure we should do this ...
Since the pattern isn't optimal, I think a warning could be useful 
here.  Ideally, you should choose one of the patterns above instead for 
maximum performance, rather than using the strange corner-case pattern 
itself.  :)

Matt.
begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900 a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
x-mozilla-html:FALSE
url:http://www.aclaro.com
version:2.1
end:vcard



Re: task GacCache / AppDomain construction (was : Re: Re: Re: [nant-dev] Bugs)

2004-09-04 Thread Matthew Mastracci
Okay - I added code to recreate the AppDomain within the GacCache each
time we do a project build.  Even though it might not be necessary, it
should ensure that we "trim the fat" by getting rid of all the stuff we
loaded into the AppDomain during the project run.

Since we keep the results of previous runs cached, this shouldn't have
an appreciable impact on performance.

Matt.

On Sat, 2004-09-04 at 09:04, Gert Driesen wrote:
> - Original Message - 
> From: "Matthew Mastracci" <[EMAIL PROTECTED]>
> To: "Gert Driesen" <[EMAIL PROTECTED]>
> Cc: "Jackfan" <[EMAIL PROTECTED]>; "Nant-Developers (E-Mail)" 
> <[EMAIL PROTECTED]>
> Sent: Saturday, September 04, 2004 4:40 PM
> Subject: Re:  task GacCache / AppDomain construction (was : Re: 
> Re: Re: [nant-dev] Bugs)
> 
> 
> >> Matthew : the problem is that we use one GacCache for the complete run of
> >> the solution, so any assembly that is loaded will be locked for the 
> >> entire
> >> run. That's why I initially created a new gaccache wherever we needed 
> >> one,
> >> but you changed that for performance reasons ... I definitely have no
> >> problem with that, however I think its more important to have a 
> >> functional
> >>  task than to have slightly improved performance. There's
> >> definitely more performance to gain by optimizing the resource 
> >> compilation
> >> (as mentioned in my email to the dev list a few days ago)
> >>
> >
> > The big reason I changed it was that if all references are set
> > correctly, loading DLLs via the GacCache should work fine.  Since we
> > build a reference before we use it, this shouldn't be a problem.
> >
> > If I'm not mistaken, VS.NET won't let you build multiple projects to the
> > same directory.  It ends up keeping a lock on the referenced files, much
> > as we do.
> >
> > Ideally, I would like to rebuild the GacCache only if absolutely
> > necessary.  It would be nice to test to see if the reference is already
> > up-to-date in the target directory and, if so, forget about the copying
> > step altogether.  If the file has to be copied and the GacCache has it
> > locked, we could then tear down and recreate the GacCache.  The teardown
> > step would probably not happen that often, since the same references
> > would be copied over and over to the target output directory.
> >
> > I suppose an alternate method might be for us to enumerate the GAC
> > assemblies via the appropriate Fusion API instead of doing a test load
> > each time.  Another method might be to recreate the GacCache each time,
> > but copy the HashTable that determines whether the assembly is in the
> > cache.
> >
> > This second alternate method sounds like it might be the best tradeoff
> > for us.  I suppose we could keep a single GacCache around, but recreate
> > the AppDomain behind the scenes (being careful to maintain the cache
> > itself).  How does this sound?
> >
> > If you recreate the GacCache for each and every project, compilation for
> > big projects slows down by a factor of 2x or 3x.  This is unbelievably
> > painful for 100+ project solutions.
> 
> For now, we'll hold off on any changes I guess. "Jackfan"'s problem might 
> actually have been caused by another minor issue anyway.
> 
> Gert 
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: task GacCache / AppDomain construction (was : Re: Re: Re: [nant-dev] Bugs)

2004-09-04 Thread Matthew Mastracci
> >>> NAnt 0.85 (Build 0.85.1705.0; net-1.0.win32; nightly; 2004-9-1)
> >>> Copyright (C) 2001-2004 Gerry Shaw
> >>> http://nant.sourceforge.net
> >>>
> >>> Buildfile: file:///D:/Work/idg/default.build
> >>> Target(s) specified: build
> >>>
> >>>
> >>> build:
> >>>
> >>> [solution] Starting solution build.
> >>> [solution] The reference component 'VBIDE' has an updated custom wrapper
> >>> availa
> >>> ble.
> >>>
> >>> BUILD FAILED - 0 non-fatal error(s), 1 warning(s)
> >>>
> >>> Couldn't find reference to type library 'Office'
> >>> (TYPELIB\{2DF8D04C-5BFA-101B-BD
> >>> E5-00AA0044DE52}\2.1\0\win32).
> >>> ==
> >>> by the way, I used 3 generated dlls from Microsoft Office2000, 
> >>> VBIDE.dll,
> >>> Office.dll, Excel.dll, and my real office version is 2003 .
> >>> But in visual studio .net, there is no any problem, it can be compiled 
> >>> and
> >>> run successfully.
> >>>
> >>> === At 2004-09-04, 12:48:26 you wrote: ===
> >>>
> >>>>Hi,
> >>>>
> >>>>This issue was fixed since the 0.84 release.
> >>>>
> >>>>Try using a recent nightly build of NAnt
> >>>>(http://nant.sourceforge.net/nightly/builds).
> >>>>
> >>>>Gert
> >>>>
> >>>>- Original Message - 
> >>>>From: "Jackfan" <[EMAIL PROTECTED]>
> >>>>To: "nant-developers" <[EMAIL PROTECTED]>
> >>>>Sent: Friday, September 03, 2004 9:35 AM
> >>>>Subject: [nant-dev] Bugs
> >>>>
> >>>>
> >>>>> Dear nant-developers:
> >>>>> In my solution, there is one project that will include office.dll,
> >>>>> excel.dll, vbide.dll, but nant can't find them, is this a bug?
> >>>>>
> >>>>> =Error=
> >>>>>
> >>>>> build:
> >>>>>
> >>>>> [solution] Starting solution build.
> >>>>>
> >>>>> BUILD FAILED
> >>>>>
> >>>>> INTERNAL ERROR
> >>>>>
> >>>>> System.ApplicationException: Couldn't find reference to type library
> >>>>> 'Office' (T
> >>>>> YPELIB\{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}\2.1\0\win32).
> >>>>>   at NAnt.VSNet.Reference.HandleWrapperImport(XmlElement 
> >>>>> elemReference)
> >>>>>   at NAnt.VSNet.Reference..ctor(Solution solution, ProjectSettings ps,
> >>>>> XmlEleme
> >>>>> nt elemReference, SolutionTask solutionTask, String outputDir)
> >>>>>   at NAnt.VSNet.Project.Load(Solution sln, String projectPath)
> >>>>>   at NAnt.VSNet.ProjectFactory.LoadProject(Solution sln, SolutionTask
> >>>>> slnTask,
> >>>>> TempFileCollection tfc, String outputDir, String path)
> >>>>>   at NAnt.VSNet.Solution.LoadProjects()
> >>>>>   at NAnt.VSNet.Solution..ctor(String solutionFileName, ArrayList
> >>>>> additionalPro
> >>>>> jects, ArrayList referenceProjects, TempFileCollection tfc, 
> >>>>> SolutionTask
> >>>>> solutio
> >>>>> nTask, WebMapCollection webMappings, FileSet excludesProjects, String
> >>>>> outputDir)
> >>>>>
> >>>>>   at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()
> >>>>>   at NAnt.Core.Task.Execute()
> >>>>>   at NAnt.Core.Target.Execute()
> >>>>>   at NAnt.Core.Project.Execute(String targetName, Boolean
> >>>>> forceDependencies)
> >>>>>   at NAnt.Core.Project.Execute()
> >>>>>   at NAnt.Core.Project.Run()
> >>>>>
> >>>>> Please send bug report to [EMAIL PROTECTED]
> >>>>>
> >>>>> Total time: 2.9 seconds.
> >>>>>
> >>>>>
> >>>>> My build 
> >>>>> file===
> >>>>> 
> >>>>>  
> >>>>>
> >>>>>  
> >>>>>  
> >>>>> 
> >>>>>  
> >>>>> 
> >>>>>
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>>
> >>>>>  
> >>>>>  >>>>> configuration="${config.debug}"/>
> >>>>>  
> >>>>> 
> >>>>>
> >>>>> Your sincerely:
> >>>>> Jackfan
> >>>>> [EMAIL PROTECTED]
> >>>>> 2004-09-03
> >>>>>
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> This SF.Net email is sponsored by BEA Weblogic Workshop
> >>>>> FREE Java Enterprise J2EE developer tools!
> >>>>> Get your free copy of BEA WebLogic Workshop 8.1 today.
> >>>>> http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
> >>>>> ___
> >>>>> nant-developers mailing list
> >>>>> [EMAIL PROTECTED]
> >>>>> https://lists.sourceforge.net/lists/listinfo/nant-developers
> >>>>>
> >>>>
> >>>
> >>> = = = = = = = = = = = = = = = = = = = =
> >>>
> >>> Your sincerely:
> >>> Jackfan
> >>> [EMAIL PROTECTED]
> >>> 2004-09-04
> >>>
> >>>
> >>>
> >>
> >
> > = = = = = = = = = = = = = = = = = = = =
> >
> > Your sincerely:
> > Jackfan
> > [EMAIL PROTECTED]
> > 2004-09-04
> >
> >
> > 
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: Fw: [nant-dev] current cvs build failure

2004-07-19 Thread Matthew Mastracci






After short consideration, I suppose the following rules apply (and
should be documented):

If a pattern is not rooted, it implicitly applies only to files and
directories gathered from non-rooted include patterns and only to
the segment of the path after the base directory segment.  For
instance, if the base directory is "C:\cvs\foo\bar\" and the pattern is
"**/CVS/**", the pattern will only be tested against the filenames
relative to the C:\cvs\foo\bar directory.  C:\cvs\foo\bar\xxx\x.cs will
be tested as "xxx\x.cs" against the pattern ".*/CVS/.*".  Note that the
this rule will disable "**/CVS/**" checking in absolutely-specified
paths (do we allow check this now?).  One question: how do patterns
specified using ".." work?

* Note: "frompath" patterns could be a special case of the above where
the base directory is set to each of the path elements and searched as
above.

If a pattern is rooted, it is tested against the entire path string. 
If the full pattern path happens to correspond to the base directory,
it may apply to files beneath the base directory.

We should probably document the "defaultincludes" boolean flag as
well.  ;)

Matthew Mastracci wrote:

  
  
  
  
Managed to reproduce this issue by building on a different drive with
the path "Z:\cvs\nant\..."
  
Looks like the "**/CVS/**" pattern is matching the \cvs\ bit in the
pathname.  There's an implicit rule in NAnt that the include/exclude
patterns only apply to the part of the path added after the base
directory.  The old (and currently correct) behavior is to test the
pattern appended to the root path:
  
^Z:\cvs\nant\(some wildcard pattern)$
  
The new behaviour optimized this to just
  
(some wildcard pattern)
  
Of course, this new behaviour will break anything under a "cvs/"
directory.  What should happen in this following case with the implicit
"**/CVS/**" rule?  Is this even valid?
  

  
  

  
Matt.
  
Gert Driesen wrote:
  
- Original Message -
From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Matthew Mastracci" <[EMAIL PROTECTED]>
Cc: "Gert Driesen" <[EMAIL PROTECTED]>
Sent: Friday, July 09, 2004 4:12 AM
Subject: Re: Fw: [nant-dev] current cvs build failure


  

  Matthew Mastracci wrote:


  
Strange - I had the same issue while I was developing (turned out that
the DirectoryScanner was busted), but the fix for that was checked in.


  
  
  Where was the fix ? Maybe its manifesting itself in another way on my
machine setup



I can reproduce it here too. For now, I've reverted DirectoryScanner.cs back
to 1.33.

Gert

  
  
  




begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900 a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
x-mozilla-html:FALSE
url:http://www.aclaro.com
version:2.1
end:vcard



Re: Fw: [nant-dev] current cvs build failure

2004-07-19 Thread Matthew Mastracci






Managed to reproduce this issue by building on a different drive with
the path "Z:\cvs\nant\..."

Looks like the "**/CVS/**" pattern is matching the \cvs\ bit in the
pathname.  There's an implicit rule in NAnt that the include/exclude
patterns only apply to the part of the path added after the base
directory.  The old (and currently correct) behavior is to test the
pattern appended to the root path:

^Z:\cvs\nant\(some wildcard pattern)$

The new behaviour optimized this to just

(some wildcard pattern)

Of course, this new behaviour will break anything under a "cvs/"
directory.  What should happen in this following case with the implicit
"**/CVS/**" rule?  Is this even valid?


  
  


Matt.

Gert Driesen wrote:

  - Original Message -
From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Matthew Mastracci" <[EMAIL PROTECTED]>
Cc: "Gert Driesen" <[EMAIL PROTECTED]>
Sent: Friday, July 09, 2004 4:12 AM
Subject: Re: Fw: [nant-dev] current cvs build failure


  
  
Matthew Mastracci wrote:



  Strange - I had the same issue while I was developing (turned out that
the DirectoryScanner was busted), but the fix for that was checked in.


  

Where was the fix ? Maybe its manifesting itself in another way on my
machine setup

  
  
I can reproduce it here too. For now, I've reverted DirectoryScanner.cs back
to 1.33.

Gert

  




begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900 a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
x-mozilla-html:FALSE
url:http://www.aclaro.com
version:2.1
end:vcard



[nant-dev] Re: Two broken testcases - edge case question

2004-07-19 Thread Matthew Mastracci
Troy Laurin wrote:
Matthew,
The new behaviour more closely follows the documentation, and as you say
this becomes consistent with handling of files... but any build files
relying on the old behaviour will of course break.
The fix is simple, to replace "**/*" with "*/**/*", but it may be hard
to diagnose if/when upgrading breaks your build script...
Yeah - it's tricky to determine if this is a problem or not.  It's such 
a strange pattern to use (it only appeared in a testcase).

A note on your previous email...
2.  foo/**/*.cs was being converted to "foo/(^\\.*)*/[^\\]*.cs"  This
is now converted to foo/\\?.*[^\\]*.cs, also much faster.
"foo/(^\\.*)*/[^\\]*.cs"
Looking at the code for DirectoryScanner, how is it possible for this to
be produced?  On windows, I get "foo(\\.*)*\\[^\\]*\.cs".  From looking
at the code, on unix/linux I would expect to get "foo(/.*)*/[^/]*\.cs".
The conversion result would then be "foo.*/[^/]*\.cs", which appears to
give exactly the same results.
Note that my message here is out of sync with current CVS until I get it 
working.  :)

Also note that all my assertions were backed up by profiling/timing a 
test application with the given regexes.

It's faster to scan for single characters, rather than a repeating 
group.  I don't know how this is implemented internally, but profiling 
(and my suspicions initially) figured that it would be easier to scan 
using straight patterns rather than a pattern than requires nested 
pattern scanning (ie: the repeating group with negation).

I'm curious that taking out the ^$ anchors speeds up the search, since
there's an explicit comment in the DirectoryScanner source noting that
they are added to improve the speed... and it makes sense that including
them would reduce the amount of stringspace that would need to be
examined by the regular expression... then again, I haven't tried
comparing the speed of each regular expression, so I'm happy to accept
that my understanding might be flawed :-)
If you are searching for an entire string, anchoring is faster.  For 
instance, if you are searching for "blah foo bar" in the string "blah 
foo bar", anchoring will be the fastest way to find it.

It turns out to be slower to search for this pattern:
"$.*blah foo bar.*^"
than for this pattern:
"blah foo bar"
I'm only removing anchors if they conflict with wildcards, since the 
regex engine can terminate early in the latter pattern, while it needs 
to scan to the end of the string in the former.

A couple of extra comments on DirectoryScanner...
Both the ToRegexPattern and ParseSearchDirectoryAndPattern methods
perform slash replacement.  ToRegexPattern is private, and only called
from ParseSearchDirectoryAndPattern, so should be able to assume that
slashes are already replaced.
Sounds good to me.  I'll have to take a look to see if I can remove the 
extra replacement.

Just being picky, but shouldn't 'if (s.Length == 2 && s[1] ==
Path.VolumeSeparatorChar) {' be 'if
(s.EndsWith(Path.VolumeSeparatorChar)) {'?  This allows for platforms
that support named volumes, as well as just drive letters.  Not that
there are any platforms like this around any more :-)
Seeing as how Path.VolumeSeparatorChar is a "char", our current 
comparison will support all possible return values.  ;)

Thanks for the note,
Matt.

Regards,
-- Troy

-Original Message-
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On 
Behalf Of Matthew Mastracci
Sent: Thursday, 8 July 2004 5:34 AM
To: Nant-Developers (E-mail)
Subject: [nant-dev] Two broken testcases - edge case question

It looks like the regex optimization broke an edge case:
**/* now matches the base directory, as well as any 
subdirectories on a FileSet.DirectoryNames call.  For 
instance, in the following directory structure, all three 
will be matched with a base directory of "C:\foo":

C:\foo
C:\foo\bar
C:\foo\baz
The old behaviour would only match the two subdirectories.
Is this behaviour important to anyone?  This is actually more 
consistent, considering that:

file/**/*.cs
matches:
file/bar.cs
file/foo/bar.cs
file/foo/foo/bar.cs
"**/" can basically be considered to be "current directory or 
subdirectories".

Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor 
pitches, unmatched networking opportunities. Visit 
www.blackhat.com ___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers



Disclaimer Message:
This message contains confidential information and is intended only for the 
indivi

Re: Fw: [nant-dev] current cvs build failure

2004-07-08 Thread Matthew Mastracci
On Thu, 2004-07-08 at 20:12, Ian MacLean wrote:
> Matthew Mastracci wrote:
> 
> >Strange - I had the same issue while I was developing (turned out that
> >the DirectoryScanner was busted), but the fix for that was checked in.  
> >  
> >
> Where was the fix ? Maybe its manifesting itself in another way on my 
> machine setup

It was one of my interim builds that was failing in that way before I
had finished the implementation.  Basically, the test patterns weren't
matching the task DLLs as they should.

I took a look at what might be going wrong.  I assume that the
"*Tasks.dll" pattern is no longer matching the correct task DLLs for
some reason. 

Could you uncomment the "DEBUG_REGEXES" line in DirectoryScanner.cs and
send the output just before it fails?  It might give more insight into
what is happening.

I only have the 1.1 SDK installed on this box - I don't know if it's
framework-specific.

I'll be going out of town tomorrow morning - we can always revert
DirectoryScanner.cs and I can fix it when I get back.

Matt.

> >I just ran my local tests and everything seems to be running just fine.
> >
> >Can you grab another checkout to verify that you got my latest changes? 
> >I'm a little puzzled to why this might be happening.
> >
> >  
> >
> did a fresh checkout which didn't update any files ( ie yesterdays sync 
> was the latest code ) and I'm still seeing it. If I revert 
> DirectoryScanner.cs back to an older version and rebuild it works.
> 
> >My command-line is:
> >
> >bin\nant debug set-net-1.1-framework-configuration test
> >
> >  
> >
> it fails with that or just a bin\nant.
> 
> Is anyone else seeing this failure  ?
> 
> Ian
> 
> >On Thu, 2004-07-08 at 12:00, Gert Driesen wrote:
> >  
> >
> >>Matthew,
> >>
> >>Can you please have a look at this issue ?
> >>
> >>Thanks !
> >>
> >>Gert
> >>
> >>- Original Message -
> >>From: "Gert Driesen" <[EMAIL PROTECTED]>
> >>To: "Ian MacLean" <[EMAIL PROTECTED]>; "Nant-Developers (E-mail)"
> >><[EMAIL PROTECTED]>
> >>Sent: Thursday, July 08, 2004 8:15 AM
> >>Subject: Re: [nant-dev] current cvs build failure
> >>
> >>
> >>
> >>
> >>>- Original Message -
> >>>From: "Ian MacLean" <[EMAIL PROTECTED]>
> >>>To: "Nant-Developers (E-mail)" <[EMAIL PROTECTED]>
> >>>Sent: Thursday, July 08, 2004 5:28 AM
> >>>Subject: [nant-dev] current cvs build failure
> >>>
> >>>
> >>>  
> >>>
> >>>>A fresh cvs checkout of nant is failing with the following :
> 2>>>>
> >>>> [echo] Running unit tests with just built version of NAnt.
> >>>> [exec]
> >>>>H:\cvs\nant-test\nant/build/net-1.1.win32/nant-0.85-debug/bin/NAnt.exe
> >>>>-buildfile:NAnt.build debug self-test -D:proje
> >>>>ct.version=0.85 -targetframework:net-1.1
> >>>>NAnt 0.85 (Build 0.85.1650.0; net-1.1.win32; nightly;
> >>>>
> >>>>
> >>>7/8/2004)
> >>>  
> >>>
> >>>>Copyright (C) 2001-2004 Gerry Shaw
> >>>>NAnt Team
> >>>>
> >>>>BUILD FAILED
> >>>>
> >>>>
> >>>>For more information regarding the cause of the build
> >>>>failure, run the build again in debug mode.
> >>>>
> >>>>Try 'nant -help' for more information
> >>>>The current runtime framework 'net-1.1' is not correctly
> >>>>configured in the NAnt configuration file.
> >>>>Invalid element . Unknown task or
> >>>>
> >>>>
> >>datatype.
> >>
> >>
> >>>>BUILD FAILED
> >>>>
> >>>>H:\cvs\nant-test\nant\NAnt.build(160,10):
> >>>>External Program Failed:
> >>>>H:\cvs\nant-test\nant/build/net-1.1.win32/nant-0.85-debug/bin/NAnt.exe
> >>>>(return code was 1)
> >>>>
> >>>>This is new since yesterday - Does anyone who checked in code in the
> >>>>
> >>>>
> >>last
> >>
> >>
> >>>day have an idea ?
> >>>
> >>>I think there's an issue with the DirectoryScanner changes that Matthew
> >>>committed yesterday.
> >>>
> >>>Matthew, can you have a look at this (possibly write some more unit tests,
> >>>so we don't have any regression on this in the future) ?
> >>>
> >>>Thanks,
> >>>
> >>>Gert
> >>>
> >>>  
> >>>
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Two broken testcases - edge case question

2004-07-07 Thread Matthew Mastracci
It looks like the regex optimization broke an edge case:
**/* now matches the base directory, as well as any subdirectories on a 
FileSet.DirectoryNames call.  For instance, in the following directory 
structure, all three will be matched with a base directory of "C:\foo":

C:\foo
C:\foo\bar
C:\foo\baz
The old behaviour would only match the two subdirectories.
Is this behaviour important to anyone?  This is actually more 
consistent, considering that:

file/**/*.cs
matches:
file/bar.cs
file/foo/bar.cs
file/foo/foo/bar.cs
"**/" can basically be considered to be "current directory or 
subdirectories".

Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Fileset scanning speed-ups in CVS

2004-07-07 Thread Matthew Mastracci
Okay, compiling all regexes makes the Regex.Test() contribution now 30% 
of the total runtime, versus 60% before.  :)

Surprisingly, the compilation of the regexes seems to be negligible 
(something I didn't expect).  Checked-in.

Next, I optimized some of our common regexes:
1.  **/blah/** was being converted to "^.*/blah/.*.$"  This 
has been optimized now to the functionally equivalent and much faster 
"/blah/".  Note that the root path and start/end line markers are no 
longer used.

The root path optimization should be valid, since we only include 
directories that would be matched by the pattern anyways.  If you can 
think of a pattern that violates this, please create a unit test in 
DirectoryScannerTest and I can fix it.

2.  foo/**/*.cs was being converted to "foo/(^\\.*)*/[^\\]*.cs"  This is 
now converted to foo/\\?.*[^\\]*.cs, also much faster.

Regex comparisons are now 3% of the total runtime of NAnt during my test 
build - effectively dwarfed by most other operations.

Matt.
Matthew Mastracci wrote:
Just as an extra note-
Before the change, there were 13 regex comparisons in one of our 
projects.

The change reduces this to 128000 string comparisons (taking less than 
1% of the time) and 2000 regex comparisons (taking the remaining 60% of 
the time).  Note that all numbers are approximate from profiling- you 
can use nprof to get some of your own if you wish.

I'm considering adding regex compilation to the mix, avoiding some of 
the Regex.Match overhead (since the regexes should only be compiled once 
for a single build file).  I'm not certain if the overhead of compiling 
regexes would overwhelm the savings, but I'm more confident now that the 
majority of generated regular expressions (ie: filesets passed to 
subtasks) are now simple regular expressions.

The remaining regular expressions are likely the ones passed by the 
build file author themselves, along with some of the built-in ones like 
**/CVS/**, etc.  If we cache the compiled

Matt.
Matthew Mastracci wrote:
I just checked in a change to fileset scanning that eliminates a large 
chunk of time (checked via profiling) during many of the common NAnt 
operations.

One of the biggest losers on the profiling run was Regex.Match(), 
called many, many times during a build.  The new code replaces a good 
proportion of these with CompareInfo.Compare() calls, reducing the 
overhead dramatically.

Instead of converting all  includes to regexes, the new code 
will only convert those that actually contain wildcards.

Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital 
self defense, top technical experts, no vendor pitches, unmatched 
networking opportunities. Visit www.blackhat.com


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital 
self defense, top technical experts, no vendor pitches, unmatched 
networking opportunities. Visit www.blackhat.com

---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Some profiling hot-spots to optimize

2004-07-07 Thread Matthew Mastracci
Here's a few hot-spots that someone could probably pick off pretty easy. 
 All percentages are relative to total time.

This is from running a  task based build.  I haven't tried a 
-based build yet.

ProjectSettingsLoader::ProcessPlatform -> 5.6%
 +- ProjectSettingsLoader::ProcessFrameworks -> 2%
 - Combine the filesets for task scanning to reduce overhead.
GacCache::IsAssemblyInGac -> 3.66% (remoting overhead)
 - Find a way to communicate more efficiently between main and remote 
AppDomain.

CultureInfo::get_CurrentCulture -> 1658074 calls, 8.34%
 - Find a way for the regexes not to get the current culture repeatedly.
NAnt.VSNet.ProjectFactory::LoadProjectXml() -> 15%
 - Find a more efficient way to load the project Xml.
AppDomain::Unload() -> 11.92%
 - Called from GacCache::Dispose() to get rid of AppDomain
 - Unload AppDomains asynchronously?
Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Fileset scanning speed-ups in CVS

2004-07-06 Thread Matthew Mastracci
Just as an extra note-
Before the change, there were 13 regex comparisons in one of our 
projects.

The change reduces this to 128000 string comparisons (taking less than 
1% of the time) and 2000 regex comparisons (taking the remaining 60% of 
the time).  Note that all numbers are approximate from profiling- you 
can use nprof to get some of your own if you wish.

I'm considering adding regex compilation to the mix, avoiding some of 
the Regex.Match overhead (since the regexes should only be compiled once 
for a single build file).  I'm not certain if the overhead of compiling 
regexes would overwhelm the savings, but I'm more confident now that the 
majority of generated regular expressions (ie: filesets passed to 
subtasks) are now simple regular expressions.

The remaining regular expressions are likely the ones passed by the 
build file author themselves, along with some of the built-in ones like 
**/CVS/**, etc.  If we cache the compiled

Matt.
Matthew Mastracci wrote:
I just checked in a change to fileset scanning that eliminates a large 
chunk of time (checked via profiling) during many of the common NAnt 
operations.

One of the biggest losers on the profiling run was Regex.Match(), called 
many, many times during a build.  The new code replaces a good 
proportion of these with CompareInfo.Compare() calls, reducing the 
overhead dramatically.

Instead of converting all  includes to regexes, the new code 
will only convert those that actually contain wildcards.

Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital 
self defense, top technical experts, no vendor pitches, unmatched 
networking opportunities. Visit www.blackhat.com

---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Fileset scanning speed-ups in CVS

2004-07-06 Thread Matthew Mastracci
Scott Hernandez wrote:
Good work. That is one that needed to be optimized :)
Do you have profiler stats/results on other most called, or time most spent
in, functions? It would be good to list them so anyone out there could step
up to challenge themselves with optimizing those functions. Just an idea...
 

Unfortunately, I haven't hooked up the "copy to clipboard" functionality 
in nprof, so all I can provide is a screenshot.  ;)

I can probably summarize the trouble spots by hand- the NAnt-bootstrap 
build would be a good candidate.  My goal right now is to catch the 
low-hanging fruit for a general  build to match (or exceed) 
VS.NET's compilation speed wherever possible.

Matt.
- Original Message ----- 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>

 

I just checked in a change to fileset scanning that eliminates a large
chunk of time (checked via profiling) during many of the common NAnt
operations.
One of the biggest losers on the profiling run was Regex.Match(), called
many, many times during a build.  The new code replaces a good
proportion of these with CompareInfo.Compare() calls, reducing the
overhead dramatically.
Instead of converting all  includes to regexes, the new code
will only convert those that actually contain wildcards.
   

 


begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900 a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
x-mozilla-html:FALSE
url:http://www.aclaro.com
version:2.1
end:vcard



[nant-dev] Fileset scanning speed-ups in CVS

2004-07-06 Thread Matthew Mastracci
I just checked in a change to fileset scanning that eliminates a large 
chunk of time (checked via profiling) during many of the common NAnt 
operations.

One of the biggest losers on the profiling run was Regex.Match(), called 
many, many times during a build.  The new code replaces a good 
proportion of these with CompareInfo.Compare() calls, reducing the 
overhead dramatically.

Instead of converting all  includes to regexes, the new code 
will only convert those that actually contain wildcards.

Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Projects and current working directory

2004-07-06 Thread Matthew Mastracci
Something that changed in the last six months or so (perhaps longer?) is 
that the projects no longer set their working directory equal to the 
base directory of the project itself.

I'm proposing the following patch to Project.cs to fix this.  Since I 
don't know if anyone relies on the current, strange behaviour, I'm 
posting this here for discussion.

I know that Project.GetFullPath() is supposed to handle this stuff, but 
I believe there might be a few cases within NAnt where it isn't handled 
properly (ie: paths are taken literally, rather than using 
Project.GetFullPath).  I know my  compiles take longer with 
this disabled, but I haven't yet determined what the problem is.

--- Project.cs  24 May 2004 18:03:38 -  1.71
+++ Project.cs  5 Jul 2004 22:36:36 -
@@ -882,8 +882,12 @@
 public bool Run() {
 Exception error = null;
 DateTime startTime = DateTime.Now;
+string oldDirectory = Directory.GetCurrentDirectory();
 try {
+// change to the base directory of the project before 
running anything
+Directory.SetCurrentDirectory(BaseDirectory);
+
 OnBuildStarted(this, new BuildEventArgs(this));
 Log(Level.Info, "Buildfile: {0}", BuildFileUri);

@@ -917,6 +921,9 @@
 // signal build failure
 return false;
 } finally {
+// restore the old directory
+Directory.SetCurrentDirectory(oldDirectory);
+
 string endTarget;
 if (error == null) {

---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: [nant-commits] CVS: nant/src/NAnt.Console NAnt.Console.exe.config,1.58,1.59

2004-07-06 Thread Matthew Mastracci
You're right - it is braindead.
It works if you only specify a single component to license, otherwise it 
fails.  :(

What I didn't realize is that it will try over and over to re-populate 
its hashtable, failing.  This causes the assembly resolution to fail. 
Unfortunately, there isn't any way to call lc.exe multiple times.

We should probably be documenting some of these quirks somewhere.  I 
usually end up running into something that looks like a bug, but turns 
out to be "by design".

Matt.
Matthew Mastracci wrote:
Gert Driesen wrote:
Matthew,
The .NET 1.1 lc.exe indeed has a command line switch for specifying 
assembly
references, but it doesn't work.  That's why we don't use it.
 

Actually, it does and I have proof.  :)  The only thing is that you 
can't specify assemblies that exist in the GAC (it gives you various 
errors from having the same key twice in a hashtable).

Basically, it works for me and I can see exactly why given the 
decompiled source.

Using Reflector:
   handler1 = new 
ResolveEventHandler(LicenseCompiler.OnAssemblyResolve);
   AppDomain.CurrentDomain.AssemblyResolve += handler1;
   context1 = new DesigntimeLicenseContext();

and in OnAssemblyResolve
...
 foreach (string text2 in LicenseCompiler.assemblies)
 {
   assembly1 = Assembly.LoadFrom(text2);
   if (assembly1 == null)
   {
 return null;
   }
   text3 = assembly1.GetName().Name;
   LicenseCompiler.assemHash.Add(text3, assembly1);
   if (text3 != text1)
   {
 continue;
   }
   return assembly1;
 }
...
Gert
- Original Message -
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, July 06, 2004 2:24 AM
Subject: [nant-commits] CVS: nant/src/NAnt.Console
NAnt.Console.exe.config,1.58,1.59
 

Update of /cvsroot/nant/nant/src/NAnt.Console
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8787
Modified Files:
NAnt.Console.exe.config
Log Message:
lc.exe supports assembly references
Index: NAnt.Console.exe.config
===
RCS file: /cvsroot/nant/nant/src/NAnt.Console/NAnt.Console.exe.config,v
retrieving revision 1.58
retrieving revision 1.59
diff -C2 -d -r1.58 -r1.59
*** NAnt.Console.exe.config 5 Jul 2004 18:11:21 - 1.58
--- NAnt.Console.exe.config 6 Jul 2004 00:24:11 - 1.59
***
*** 153,156 
--- 153,157 
 
 lc
+ 
  
name="supportsassemblyreferences">true
 

 
 

---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
___
nant-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-commits
  

 



---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: ResGen assembly references?

2004-07-06 Thread Matthew Mastracci
Gert Driesen wrote:
Can't we do a quick parse of the resx sources to see if they require
those references ? A large number of cases do not require any references
at all.

Yeah we probably could ... Just didn't/don't have time for that, and didn't
see much need for it at that point ...
I had to comment it out here because it was taking up to ten seconds to 
compile each .resx file in the solution.

BTW- could we just skip copying resources and compile the .resx files 
after we copy references?  I'm assuming that VS.NET would be compiling 
the .resx file using only the "Copy Local" references anyways, so we 
wouldn't be doing anything differently.

I'm working on cutting down the time for a  build in our
shop again (via profiling)- this is one of the biggest culprits right
now.  :)
I understand, but we can't sacrifice features for performance.
But on the other hand we shouldn't slow down *every*  solution based
build in order to satisfy some corner cases if we can avoid doing so.

No ofcourse not, if we can combine performance and features, I'm all for it
;-)
This is a really big performance drain for any build that uses 
references extensively.  I'd say it's a good candidate for performance 
tuning.  :)

Matt.
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: [nant-commits] CVS: nant/src/NAnt.Console NAnt.Console.exe.config,1.58,1.59

2004-07-06 Thread Matthew Mastracci
Gert Driesen wrote:
Matthew,
The .NET 1.1 lc.exe indeed has a command line switch for specifying assembly
references, but it doesn't work.  That's why we don't use it.
 

Actually, it does and I have proof.  :)  The only thing is that you 
can't specify assemblies that exist in the GAC (it gives you various 
errors from having the same key twice in a hashtable).

Basically, it works for me and I can see exactly why given the 
decompiled source.

Using Reflector:
   handler1 = new 
ResolveEventHandler(LicenseCompiler.OnAssemblyResolve);
   AppDomain.CurrentDomain.AssemblyResolve += handler1;
   context1 = new DesigntimeLicenseContext();

and in OnAssemblyResolve
...
 foreach (string text2 in LicenseCompiler.assemblies)
 {
   assembly1 = Assembly.LoadFrom(text2);
   if (assembly1 == null)
   {
 return null;
   }
   text3 = assembly1.GetName().Name;
   LicenseCompiler.assemHash.Add(text3, assembly1);
   if (text3 != text1)
   {
 continue;
   }
   return assembly1;
 }
...
Gert
- Original Message -
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, July 06, 2004 2:24 AM
Subject: [nant-commits] CVS: nant/src/NAnt.Console
NAnt.Console.exe.config,1.58,1.59
 

Update of /cvsroot/nant/nant/src/NAnt.Console
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8787
Modified Files:
NAnt.Console.exe.config
Log Message:
lc.exe supports assembly references
Index: NAnt.Console.exe.config
===
RCS file: /cvsroot/nant/nant/src/NAnt.Console/NAnt.Console.exe.config,v
retrieving revision 1.58
retrieving revision 1.59
diff -C2 -d -r1.58 -r1.59
*** NAnt.Console.exe.config 5 Jul 2004 18:11:21 - 1.58
--- NAnt.Console.exe.config 6 Jul 2004 00:24:11 - 1.59
***
*** 153,156 
--- 153,157 
 
 lc
+ 
   

name="supportsassemblyreferences">true
 

 
 

---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
___
nant-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-commits
   

 


begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900 a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
x-mozilla-html:FALSE
url:http://www.aclaro.com
version:2.1
end:vcard



Re: [nant-dev] Re: ResGen assembly references?

2004-07-06 Thread Matthew Mastracci
Can anyone give me a hint on how to create these assembly references in 
1.0/1.1 via VS.NET?  I haven't seen them before.

Gert Driesen wrote:
- Original Message -
From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>
Cc: "Matthew Mastracci" <[EMAIL PROTECTED]>; "Nant-Developers (E-Mail)"
<[EMAIL PROTECTED]>
Sent: Tuesday, July 06, 2004 8:25 AM
Subject: Re: [nant-dev] Re: ResGen assembly references?
 

Gert Driesen wrote:
   

- Original Message -
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Matthew Mastracci" <[EMAIL PROTECTED]>
Cc: "Gert Driesen" <[EMAIL PROTECTED]>
Sent: Tuesday, July 06, 2004 3:13 AM
Subject: Re: ResGen assembly references?
<>Matthew Mastracci wrote:
 

After upgrading to the latest CVS version, I've found that the
 task is taking a long time to run for each project because it
seems to be copying all of the project references.
 

These are necessary, as resx files can contain references to types in the
project references.  So  need to be able to instantiate these
 

types.
 

 

What's the reason for this behaviour?  We've never needed it before
and it increases our build time dramatically.  I don't think the 1.0
or 1.1  tasks can even utilize assembly references.
 

We didn't need it as we didn't implement this yet.  The resgen.exe tool
 

for
 

the .NET 1.0 and .NET 1.1 does not provide direct support for assembly
references, but you can trick it into the by copying the tool itself, and
all assembly references to the same (temporary) directory, and launching
 

the
 

tool from there.  This is what we do for .NET 1.0 and .NET 1.1.  For .NET
2.0 we just specify the assembly references on the command line.

 

Can't we do a quick parse of the resx sources to see if they require
those references ? A large number of cases do not require any references
at all.
   

Yeah we probably could ... Just didn't/don't have time for that, and didn't
see much need for it at that point ...
 

I'm working on cutting down the time for a  build in our
shop again (via profiling)- this is one of the biggest culprits right
now.  :)
 

I understand, but we can't sacrifice features for performance.

 

But on the other hand we shouldn't slow down *every*  solution based
build in order to satisfy some corner cases if we can avoid doing so.
   

No ofcourse not, if we can combine performance and features, I'm all for it
;-)
Gert
 


begin:vcard
fn:Matthew Mastracci
n:Mastracci;Matthew
org:aclaro Softworks, inc.
adr:;;1900 a - 11 St. SE;Calgary;Alberta;T2H 3G2;Canada
email;internet:[EMAIL PROTECTED]
title:Software Developer
tel;work:(403) 299-6612
x-mozilla-html:FALSE
url:http://www.aclaro.com
version:2.1
end:vcard



[nant-dev] task for NAnt :)

2004-04-05 Thread Matthew Mastracci
or, "when Microsoft went open-source."

Looks like Microsoft has finally jumped on the true "open source" 
bandwagon with the release of WiX - an XML to MSI compiler.

It's unfortunately not under a GPL-compatible license (preventing direct 
linking), but the command-line interface would work just fine for most 
purposes, I believe.

An installer-builder (an alternative to NSIS) would certainly be a 
useful tool to help round-out the NAnt toolset.

See here for more info:
http://blogs.msdn.com/robmen
Matt.



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] CopyLocal - once and for all :)

2004-03-18 Thread Matthew Mastracci
Gert Driesen wrote:

Matthew,

The CopyLocal behaviour depends on whether the assembly is a system
assembly or not (and some other criteria too perhaps). 

I'm pretty sure the current implement matches the behaviour of VS.NET
2003, but I might be wrong ofcourse.
Do you have a example of where the behaviour differs ?
I wonder if this is the problem: in Reference.cs, _privateSpecified and 
_isPrivate are being used before they have actually been assigned in the 
constructor (for project refs and visual C++ projects references).

The ternary operator logic is correct, but I think _copyLocal always 
ends up being true for project references due to this bug.  I suppose 
the solution is to move the test up in the file.

This will likely fix my issue.  :)

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] CopyLocal - once and for all :)

2004-03-18 Thread Matthew Mastracci
It seems like our CopyLocal logic in the  task doesn't seem to 
match VS.NET 2003.  Did this change between 2002/2003?

As far as I can see, if the CopyLocal flag is not specified in 2003, it 
should be treated as false.  Does anyone know for sure what this is in 2002?

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: Solution task fixes + speedups

2004-03-18 Thread Matthew Mastracci
Gert Driesen wrote:

So anyways, I finally understand that you are correct - VS.NET does
check AssemblyFolders before HintPath.  IMHO this is a strange way to do
things.  VS.NET doesn't make it easy to easily reproduce a build between
two machines, does it?
No, definitely not.  In my opinion, VS.NET should only use AssemblyFolders
if the AssemblyFolderKey is set on the reference.
I agree!  :)

Unfortunately, I need to build on a clean system that doesn't have any
csproj.user files.  Perhaps I'll just delete the AssemblyFolders key
from the registry on the build machine.
Kind of drastic, no ?
Since the AssemblyFolder stuff doesn't take into account versioning (we 
use two different versions of the ComponentOne stuff and need both for a 
successful build), we need to be able to specify the exact version that 
we're linked against.  C1 is an example of a 3rd party library that 
can't be upgraded from a specific version without *something* breaking.  :)

We also can't really check in the csproj.user file, since each developer 
has their own copy (it's not really meant to be checked in anyways).

Do you have time to add support for the ReferencesPath attrribute to our
reference resolving procedure ?
Do you mean reading the csproj.user files?  Sure.

I suppose we should probably add in some debugging traces for reference 
resolution.  It would make it easier to figure out why a DLL is getting 
picked up from the wrong place.

I really would like to set up a small team of developers to focus on
improving/refactoring the  task, would you be interested ?
Yep.  Just let me know and I'll see if I can allocate a bit of time to 
help out.

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: Solution task fixes + speedups

2004-03-17 Thread Matthew Mastracci
Gert Driesen wrote:

I can also guarantee 100% that VS.NET (2003) is only using the hintpath as a
last resort ;)
I've reverted the change in CVS.  Thanks for the explanation  :)

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: Solution task fixes + speedups

2004-03-17 Thread Matthew Mastracci
Gert Driesen wrote:

Matthew,

I can also guarantee 100% that VS.NET (2003) is only using the hintpath as a
last resort ;)
The actual order is :

1. the project directory (at least this is what MS says, but I doubt this)
2. The ReferencesPath (as stored in the user options file, eg.
.csproj.user)
3. The .NET Framework directory
4. The AssemblyFolder (even if the AssemblyFolderKey is not specified on the
reference itself)
5. The HintPath
Please send me a repro to convince me otherwise, but make sure you first
check if you don't have entries in the ReferencesPath attribute in the .user
file :)
Oh - you're right, I had a bunch of reference paths in the project's 
.user file.  I deleted my .user file and ended up with the same 
behaviour.  Looks like VS.NET is ignoring the HintPath in this case and 
just using the AssemblyFolder version of the .DLL.

So anyways, I finally understand that you are correct - VS.NET does 
check AssemblyFolders before HintPath.  IMHO this is a strange way to do 
things.  VS.NET doesn't make it easy to easily reproduce a build between 
two machines, does it?

Unfortunately, I need to build on a clean system that doesn't have any 
csproj.user files.  Perhaps I'll just delete the AssemblyFolders key 
from the registry on the build machine.

Sorry for doubting.  ;)

Matt.



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Solution task fixes + speedups

2004-03-17 Thread Matthew Mastracci
Matthew Mastracci wrote:

If you want to revert the ordering, please wrap the assembly folder 
stuff with a check for the "AssemblyFolderKey = blah" attribute of the 
reference.  AFAIK, if this attribute is missing, VS.NET ***will not*** 
use the AssemblyFolders for resolution.
Just to clarify, I think the change should be this (pseudo-patch):

private bool ResolveFromAssemblyFolders(XmlElement referenceElement) {
-  if (referenceElement.Attributes["AssemblyFolderKey"] != null) {
+  if (referenceElement.Attributes["AssemblyFolderKey"] == null) {
+  return;
+  } else {
   string assemblyFolderKey = 
referenceElement.Attributes["AssemblyFolderKey"].Value;

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: Solution task fixes + speedups

2004-03-17 Thread Matthew Mastracci
I can absolutely, 100% guarantee that this is the case.  I have a 
.csproj file with the following reference:


The DLL in the HintPath is of version 1.1.20024.78.  When I compile with 
VS.NET, the DLL that ends up in the bin directory is version 1.1.20024.78.

There is also an AssemblyFolder entry that looks like this:

C1Studio = C:\Program Files\ComponentOne Studio.NET\bin

In this directory is C1.Win.C1FlexGrid.dll version 2.1.20034.144.  This 
is not the DLL we want to compile against.

If you want to revert the ordering, please wrap the assembly folder 
stuff with a check for the "AssemblyFolderKey = blah" attribute of the 
reference.  AFAIK, if this attribute is missing, VS.NET ***will not*** 
use the AssemblyFolders for resolution.

Does this sound acceptable?  It looks like with this logic, I should be 
able to compile my project (while keeping your resolution order intact).

Gert Driesen wrote:

Matthew,

I looked into this again, and I'm pretty sure I'm right :

The HintPath is definitely the "last resort" for VS.NET.  So we should undo
your change (unless you can send me a repro).
The issue you encountered was probably due to the fact that we don't yet use
the path list in the ReferencesPath attribute (of the Settings node) in the
.user file (the project user options) to locate assemblies. (feel free to
add support for this to the solution task :-))
Gert
----- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>
Cc: "Nant-Developers (E-mail)" <[EMAIL PROTECTED]>
Sent: Tuesday, March 16, 2004 11:35 PM
Subject: [nant-dev] Re: Solution task fixes + speedups



Gert Driesen wrote:


But you actually have two different "assembly folders" : you have the
assembly folder that is referenced in your project file using the
"AssemblyFolderKey" attribute of the  element, eg.
...


and you have the rest of the AssemblyFolder registry keys.  Perhaps
VS.NET

first checks the AssemblyFolderKey, then the HintPath and then the rest
of

the assembly folders.  But I'm just guessing here.
Aha...  I don't have an AssemblyFolderKey attribute on my reference -
it's a direct file reference.  The AssemblyFolder check was still
picking it up, however.
Perhaps the order was correct as you had it, but we should skip the
assembly folder check if that attribute is missing.

Even if Microsoft describes it as a last resort, it's definitely not how
VS.NET does it.


I'll verify it tomorrow, and report it to MS if necessary
Cool.  Thanks!

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers





---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: NAnt pedantic mode

2004-03-17 Thread Matthew Mastracci
Gert Driesen wrote:

You mean an attribute that didn't exist ?  Properties that don't exist cause
a build error already ...
Yep - that's what I was thinking.

But I agree that we should indeed have this mode (or just always run NAnt in
this mode, what do you propose) ...
In what cases should NAnt throw a build error :

- a system property that no longer exist
- an attribute/child element that is deprecated, and the IsError property of
the ObsoleteAttribute is set to true
- a task/type that is deprecated, and the IsError property of the
ObsoleteAttribute is set to true
- an attribute/child element that does not (or no longer) exist
+1 on all four.  AFAIK, 2 and 3 are already done.

in what cases should NAnt output a warning (deprecated message) in the build
log :
- a system property that has been replaced/renamed (eg. replaced by a
function), but the original property still exists.
- an attribute/child element that is deprecated, and the IsError property of
the ObsoleteAttribute is set to false
- a task/type that is deprecated, and the IsError property of the
ObsoleteAttribute is set to false
+1 on all three here too.

Please correct me wherever necessary and add items to these lists 
Looks good to me.  The biggest issue I run into is renamed attributes. 
Renamed sub-elements could also end up being a bit of a problem.

Should this be the default mode?  I'm not sure about this one, but we 
would need a way to run in "less-strict" mode.

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] NAnt pedantic mode

2004-03-16 Thread Matthew Mastracci
I've run into a number of build-script bugs today that are related to 
NAnt task properties changing/disappearing/obsoleting/etc.

What does everyone think of a command-line flag to put NAnt into 
pedantic mode?  This would throw an error if any build task tried to use 
a property that didn't exist or was obsoleted.

I would personally run in pedantic mode all the time.

Ideas?  Comments?  Flames?  :)

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Change to "call" task makes upgrade difficult

2004-03-16 Thread Matthew Mastracci
James C. Papp wrote:

This was also my rational of not just adding a flag to . The 
task is just a dynamic form of the  task's depends attribute..., in
all other respect their ultimate functionality would be identical.  The
 task was not meant to be used as a way to call targets, but (more
accurately), to assert that a set of dependencies were meet or handled (if
needed) before continuing. This is similar a little bit to .NET security with
the way you can request certain privileges up front (as assembly metadata), or
dynamically by asserting them within code.
Heh...  I just ran into the same problem you have.  My workaround so far 
is to add the following attribute to all of my "execute-once" targets:

unless="${target::has-executed(target::get-current-target())}"

I would love to have the  task instead.  :)

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Solution task fixes + speedups

2004-03-16 Thread Matthew Mastracci
Gert Driesen wrote:

But you actually have two different "assembly folders" : you have the
assembly folder that is referenced in your project file using the
"AssemblyFolderKey" attribute of the  element, eg.
...

and you have the rest of the AssemblyFolder registry keys.  Perhaps VS.NET
first checks the AssemblyFolderKey, then the HintPath and then the rest of
the assembly folders.  But I'm just guessing here.
Aha...  I don't have an AssemblyFolderKey attribute on my reference - 
it's a direct file reference.  The AssemblyFolder check was still 
picking it up, however.

Perhaps the order was correct as you had it, but we should skip the 
assembly folder check if that attribute is missing.

Even if Microsoft describes it as a last resort, it's definitely not how
VS.NET does it.


I'll verify it tomorrow, and report it to MS if necessary
Cool.  Thanks!

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Solution task fixes + speedups

2004-03-16 Thread Matthew Mastracci
Gert Driesen wrote:

3.  The HintPath for a reference is now checked before the
AssemblyFolders.  VS.NET checks it this way and it can break a solution
that wants to reference (using a direct assembly reference) a different
version of an assembly than might have been installed in an
AssemblyFolder path.
Are you sure about this ???  I haven't checked this, but according to MS
this is kind of "the last resort" ...
Guaranteed.  I have a project that references an assembly (v1 of the 
DLL) with the same name as an assembly in one of my assembly folders (v2 
of the DLL).  Before my change, it was incorrectly picking up v2.  After 
the change, it correctly picks up v1.

Even if Microsoft describes it as a last resort, it's definitely not how 
VS.NET does it.

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Solution task fixes + speedups

2004-03-16 Thread Matthew Mastracci
I've spent a bit more time speeding up the solution task and fixing 
differences from VS.NET.  Here's a short summary of what to expect with 
the latest CVS:

1.  We only create one AppDomain per solution build and per project 
build.  We were creating dozens of AppDomains per project build before.

2.  GAC checks (IsAssemblyInGac) are now cached per solution build. 
This cuts 25% of the build time off alone.

3.  The HintPath for a reference is now checked before the 
AssemblyFolders.  VS.NET checks it this way and it can break a solution 
that wants to reference (using a direct assembly reference) a different 
version of an assembly than might have been installed in an 
AssemblyFolder path.

Matt.

---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: Remove support for WebDAV from task ?

2004-03-08 Thread Matthew Mastracci
AFAIK, VS.NET uses front page extensions to talk to the webserver.  I
think I chose webdav when I first looked at it because it offers that as
an alternative when it can't open the solution w/FPE.

FPE seems to get around the permissions issue better than WebDAV does. 
They've probably got some good hacks in there to make sure the whole
thing is painless.  Unfortunately, front-page extensions are barely
documented - I couldn't find a suitable reference to base an
implementation off.  

This was all before the  element made this stuff
less-than-useful, of course.  :)

The more I think about it, the more I am in favour of just trashing the
WebDAV stuff.  Does anyone *really* need to build a project on a remote
webserver?  If so, we can always provide a workaround by HTTP GETing the
source and WebDAV putting the binaries, I suppose.

Matt.

On Mon, 2004-03-08 at 22:33, Gert Driesen wrote:
> Matthew, can you tell me what makes our WebDAV access to IIS so much more
> troublesome, than what VS.NET uses ?
> 
> Thanks,
> 
> Gert
> ----- Original Message - 
> From: "Matthew Mastracci" <[EMAIL PROTECTED]>
> To: "Nant-Developers (E-mail)" <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>
> Sent: Tuesday, March 09, 2004 1:04 AM
> Subject: [nant-dev] Re: Remove support for WebDAV from  task ?
> 
> 
> The latest stuff has the EnableWebDAV stuff to prevent it being used by
> default.  It's been in there for a month or so and tells the user to
> either provide a webmap or set EnableWebDAV = true to make it work.
> 
> -1 for removing it - if people want it, they can be pointed at
> documentation to set up the server properly.
> 
>  /// 
>  /// Allow the task to use WebDAV for retrieving/compiling the
> projects within solution.  Use of
>  ///  is preferred over WebDAV.  The
> default is .
>  /// 
>  /// 
>  /// WebDAV support requires permission changes to be
> made on your project server.  These changes may affect
>  /// the security of the server and should not be applied to
> a public installation.
>  /// Consult your web server or the NAnt Wiki
> documentation for more information.
>  /// 
>  [TaskAttribute("enablewebdav", Required = false)]
>  [BooleanValidator()]
>  public bool EnableWebDAV {
>  get { return _enableWebDAV; }
>  set { _enableWebDAV = value; }
>  }
> 
> 
> Jaroslaw Kowalski wrote:
> 
> > Perhaps we could have a  task instead that would be similar
> to
> >  but accept WebDAV sources/targets.
> >
> > +1 for the idea of removing WebDAV from the  task.
> >
> > Jarek
> > - Original Message - 
> > From: "Erick Thompson" <[EMAIL PROTECTED]>
> > To: "Gert Driesen" <[EMAIL PROTECTED]>; "NAnt Users Mailing List"
> > <[EMAIL PROTECTED]>; "Nant-Developers (E-Mail)"
> > <[EMAIL PROTECTED]>
> > Sent: Monday, March 08, 2004 11:47 PM
> > Subject: RE: [nant-dev] Remove support for WebDAV from  task ?
> >
> >
> >
> >>I haven't used WebDAV, but if I could use it to distribute a website to a
> >
> > final server, it would be very very useful to me. At the moment, I have a
> > manual FTP step is required to move a web project to the production
> server.
> >
> >>Erick
> >>
> >>
> >>>-Original Message-
> >>>From: [EMAIL PROTECTED]
> >>>[mailto:[EMAIL PROTECTED] Behalf Of Gert
> >>>Driesen
> >>>Sent: Monday, March 08, 2004 2:36 PM
> >>>To: NAnt Users Mailing List; Nant-Developers (E-Mail)
> >>>Subject: [nant-dev] Remove support for WebDAV from  task ?
> >>>
> >>>
> >>>Hi,
> >>>
> >>>I'm just asking to get an idea of how many people actually
> >>>use it, but how
> >>>would you feel if we would remove WebDAV support from the
> >>> task ?
> >>>
> >>>We've noticed that lots of people have problems configuring
> >>>their webserver,
> >>>in order to get the  task working, so it might be
> >>>better to remove
> >>>support for WebDAV altogether.  This would also allow us to
> >>>simplify some of
> >>>the code, and make the code easier to maintain.
> >>>
> >>>What do you think ?
> >>>
> >>>Gert
> >>>
> >>>
> >>>
> >>>-

[nant-dev] Re: Remove support for WebDAV from task ?

2004-03-08 Thread Matthew Mastracci
On second thought, it may be beneficial to break out the WebDAV stuff 
into a separate  task.

I'm not sure if people are relying on being able to build code via 
WebDAV shares, however.  Perhaps the solution task could use WebDAV via 
the alternate task, rather than the internal WebDAV stuff?

Anyways, I'll say 0 instead of -1 for removal of WebDAV.  I'm not 
personally convinced either way, but I do agree it's a huge pain in the 
butt to get it configured (besides being a security hole).

Matt.

Matthew Mastracci wrote:

The latest stuff has the EnableWebDAV stuff to prevent it being used by 
default.  It's been in there for a month or so and tells the user to 
either provide a webmap or set EnableWebDAV = true to make it work.

-1 for removing it - if people want it, they can be pointed at 
documentation to set up the server properly.

/// 
/// Allow the task to use WebDAV for retrieving/compiling the 
projects within solution.  Use of
///  is preferred over WebDAV.  The default 
is .
/// 
/// 
/// WebDAV support requires permission changes to be 
made on your project server.  These changes may affect
/// the security of the server and should not be applied to 
a public installation.
/// Consult your web server or the NAnt Wiki 
documentation for more information.
/// 
[TaskAttribute("enablewebdav", Required = false)]
[BooleanValidator()]
public bool EnableWebDAV {
get { return _enableWebDAV; }
set { _enableWebDAV = value; }
}

Jaroslaw Kowalski wrote:

Perhaps we could have a  task instead that would be 
similar to
 but accept WebDAV sources/targets.

+1 for the idea of removing WebDAV from the  task.

Jarek
- Original Message - From: "Erick Thompson" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>; "NAnt Users Mailing List"
<[EMAIL PROTECTED]>; "Nant-Developers (E-Mail)"
<[EMAIL PROTECTED]>
Sent: Monday, March 08, 2004 11:47 PM
Subject: RE: [nant-dev] Remove support for WebDAV from  task ?


I haven't used WebDAV, but if I could use it to distribute a website 
to a


final server, it would be very very useful to me. At the moment, I have a
manual FTP step is required to move a web project to the production 
server.

Erick


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Gert
Driesen
Sent: Monday, March 08, 2004 2:36 PM
To: NAnt Users Mailing List; Nant-Developers (E-Mail)
Subject: [nant-dev] Remove support for WebDAV from  task ?
Hi,

I'm just asking to get an idea of how many people actually
use it, but how
would you feel if we would remove WebDAV support from the
 task ?
We've noticed that lots of people have problems configuring
their webserver,
in order to get the  task working, so it might be
better to remove
support for WebDAV altogether.  This would also allow us to
simplify some of
the code, and make the code easier to maintain.
What do you think ?

Gert



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&opÌk
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click





---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Remove support for WebDAV from task ?

2004-03-08 Thread Matthew Mastracci
The latest stuff has the EnableWebDAV stuff to prevent it being used by 
default.  It's been in there for a month or so and tells the user to 
either provide a webmap or set EnableWebDAV = true to make it work.

-1 for removing it - if people want it, they can be pointed at 
documentation to set up the server properly.

/// 
/// Allow the task to use WebDAV for retrieving/compiling the 
projects within solution.  Use of
///  is preferred over WebDAV.  The 
default is .
/// 
/// 
/// WebDAV support requires permission changes to be 
made on your project server.  These changes may affect
/// the security of the server and should not be applied to 
a public installation.
/// Consult your web server or the NAnt Wiki 
documentation for more information.
/// 
[TaskAttribute("enablewebdav", Required = false)]
[BooleanValidator()]
public bool EnableWebDAV {
get { return _enableWebDAV; }
set { _enableWebDAV = value; }
}

Jaroslaw Kowalski wrote:

Perhaps we could have a  task instead that would be similar to
 but accept WebDAV sources/targets.
+1 for the idea of removing WebDAV from the  task.

Jarek
- Original Message - 
From: "Erick Thompson" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>; "NAnt Users Mailing List"
<[EMAIL PROTECTED]>; "Nant-Developers (E-Mail)"
<[EMAIL PROTECTED]>
Sent: Monday, March 08, 2004 11:47 PM
Subject: RE: [nant-dev] Remove support for WebDAV from  task ?



I haven't used WebDAV, but if I could use it to distribute a website to a
final server, it would be very very useful to me. At the moment, I have a
manual FTP step is required to move a web project to the production server.
Erick


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Gert
Driesen
Sent: Monday, March 08, 2004 2:36 PM
To: NAnt Users Mailing List; Nant-Developers (E-Mail)
Subject: [nant-dev] Remove support for WebDAV from  task ?
Hi,

I'm just asking to get an idea of how many people actually
use it, but how
would you feel if we would remove WebDAV support from the
 task ?
We've noticed that lots of people have problems configuring
their webserver,
in order to get the  task working, so it might be
better to remove
support for WebDAV altogether.  This would also allow us to
simplify some of
the code, and make the code easier to maintain.
What do you think ?

Gert



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&opÌk
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click




---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Wild targets/Current target

2004-03-03 Thread Matthew Mastracci
Giuseppe Greco wrote:

As a curiousity, wouldn't you be able to use a regular target and
properties to define what to call?  For instance, your gateway project
can just do this:

Yes, but this is exactly what I'm trying to avoid...

When a master build file contains more than 3 or 4 targets
to forward, you have to define lots of properties just to handle that.
I think a wild target would be much more elegant. Furthermore,
be able to define a wild target that is executed when the user
specifies a target that does not exist in the current build file,
would be handy...
Of course, that's nothing vital, but...
Sorry.  :)  I just noticed your first post, describing exactly what I 
put in my message here.

I suppose it's good for allowing you to specify targets for your 
subprojects without having to know about them in your master build file. 
   Would you be rewriting your master to use wildcards as well?

Matt.

---
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Wild targets/Current target

2004-03-03 Thread Matthew Mastracci
As a curiousity, wouldn't you be able to use a regular target and 
properties to define what to call?  For instance, your gateway project 
can just do this:

   
 
   
 
   
   
 
   
   
 
   
 
   
The master just needs to set the "operation" property before calling. 
I'm not certain these wildcard targets are necessary in this case.



etc...

Giuseppe Greco wrote:

Hi all,

I've just completed the implementation of the
stuff we discussed yesterday.
Right now I'm out of office and I don't have
CVS access due to proxy restrictions, so
attached to this email you will find the
modified files. I'll send you a patch tomorrow.
The modified files are:

NAnt.Core/Project.cs
line81   added WildTarget const
line   132   added _currentTarget field
lines  410 -  416added CurrentTarget property
lines  784 -  796replaced do-while statement
lines 1415 - 1419added wild targets handling
NAnt.Core/Functions/NAntFunctions.cs
lines   83 - 98  added GetCurrentTarget functioin
These modifications allow you to specify a wild target
that is executed when the user specifies a target that
does not exist in the current build file. Here's an
example:

  

  
  

  

if you type

  nant hello

from the command, you get the message "This is the hello target".

Furthermore, using the master-gateway-slave build file pattern is
much easier (see my previous emails). Here below is another
example.
Let's start with the usual project:

/myProject
 + default.build
 + /src
 + default.build
 + /Subproject
+ default.build
+ HelloWorld.cs
the master build file (/myProject/default.build) looks
like this:



 

  
  

  
  

  


... and the gateway build file (/myProject/src/default.build)
like this:



  

  

  
  

  
  

  

  


I don't report the slave build file (/myProject/src/Subproject/default.build)
since it is like any other build file written till now.
Wild targets allow you to write more compact build files and
provide a standard way to handle unexpected targets.
What do you think about that?

j3d.


Giuseppe Greco
::agamura::

phone:  +41 (0)91 604 67 65
mobile: +41 (0)76 390 60 32
email:  [EMAIL PROTECTED]
web:www.agamura.com



---
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: touch task bug

2004-02-25 Thread Matthew Mastracci
Sure...  shouldn't be too tough.  I'll just create a testcase that runs 
the  task twice in a row on the same file.

Gert Driesen wrote:

- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>; "Nant-Developers (E-mail)"
<[EMAIL PROTECTED]>
Sent: Wednesday, February 25, 2004 9:11 PM
Subject: [nant-dev] Re: touch task bug



I've had a fix for this one locally for a while - just checked it in.


Thanks, can you also add a testcase for this ?

Gert



---
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: touch task bug

2004-02-25 Thread Matthew Mastracci
I've had a fix for this one locally for a while - just checked it in.

Gert Driesen wrote:

Matt,
 
Can you please submit a bug report for this ?
 
Thanks,
 
Gert

- Original Message -
*From:* Steele, Matt 
*To:* '[EMAIL PROTECTED]'

*Sent:* Tuesday, February 24, 2004 1:06 AM
*Subject:* [nant-dev] touch task bug
The touch task creates a file but does not release it. 
On line 163 of TouchTask.cs, it should probably assign the result of
File.Create to a stream and then close the stream.  Sorry, we had
been using the touch task to create lock files, but then we couldn't
delete them!



---
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Build Process

2004-02-06 Thread Matthew Mastracci
There's also some info in the NAnt wiki at:

http://nant.sourceforge.net/wiki/index.php/SolutionTask

Martin Aliger wrote:
Hi,

it is in Core and documenation to this task (as well as all others) could be
found at
http://nant.sourceforge.net/nightly/help/tasks/solution.html
Martin

- Original Message - 
From: "Ron Werner" <[EMAIL PROTECTED]>
To: "Nicklas Norling" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Thursday, February 05, 2004 10:59 PM
Subject: RE: [nant-dev] Build Process



Thanks for the update.  Is the Solution Task part of the NAntContrib or
part

of the "Core" product (and where can I learn about it)?

Thanks,

Ron

-Original Message-
From: Nicklas Norling [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 05, 2004 3:51 PM
To: Ron Werner; [EMAIL PROTECTED]
Subject: Re: [nant-dev] Build Process
Hi Ron.

When I looked at it a few month ago the slingshot task appeared not to be
maintained.
I think the solution task is the way to go. I use if for >30 projects/sln
and
works great.
Good luck to you!
/Nicke
- Original Message -
From: "Ron Werner" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, February 05, 2004 10:31 PM
Subject: [nant-dev] Build Process


I have been working with NAnt the last couple of days, however I have
been

coming across problems with dependencies.

Is there some documentation somewhere that kind of discusses the overall
process, and the accepted standard (if there is one) on how to create a
.build file.
I have also seen some articles on Slingshot and SolutionTask.  Is
SolutionTask replacing Slingshot?  Is the following code example just
executed in an XML file:
   
   
   
   
   
   
Sorry if these are stupid questions, however I am just getting started
with

NAnt.

Thanks,

Ron






---
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn


---
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Nightly task docs broken

2004-01-19 Thread Matthew Mastracci
Looks like the nightly task docs broke at some point-

http://nant.sourceforge.net/nightly/help/

"You don't have permission to access /nightly/help/index.html on this 
server."

Permissions issue with SCP?

Matt.

---
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: SolutionTask

2004-01-16 Thread Matthew Mastracci
Guids should be unique.  The only way to get this is by copying a 
project and forgetting to change it.  VS.NET doesn't warn you of this, 
but behaves badly in subtle ways.

Ian MacLean wrote:
Is this the right patch ? if it is possible to have two valid projects 
with an identical guid should we use a different key for the hash table 
- perhaps a combination of the guid and the projectname ?

Ian

Hi all,

I found one very annoying feature/bug of  task:

Projects (.csproj) are loaded into hashtable regarding their guid. But if
two projects with same guid are loaded, no error/warning is issued and 
one
of those projects disappears! Such projects could be created by 
copying and
renaming existing project into another file. Create new project with 
Visual
Studio generate new guid, so propability to create existing guid is
negligible.

Small patch to is attached. It checks this key violation rule and throws
BuildException when it found one.
Regards,
Martin
 



---
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn


---
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Inter-Task XML Communication (WAS: new xml type)

2004-01-07 Thread Matthew Mastracci
Scott Hernandez wrote:

There are many places where inter-task communication would be useful. Having
the context of what is going on around a task is very interesting. I don't
know much about how msbuild works, but I get the idea this is what they are
pushing as the mechanism for tying together their tasks, and functionality.
The only problem I start to see is that there becomes a situation of
inter-dependence and a complication of context. If it gets to the point that
a task needs to know what is around it (preceding and such) to get its job
done it may get too complicated to write and test.
Yep - each task can survive on its own, but can use extra information 
from other tasks to perform a more integrated task or can just provide 
more information for other tasks to do the same (example eludes me at 
the current moment).

*XPathObjectNavigator stuff:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml03172003.asp
http://cvs.sourceforge.net/viewcvs.py/bbooprevalence/Bamboo.Prevalence/src/Bamboo.Prevalence.XPath/
+1 for XPathObjectNavigator.  I was thinking about this myself.  W

The XmlSerializer stuff can create xml schema for us, is this what you mean?
Yep.  I didn't know if this was possible.  If so, that rocks!  ;)

If each xml object could tag along an associated schema, this would
enforce the validity of the object during user manipulation of the XML
object, allowing it to be "re-imported" into the NAnt world at some
later date.


Are you saying that we would serialize these objects to disk for use by nant
during another execution, or just during the current one? What is the
application of this?
Err...  that was a think-o.  By "later date" I meant "later time" in the 
build process.  Still running on less than adequate sleep.  ;)

The xml documents should be in-memory items within NAnt as you mentioned 
earlier.  This doesn't preclude having an  or  task to 
persist them longer, however.

Matt.



---
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: solution task

2004-01-06 Thread Matthew Mastracci
I like the ability to customize any field within the project.  Would it 
be more suitable to perform this modification using the 
/ tasks outside of the solution task itself?

Perhaps some sort of per-project handler subtask could work as well:


   ... 
  
	
		
	
  


I love the ability to do per-project customization.  The above would 
allow us to re-use some existing tasks (and perhaps perform more complex 
project manipulation!).

How does this sound?

Jaroslaw Kowalski wrote:
Some time ago I proposed a syntax to allow the ultimate customization of
 task.
It was something like:


 



 




/codepage:1250


Each  would be processed after the project is loaded into memory
and it matches the "project" attribute. The algorithm would be:
1. For each , find the XML node specified by "name" XPath attribute
2. Set the value of this node as specified in "value" attribute
The idea is simple, yet allows for ultimate extensibility. Perhaps we might
even think about adding / removing items specified by XPath.
For parameters, that aren't there in the *.csproj file we'd have special
tags, like  mentioned above.
Applications:

1. To override some flag in all C# projects, you use: 
2. To override some flag in all VB projects, you use: 
3. To override some flag in all VB projects, you use: 
4. To exclude some file from compilation, use:
 


What do you think ?

Jarke

- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Nant-Developers (E-mail)" <[EMAIL PROTECTED]>
Sent: Tuesday, January 06, 2004 7:27 PM
Subject: [nant-dev] [Fwd: [Nprof-developers] Re: solution task]



 Original Message 
Subject: [Nprof-developers] Re: solution task
Date: Tue, 06 Jan 2004 11:09:22 -0700
From: Matthew Mastracci <[EMAIL PROTECTED]>
To: Martin Aliger <[EMAIL PROTECTED]>,
[EMAIL PROTECTED]
References: <[EMAIL PROTECTED]>
Sounds good to me too - just ensure that you've got compilerargs
specified by language.  There's a number of flags that are valid for a
single compiler only.
Martin Aliger wrote:


Hi all !

1/
Do you think, that now is good time to some cleaning and restructuring
in solution task as we discussed earlier? I have some spare time and
appetite to do that now!
2/
Also I would need (and like to) make some improvements to that task.
What I need (and currently use not-commited patch) is need to custom
arguments override like there:

  
   
  
  
   
   
   
  
  
   
  

We previously discuss that as it will be nice to do that at solution
level or at project level. Do you still like the idea? I could implement
that if you agree with that...
Regards,
Martin


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Nprof-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nprof-developers


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: new xml type

2004-01-06 Thread Matthew Mastracci
I suppose my original message wasn't that clear.  I'm not completely 
certain this idea is fully formed in my head either!  ;)

What I'm proposing is that the NAnt build script writer user would use 
the task outputs as if they were XML, but under the hood they would be 
fully-fledged C# classes.

We all agree that the "xml" object type that Martin is suggesting would 
be used within any XML task within the build script as raw XML.  It 
would fit snugly into the // tasks.

I'm proposing that we back these "xml" documents with fully-fledged C# 
objects in the NAnt backend.  I hope that this would lead to long-term, 
schema/class-enforced XML communication of some sort between tasks. 
Each task could expect and produce certain kinds of wellformed data.

Each "xml" input or output from an NAnt task would be mapped to an 
XmlSerializer-ready NAnt class, preferably backed by a true .xsd file 
somewhere within NAnt.  This serialization would be automatic and 
handled by the NAnt core without task writer intervention (modulo some 
attribute decoration).

If each xml object could tag along an associated schema, this would 
enforce the validity of the object during user manipulation of the XML 
object, allowing it to be "re-imported" into the NAnt world at some 
later date.

Does this make sense?

Scott Hernandez wrote:

This sounds interesting but I'm not sure I follow. Can you explain a little
more?
The concept of inputs/outputs to tasks (when called from other tasks) and
adding context info so tasks know about following task, and preceding tasks,
sounds interesting. But I'm not sure how this ties in here.
What would the user experience be? What would the syntax be?

- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>

For tasks (such as the solution task), what about having C# classes in
NAnt that map to XML itself?  They could appear as XML to
xmlpeek/xmlpoke/xmlforeach, but would be backed by C# classes internally.
This would make it far simpler to "return" values from tasks.

Martin Aliger wrote:


Hi all,

I'm trying to develop new xml type. Right now I have some preliminary
patch

to enable script like this:


 
  
   John
   Smith
  
  John Smith's life
 


 
 

How you like it? I'm looking forward to your comments...

What I want to do is something James and Ivan also proposed: add some
way to

return information from task back to script. I dont think that add
resultproperty/outputproperty to exec task and other whateverproperties
to

other tasks is good way. What I want to do is add one general attribute
(e.g. result) to all tasks. Result itself will be xml dom with
potentionaly

many values. exec task could for example have in it full commandline
executed, result code, stdout, stderr and maybe even more things! So it
could be written something like this:
   
   property="resultcode"/>

   
   
   
or even shorter when function for xmlpeek exists!

Martin




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] [Fwd: [Nprof-developers] Re: solution task]

2004-01-06 Thread Matthew Mastracci


 Original Message 
Subject: [Nprof-developers] Re: solution task
Date: Tue, 06 Jan 2004 11:09:22 -0700
From: Matthew Mastracci <[EMAIL PROTECTED]>
To: Martin Aliger <[EMAIL PROTECTED]>, 
[EMAIL PROTECTED]
References: <[EMAIL PROTECTED]>

Sounds good to me too - just ensure that you've got compilerargs
specified by language.  There's a number of flags that are valid for a
single compiler only.
Martin Aliger wrote:

Hi all !
 
1/
Do you think, that now is good time to some cleaning and restructuring 
in solution task as we discussed earlier? I have some spare time and 
appetite to do that now!
 
2/
Also I would need (and like to) make some improvements to that task. 
What I need (and currently use not-commited patch) is need to custom 
arguments override like there:
 

   

   
   



   
   

   

We previously discuss that as it will be nice to do that at solution 
level or at project level. Do you still like the idea? I could implement 
that if you agree with that...
 
Regards,
Martin
 


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Nprof-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nprof-developers


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: new xml type

2004-01-06 Thread Matthew Mastracci
For tasks (such as the solution task), what about having C# classes in 
NAnt that map to XML itself?  They could appear as XML to 
xmlpeek/xmlpoke/xmlforeach, but would be backed by C# classes internally.

This would make it far simpler to "return" values from tasks.

Martin Aliger wrote:

Hi all,

I'm trying to develop new xml type. Right now I have some preliminary patch
to enable script like this:
 
  
   
John
Smith
   
   John Smith's life
  
 

  
  

How you like it? I'm looking forward to your comments...

What I want to do is something James and Ivan also proposed: add some way to
return information from task back to script. I dont think that add
resultproperty/outputproperty to exec task and other whateverproperties to
other tasks is good way. What I want to do is add one general attribute
(e.g. result) to all tasks. Result itself will be xml dom with potentionaly
many values. exec task could for example have in it full commandline
executed, result code, stdout, stderr and maybe even more things! So it
could be written something like this:





or even shorter when function for xmlpeek exists!

Martin


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Basedir changes - possible problems

2003-12-19 Thread Matthew Mastracci
So it looks like the recent basedir changes have revealed a 
long-standing issue w.r.t. assumptions about the current directory.  It 
turns out that there are a few places where the tasks assume that the 
project's base directory is the same as the current directory.  The two 
big ones I've found are:

1.  The  element of the 
2.  The file loaded by 
I don't know where else in NAnt these problems might exist.  I've worked 
around it with this simple patch- should it be checked in?  The correct 
solution right now is to wrap all filename references with 
Project.GetFullPath(), but would it be better to just change our current 
directory to the project's base directory for the duration of the 
project run?

--- Project.cs  18 Dec 2003 18:22:33 -  1.61
+++ Project.cs  19 Dec 2003 22:06:37 -
@@ -784,8 +784,12 @@
 public bool Run() {
 Exception error = null;
 DateTime startTime = DateTime.Now;
+string oldDirectory = Directory.GetCurrentDirectory();
 try {
+// change to the base directory of the project before 
running anything
+Directory.SetCurrentDirectory(BaseDirectory);
+
 OnBuildStarted(this, new BuildEventArgs(this));
 Log(Level.Info, "Buildfile: {0}", BuildFileUri);

@@ -819,6 +823,9 @@
 // signal build failure
 return false;
 } finally {
+// restore the old directory
+Directory.SetCurrentDirectory(oldDirectory);
+
 string endTarget;
 if (error == null) {



Matt.

---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] basedir changes

2003-12-19 Thread Matthew Mastracci
Well, with additional investigation, it appears that the problem is that 
something has broken the  element in my build file.

My build files are structured like so:

\build\scripts\nightly.build
basedir="."
\build\scripts\project1.build
basedir="../.."
It seems as if project1.build is ending up with the wrong current 
directory.

It may be related to this change (ianm, NAntTask.cs):

+try {
+// change current directory to directory of the build 
file that
+// will be run
+Directory.SetCurrentDirectory(Path.GetDirectoryName(
+Project.GetFullPath(BuildFileName)));
+// run the given build
+if (!project.Run()) {
+throw new BuildException("Nested build failed. 
Refer to build log for exact reason.");
+}
+} finally {

Can anyone confirm this?

This is my regression test investigation:

Nov 19. - works
Nov 27. - works
Nov 28. - works
(some checkin)
Dec 2. - failure
Dec 9. - failure
Matt.



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] basedir semantics change?

2003-12-19 Thread Matthew Mastracci
Has somebody modified the project basedir semantics?  The latest CVS 
version isn't working correctly for me.  It's acting as if the basedir 
attribute wasn't specified.

I'll try to find out the date that it was busted, but I'm curious if 
anyone remembers changing anything to do with this.

This is a CVS checkout+build from this morning.  Last working was my 
last checkout a few weeks ago.

Matt.

---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Adding XML support to or new task

2003-12-19 Thread Matthew Mastracci
Scott Hernandez wrote:

This sounds interesting. Maybe we would want to introduce some
xpathselection elements to replace your property example. Properties in this
example would probably be a little confusing to the user since it isn't
really a regular property (the value is retrieved via xpath, not only via an
expression).
Agreed- it's much clearer in that case.  I think that 
xmlpeek/xmlpoke/xmlforeach would be a powerful combination.  Having an 
implicit XML context available to all three would also be great!







The  stuff could probably be cleaned up - it's certainly a 
"catch-all" for various types of iteration.  Perhaps we could split all 
the iteration tasks in some way.




etc...







...


It would be really cool if we make this work so that you could use the
 task to select from the open file (xmldocument). Then later when
if/when we get referencable types (for example an xml file factory or
something) we could just a little more efficient. It would be nice to use
the implied context here to simplify things.
;)

 could also be updated but this probably falls out of the scope
of that. This is pretty specialized, and will need to be very specific to
xml.
- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Nant-Developers (E-mail)" <[EMAIL PROTECTED]>
Sent: Thursday, December 18, 2003 12:25 PM
Subject: [nant-dev] Adding XML support to  or new task



I'm looking at adding XML iteration support for either the 
task or perhaps a new, yet-unnamed task.  I would like to be able to
iterate over a file based on an XPath query, picking up each matching
element or attribute in turn.   is the easiest place to add it,
but it's not really a clean solution.
A better way would be to model a new  task on the existing
xmlpeek/xmlpoke tasks like so:




${someattribute}, ${someinnertext}


How does this sound?




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Will there be a nAnt-0.84rc2 and final before the end of the year?

2003-12-19 Thread Matthew Mastracci
Gert - are we branched for 0.84?  I have some minor checkins I'm itching 
to get in for the 0.85.  I can also look at some solution cleanups over 
my vacation time in the next few weeks.

Gert Driesen wrote:

- Original Message - 
From: "Scott Hernandez" <[EMAIL PROTECTED]>
To: "Morris, Jason" <[EMAIL PROTECTED]>; "Nant-Developers (E-mail)"
<[EMAIL PROTECTED]>
Sent: Friday, December 19, 2003 1:14 AM
Subject: Re: [nant-dev] Will there be a nAnt-0.84rc2 and final before the
end of the year?



There will be a new RC in the next day or two (as I hear). The expression
stuff will not make this release.


I originally planned to release rc2 yesterday, but I was waiting on a more
detailed bug report from a user to check whether a fix for that particular
issue should be included in rc2, and I still haven't heard from him yet ...
There are also some reports about our  task not working on a .NET
1.0-only system that are disturbing me ...
I have to attend some festivities this weekend (read : drink lots of beer),
and probable won't be able to release it before monday (and even then, I
urgently have to do some christmas shopping, p) ... There's a slight
chance that I might be able to release it on saturday morning, but don't get
your hopes up ...

But it is now in the cvs HEAD, meaning that it is slated for the next
release. It still needs a lot of testing, but we hope to get a expression
feature complete version soon after the current release (.84).
Personally, I'd like to see a .85 release with expression support near the
first of the year!


I'll try to get NAnt 0.84 released by the end of next week, but a 0.85
release by the first of next year is not feasable I think ...
Gert



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Adding XML support to or new task

2003-12-18 Thread Matthew Mastracci
I'm looking at adding XML iteration support for either the  
task or perhaps a new, yet-unnamed task.  I would like to be able to 
iterate over a file based on an XPath query, picking up each matching 
element or attribute in turn.   is the easiest place to add it, 
but it's not really a clean solution.

A better way would be to model a new  task on the existing 
xmlpeek/xmlpoke tasks like so:





${someattribute}, ${someinnertext}


How does this sound?

Matt.



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: verbosity of some tasks

2003-12-04 Thread Matthew Mastracci
That's okay - I was mostly looking for the synchronization of 
dependent-file-parsing resource code between the two tasks.  I wasn't 
sure how much had been done already.

I agree with the license stuff- it's bizarre enough that it should be 
done by hand outside the  task.

Gert Driesen wrote:

An improved version of the resource code is actually already part of
CompilerBase, but it does not support licx files and I don't think it should
either ...
We should not change the compiler task into a mini-solution tasks

Gert

- Original Message ----- 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, December 04, 2003 7:48 PM
Subject: [nant-dev] Re: verbosity of some tasks



Sorry!  That was a think-o on my part.  I meant resource code.  Should
have read:
"It would be nice to move the *resource* code into a ... "

Been a tough week  ;)

Matt.

Gert Driesen wrote:


- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Thursday, December 04, 2003 7:27 PM
Subject: Re: verbosity of some tasks




That would be cool.  It would be nice to move the reference code into a
common place (the  and  tasks) to avoid code duplication.


Not sure if we need this for the compiler tasks, as you should actually
supply it with the assemblies that you want to reference ...
I don't think these tasks should contain any logic for determining other
dependencies, so there won't be any code duplication.
Gert




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers






---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: verbosity of some tasks

2003-12-04 Thread Matthew Mastracci
Sorry!  That was a think-o on my part.  I meant resource code.  Should 
have read:

"It would be nice to move the *resource* code into a ... "

Been a tough week  ;)

Matt.

Gert Driesen wrote:

- Original Message - 
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Thursday, December 04, 2003 7:27 PM
Subject: Re: verbosity of some tasks



That would be cool.  It would be nice to move the reference code into a
common place (the  and  tasks) to avoid code duplication.


Not sure if we need this for the compiler tasks, as you should actually
supply it with the assemblies that you want to reference ...
I don't think these tasks should contain any logic for determining other
dependencies, so there won't be any code duplication.
Gert




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: verbosity of some tasks

2003-12-04 Thread Matthew Mastracci
That would be cool.  It would be nice to move the reference code into a 
common place (the  and  tasks) to avoid code duplication.

Matt.

Gert Driesen wrote:

- Original Message -
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Nant-Developers (E-mail)" <[EMAIL PROTECTED]>
Sent: Wednesday, December 03, 2003 9:44 PM
Subject: [nant-dev] Re: verbosity of some tasks


At some point I'd like to use the multiple .resx input of resgen.exe -
it would be nice to swallow output if no errors occur and just output:
[resgen] Transformed 5 .resx files

The solution builds would be a lot easier to read.  Perhaps I can
compress all of the reference copy operations into a single task call as
well.


After the 0.84 release, we should focus some of our efforts on refactoring
the solution task and have it use the compiler tasks instead...
It would be great if you could participate in this effort, as you're the
original author ...
Gert



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: project references problems in task

2003-12-04 Thread Matthew Mastracci
Looks pretty good to me.  Do you notice an impact on compile speed?

I can try patching my local copy of NAnt and running it through our 
build torture test - 90+ projects with all sorts of inter-project and 
3rd-party references.  :)  I may not have time to do this until next 
week, however.

Matt.

Ivan Tarasov wrote:

Hello Matthew,

I've fixed the current implementation of Reference.cs in VSNet-tasks
project. Now it creates new AppDomain in which it tries to resolve all
assemblies which are referenced from the given assembly, which are
located in the same directory. Recently, all assemblies in that
directory were copied.
I've tested it on our project (I was patching nightly build sources
from 03.12.03) and it worked pretty well.
Hope this part of code will be suitable for putting it before the
0.8.4 release (we are waiting impatiently for this release).
Patch is attached (it was "diff -C 3").

MM> (re-cc'ing the list)

MM> AppDomains allow you load/unload assemblies at will.  The .NET runtime 
MM> tends to exhibit some odd/unpredictable behaviour as you load assemblies 
MM> with the same name, especially if they don't have strong names.  You can 
MM> end up with types no longer resolving as expected.  By loading 
MM> assemblies in the separate AppDomain, you side-step all of these issues.



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: verbosity of some tasks

2003-12-03 Thread Matthew Mastracci
At some point I'd like to use the multiple .resx input of resgen.exe - 
it would be nice to swallow output if no errors occur and just output:

[resgen] Transformed 5 .resx files

The solution builds would be a lot easier to read.  Perhaps I can 
compress all of the reference copy operations into a single task call as 
well.

[solution] Building SomeProject...
[resgen] Transformed 5 .resx files
[csc] Compiling 48 files
(compiler output)
[csc] Successfully compiled 48 files
[copy] Copied 12 files to C:\fakeproject\bin\Debug
... etc
Lots of work to get that point, however.

Matt.

Gert Driesen wrote:

Martin,

The  task will now at least output the number of assemblies that
will be delay-signed ...
About the solution task : we use resgen.exe to compile the resources and
there's no way to quiet it down ...
Gert
- Original Message - 
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Tuesday, December 02, 2003 4:33 PM
Subject: [nant-dev] verbosity of some tasks

Hi again (hope last one today)

I found verbosity level of many tasks very inconsistent. Maybe we could say
how much task should output under normal run and other messages move into
verbose level.
for example solution task with only 2 assemblies to compile (without
warning) outputs:
 [solution] Starting solution build.
 [solution] Building Gordic.General [Release]...
Read in 11 resources from
'c:\temp\build-src\Gordic.Gene
ral\Gordic.General.resx'
Writing resource file...  Done.
 [solution] Building Gordic.Support.Win32 [Release]...
Read in 5 resources from
'c:\temp\build-src\Gordic.Suppo
rt.Win32\Gordic.Support.Win32.resx'
Writing resource file...  Done.
where plain
 [solution] Building Gordic.General [Release]...
 [solution] Building Gordic.Support.Win32 [Release]...
should be enough.

In opposite e.g.
   outputs _nothing_ even when signing over 100 assemblies (in
verbose mode it outputs 10 lines per assembly)
I think something like copy's [copy] Copying 17 files to c:\temp\build-src.
should be outputted.
 [delay-sign] 117 assemblies was delay signed.
Regards,
Martin


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: project references problems in task

2003-12-03 Thread Matthew Mastracci
(re-cc'ing the list)

AppDomains allow you load/unload assemblies at will.  The .NET runtime 
tends to exhibit some odd/unpredictable behaviour as you load assemblies 
with the same name, especially if they don't have strong names.  You can 
end up with types no longer resolving as expected.  By loading 
assemblies in the separate AppDomain, you side-step all of these issues.

Ivan Tarasov wrote:

Hello Matthew,

oh, it's quite an ugly way. I was considering this but I rejected
Hashtable because it smells like it is a hack :)
Could you please explain the need of separate AppDomain? Is it
because of some sequrity reason (loaded assembly can execute some
nant internal code or its own code with nant's privelegies)?
MM> System.Collections.Hashtable is your friend here.  :)


MM> Sounds good - just make sure you use a separate AppDomain while checking
MM> for assembly references.  I would also recommend caching lists of 
MM> dependent assemblies based on filename to save time.
why do I need separate AppDomain?
I wanted to do some caching (I needed something like "std::set" in
C++), but I couldn't find something similar in framework, I'd
apreciate if you point me the right way to do it




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: project references problems in task

2003-12-02 Thread Matthew Mastracci
Sounds good - just make sure you use a separate AppDomain while checking 
for assembly references.  I would also recommend caching lists of 
dependent assemblies based on filename to save time.

Ivan Tarasov wrote:

Hello nant-developers,

  I have quite a big project which uses  task to build
  certain .csproj projects. There is a build directory, some projects
  are built into specific subdirectories of this build directory.
  Consider following dir structure:

  build
  |
  +-ProjectA
  During the build I have some projects built directly into build
  directory. ProjectA is built into the respective folder, but it
  references some dll's in build directory and has CopyLocal set to
  "true" for these references. Thus, as we can expect, these dll's
  are copied to ProjectA directory. The problem is that not only these
  dll's (and the dll's which they reference) are copied to ProjectA,
  but all dll's in build directory!
  Thus, I have lots of dll's in ProjectA which shouldn't be there.
  VS2003 is smart enough to copy only those libraries, which are
  referenced from the project. I've tracked down where the solution
  task does it wrong (in the latest nightly build it is
  Nant\src\NAnt.VSNet\Reference.cs:265-278.
  I've written little program which finds all the referenced assemblies
  in the current folder (for the given assembly) (it was just a
  proof-of-concept). I'm going to add this code to Reference.cs (it
  will add just two methods and a call to one of them instead of
  "Directory.GetFiles(fi.DirectoryName, "*.dll")" in line 265, but I
  need to clean the code up a little bit.
  If anybody can comment upon that change, please let me know.
  I will send the patch here after the clean-up.


---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: building nightbuilds

2003-12-02 Thread Matthew Mastracci
What about a  task that sets appropriate properties based on 
provided flags?  This could allow us to hide a number of different tests 
to select appropriate frameworks:









Matt.

Ian MacLean wrote:
Hi Martin,
I've been thinking about adding autodetection of frameworks so that if 
the default doesn't exist then try the one that nant is running with - 
maybe scanning thru the config file to get a match. This issue is 
tripping up a lot of users particularly as more people move to 1.1 only 
systems and we set 1.0 by default.

The same issue occurs on linux with people who have mono installed in 
/usr/bin/ or some location other than /usr/local/bin.

Ian

Martin Aliger wrote:

Framework 'net-1.0' does not exist or is not specified in the NAnt
configuration
file. Defaulting to no known framework.
Buildfile: file:///E:/src/extern/nant/NAnt.build
Target(s) specified: test
BUILD FAILED

aha - i have only net-1.1 installed so i need to edit .config. again -
maybe add some message for newbies? or autodetect it somehow. I'm not 
sure
here...

Regards,
Martin
PS: "tests/NAnt.Core/NAnt.Core.build build" phase is failing for me



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: BSD license for NAnt?

2003-11-27 Thread Matthew Mastracci
I don't know if there has been a consensus about the license change. 
The discussion kind of petered off after a while.  I'm still supporting 
either LGPL or GPL with linking/plugins exception, however.

Matt.

Jaroslaw Kowalski wrote:

Hi!

According to releaseplan.html a "Move to an Apache or BSD-style 
license." is planned for 0.9. As I'm going to contribute some code to 
NAnt (expression evaluator) I have a concern: I'd like my code to be 
BSD-licensed. Do I need to do anything special to be GPL-compatible? Is 
it ok if I just place the BSD header on top of my sources?

Jarek



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: In case you haven't seen this yet

2003-11-25 Thread Matthew Mastracci
If the MSBuild schema is anything like the Office 2003 schema, we 
probably can't touch it:

http://www.microsoft.com/mscorp/ip/format/xmlpatentlicense.asp

"If you distribute, license or sell a Licensed Implementation, this 
license is conditioned upon you requiring that the following notice be 
prominently displayed in all copies and derivative works of your source 
code and in copies of the documentation and licenses associated with 
your Licensed Implementation:"

- and -

"You are not licensed to distribute a Licensed Implementation under 
license terms and conditions that prohibit the terms and conditions of 
this license."

- and -

"You are not licensed to sublicense or transfer your rights."

It's a very questionable license, AFAIK incompatible with the GPL.  It 
will be interesting to see if they are going to pull the same thing with 
MSBuild.

Matt.

Scott Hernandez wrote:

Alex,
 
Yeah, sounds like a good break-down.
 
1 and 2 sound pretty easy. It would be nice to do this in the managed 
world but I expect we will need to run each others binaries as external 
processes. We have a stub console loader that does everything an 
external program would need to do to in order to run a build file, from 
the managed world. As we are still in pre-1.0 release mode now is good 
time to make changes that need to.
 
As for a transformation between our file formats, this gets a little 
more hairy. We support a config file format that supplements a lot of 
what *could* be explicitly set in the build file via a config section of 
the app.config. I think we may need more than just a xslt to make it 
work well. There are also issues of mapping task params, and tasks 
themselves, from one framework to the other. This seems reasonable, but 
like a fairly large task. It might make sense to setup a website where 
this type of mapping information can be collected by the user base and a 
xslt file can be dynamically created based on the version of our two 
frameworks you are converting from/to. As NAnt is an open source 
project, and we will probably be releasing more often than MSBuild, it 
would make sense that anything MSBuild ships (or NAnt for that matter) 
will be stale by the time it hits the street. That is why a website that 
generates a build transformation is probably more useful than a static 
file shipped in a release. Will MSBuild provide XSDs for all types of tasks?
 
I expect the format of tasks will stay relatively static (in NAnt), and 
there are probably some simple places where we can interact and provide 
examples, and guidelines (for what to do, and not to do) in order to 
build tasks that work in both frameworks. But there will always be 
differences in the services that our frameworks offer to task developer. 
Logging, property access (build file variables), our expression 
languages, exception propagation, and utility classes are all things 
that will differ from build framework to framework. It will be good to 
put together guideline as to what should work across our frameworks.
 
I'd be more than happy to (as I'm sure other active devs will be also) 
work on these issues, but I really need to know that legally we are not 
stepping into the sh*T in doing so.
 
Moving forward this is a clear place where we can work together and 
build a solution for our users that is seamless and empowering. Every 
step we take we keep in mind the ability and flexibility of our users. 
With that in mind, working together seems like a great idea.
 
Alex, would you be willing to have a sit-down meeting in the next few 
weeks to work on some of these ideas? It would be good to keep fostering 
these ideas of communication between the NAnt and MSBuild teams.
 

- Original Message -
*From:* Alex Kipman 
*To:* Scott Hernandez  ;
[EMAIL PROTECTED]

*Sent:* Monday, November 24, 2003 2:10 PM
*Subject:* RE: [nant-dev] In case you haven't seen this yet
As the MSBuild PM, do you know if the team has considered any
interop scenarios with NAnt tasks or the NAnt framework. Is this
something that would be in the scope of the work you would consider?
If not, can you comment on the technical challenges in doing in
working either way (nant->msbuild; msbuild->nant, task interop)?
>> Great question.  This is totally in the scope of the work we are
considering.  I believe very strongly that we will need
nant<>msbuild interop.  In my mind this work segments into four
nice manageable chunks:
 

· An MSBuild task needs to exist in the NAnt
library.  This way you can build MSBuild projects from within NAnt
projects
· A NAnt task needs to exist in the MSBuild
library.  This way you can build NAnt projects from within MSBuild
projects
· A file format conversion tool (ala xslt) which
will convert b

[nant-dev] Re: solution task and linked VS.Net files.

2003-11-24 Thread Matthew Mastracci
Heh - that's really cool, but the UI truely sucks.  Why don't they add a 
menu item for that instead?  :)  I had *no* clue that even existed. 
I've been manually hacking .csproj files to point to the same file which 
tends to screw up VS.NET.

Ivan Tarasov wrote:

Hello Matthew,

when you add existing file to the project (in VS.NET), in the open
dialog the "Open" button has an arrow on the right side. By clicking
on this arrow you activate the popup menu in which you can choose
"Link". In that case the file is not copied, in the project the xml
attribute Link appears. E.g.:

Surely, it is a greate example of non-intuitive UI :-)

MM> Viehland, Kirk wrote:

Nant developers,

I am getting this error when I compile a VS.Net 2003 solution with an
ProductInfo file that has been linked from a parent directory.


MM> Just as a side note - what is a Linked file within a solution?  How is 
MM> one created?



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: FW: [Nant-users] solution stuff

2003-11-24 Thread Matthew Mastracci
Make sure your COM dll is registered on the server that is building your 
project.

Gerold Kathan wrote:

hi - we are trying to get our solution to build by nAnt - actually we 
are not successful -> there seems to be something missing - we reference 
a COM dll (BAWPublicV5) and solution task produces follwoing error:

* using nant-20031028.zip nighlty build

any hints ?

greetings from vienna,

gerold.

-



compile:

 [solution] Starting solution build.

BUILD FAILED

INTERNAL ERROR

System.ApplicationException: Couldn't find reference to type library 
'BAWPublicv5' (TYPELIB\{E1A04E7
B-BB8C-474E-A8AD-C893042F08F1}\24.0\0\win32).
   at NAnt.VSNet.Reference.HandleWrapperImport(XmlElement elemReference) 
in C:\DOCUME~1\ADMINI~1\LOC
ALS~1\Temp\tmp291.tmp\src\NAnt.VSNet\Reference.cs:line 373
   at NAnt.VSNet.Reference..ctor(Solution solution, ProjectSettings ps, 
XmlElement elemReference, So
lutionTask solutionTask, String outputDir) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt
.VSNet\Reference.cs:line 125
   at NAnt.VSNet.Project.Load(Solution sln, String projectPath) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Tem
p\tmp291.tmp\src\NAnt.VSNet\Project.cs:line 175
   at NAnt.VSNet.ProjectFactory.LoadProject(Solution sln, SolutionTask 
slnTask, TempFileCollection t
fc, String outputDir, String path) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.VSNet\P
rojectFactory.cs:line 50
   at NAnt.VSNet.Reference..ctor(Solution solution, ProjectSettings ps, 
XmlElement elemReference, So
lutionTask solutionTask, String outputDir) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt
.VSNet\Reference.cs:line 61
   at NAnt.VSNet.Project.Load(Solution sln, String projectPath) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Tem
p\tmp291.tmp\src\NAnt.VSNet\Project.cs:line 175
   at NAnt.VSNet.ProjectFactory.LoadProject(Solution sln, SolutionTask 
slnTask, TempFileCollection t
fc, String outputDir, String path) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.VSNet\P
rojectFactory.cs:line 50
   at NAnt.VSNet.Solution.LoadProjects() in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.V
SNet\Solution.cs:line 373
   at NAnt.VSNet.Solution..ctor(String solutionFileName, ArrayList 
additionalProjects, ArrayList ref
erenceProjects, TempFileCollection tfc, SolutionTask solutionTask, 
WebMapCollection webMappings, Fil
eSet excludesProjects, String outputDir) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.V
SNet\Solution.cs:line 113
   at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask() in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\s
rc\NAnt.VSNet\Tasks\SolutionTask.cs:line 289
   at NAnt.Core.Task.Execute() in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.Core\Task.c
s:line 151
   at NAnt.Core.Target.Execute() in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.Core\Targ
et.cs:line 207
   at NAnt.Core.Project.Execute(String targetName) in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\
src\NAnt.Core\Project.cs:line 753
   at NAnt.Core.Project.Execute() in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.Core\Pro
ject.cs:line 729
   at NAnt.Core.Project.Run() in 
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tmp291.tmp\src\NAnt.Core\Project
.cs:line 778

Please send bug report to [EMAIL PROTECTED]

Total time: 4.3 seconds.




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: solution task and linked VS.Net files.

2003-11-24 Thread Matthew Mastracci
Viehland, Kirk wrote:
Nant developers,

I am getting this error when I compile a VS.Net 2003 solution with an
ProductInfo file that has been linked from a parent directory.
Just as a side note - what is a Linked file within a solution?  How is 
one created?

---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev]

2003-11-21 Thread Matthew Mastracci
I've been thinking about some of the target dependency functionality, 
and I was wondering what people thought about having some extra 
specification of target ordering.  There's a couple of types in here, so 
I've broken them up.  I'm interested in hearing opinions of what people 
think of these.

1.  Explicit ordering of user-passed targets

One of the patterns seen in the NAnt buildfile is the "property target". 
 Examples of this include the framework selection, release/debug 
selection, etc.  It would be nice to specify the explicit ordering of 
these targets, without introducing a dependency.  For instance, 
something like this could be possible:



This would tell the dependency engine that the debug/release targets 
must run before any of build/test/deploy.

2.  Allowing targets to provide a virtual dependency

This would allow one or more targets to provide a "virtual" target that 
could be used as a dependency in later targets.  For instance:





Any comments/suggestions/flames?  :)

Matt.

---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: proposal: sync w/ Ant

2003-11-20 Thread Matthew Mastracci
Gert Driesen wrote:

No problem for me, but I suggest holding off on this change until after the
0.8.4 release ... would that be ok for you ?
Sure.  I'll keep the changes in my tree until 0.8.4 is out the door.

Matt.

---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] proposal: sync w/ Ant

2003-11-20 Thread Matthew Mastracci
Anyone offended if I sync up the  task with the Ant  task,
allowing it to echo to a file?
This would entail adding two properties:
file: filename to write to
append: boolean, default = false
http://ant.apache.org/manual/CoreTasks/echo.html

I need to recursively append values to a number of AssemblyInfo.cs files
(rather than re-creating them).  This would allow me to do this:








[assembly: CustomAssemblyAttribute("foo")]



Matt.

---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] NAnt 0.8.4 release ASAP?

2003-11-10 Thread Matthew Mastracci
It looks like tons of bug reports are coming from people using the 0.8.3 
version of the  task.  Should we put out 0.8.4 ASAP?  Any 
volunteers for the release?

This might cut down on the repetitive bug reports.  :)

Matt.



---
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] task w/non-existant files

2003-11-06 Thread Matthew Mastracci
Should the touch task create a non-existant file?  The documentation 
says that it corresponds to the unix touch command, but not in this 
respect.  :)



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Editing .build files w/syntax hilighting in VS.NET

2003-11-06 Thread Matthew Mastracci
I'm not sure if this was posted to these lists before, but this registry 
modification with allow you to edit .build file with nice XML syntax 
hiliting in VS.NET 2003.


Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Editors\{8281C572-2171-45AA-A642-7D8BC1662F1C}\Extensions]
"build"=dword:0027
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Editors\{C76D83F8-A489-11D0-8195-00A0C91BBEE3}\Extensions]
"build"=dword:0028
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Languages\File 
Extensions\.build]
@="{58E975A0-F8FE-11D2-A6AE-00104BCC7269}"
"unused"="HTML"




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: FYI

2003-11-06 Thread Matthew Mastracci
Alex Kipman wrote:

I also feel I should explain a little bit how we approach patents at
Microsoft and why we do it. We file patents not to deter other folks
(like you) from innovating in the future, but rather as a defensive
mechanism.  This way when people come after us we have patents as one
potential avenue of defense. 
If these patents are for defensive purposes only, perhaps Microsoft 
should offer the NAnt project a perpetual license to any build-related 
technology patents.  This would be an excellent show of good faith.  :)

Matt.



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] MSBuild

2003-10-30 Thread Matthew Mastracci
#1 difference - the source availability!  :)

John Lam wrote:

I've spent a fair amount of time recently with MSBuild, and have the
following set of observations about its relationship to [N]Ant:




---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] [need review] Fix for assembly path in NUnit2 test runner

2003-10-29 Thread Matthew Mastracci
I've found a bug in the NUnit2 test domain.  It seems that it changes 
the current directory to be the directory of the testing assembly, but 
then tries to use the relative path to access the assembly.  I haven't 
checked it in, because this behavour has changed at some point between 
0.8.3 and now.  Does anyone need this behaviour?  I'm pretty sure it's a 
bug, but I thought I would check.

Here's the patch (easy fix):

diff -u -r1.10 NUnit2TestDomain.cs
--- NUnit2TestDomain.cs 6 Oct 2003 15:19:56 -   1.10
+++ NUnit2TestDomain.cs 29 Oct 2003 19:13:01 -
@@ -61,6 +61,7 @@
 string currentDir = Directory.GetCurrentDirectory();
 Directory.SetCurrentDirectory(assemblyDir);
+assemblyFile = Path.GetFileName(assemblyFile);
 try {
 RemoteTestRunner runner = CreateTestRunner(domain);
Any objections to this fix?

Matt.



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] task speedups

2003-10-29 Thread Matthew Mastracci
I pointed nprof at NAnt to see if I could get the  task to 
build a little quicker for those of us with extra-large solutions.  The 
code in Reference.cs was re-loading projects over and over if project 
references were being used.  This re-loading of projects consumed over 
99% of the solution build setup time!

I've added some caching code in ProjectFactory to improve the  
task's build time.  BTW- big thanks to whoever implemented the 
ProjectFactory.cs class - this really helps with the caching.

Just a note In our ~70 project solution, our build time went from 800 
seconds to approx. 240 seconds on a fairly poor build server.  :)

Matt.



---
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Licensing

2003-10-14 Thread Matthew Mastracci
Do you have a reference for this?  I was looking at linking dynamically 
against the AnkhSVN libraries, but the Sleepycat GPL license prevents 
this if your application is not GPL'd.  I'm fairly certain that any 
binary linking (dynamic or static) will invoke the "viral" aspects of 
the GPL.

Jordan, Tom wrote:


-Original Message-
From: Martin Aliger [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 10, 2003 4:39 AM
To: [EMAIL PROTECTED]
Subject: Re: [nant-dev] Licensing


You cannot write a NAnt task that uses parts of NAnt's API and 
distribute that task under a license other than GPL (think of 
Subversion or NUnit distributing a NAnt task for example).  


This issue has been addressed repeatedly by the FSF in the case of C++.
As long as you are using a shared object (.so) or a dynamic link library
(.dll),
you are permitted to use the API under (L)GPL without effecting the license
that
your work is distributed under.  However, static libraries (.lib) would
impose
the (L)GPL on your work since it is now "binarily" inseperable from the API.
Extending this to C#, you can use (L)GPL assemblies with impunity.

The only sticking point is when AbstractIL in used.
Just like C++ templates where the instantiation of a templated API is
compiled into the containing works and inseperable from it, an API
based on AbstractIL may be dealt with in the same manner.
Since we don't currently use AbstractIL, there isn't a problem.
So, yes, you can compile and distribute your own Nant tasks as an
Assembly.  All this without opening the code to your taks.
---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Licensing

2003-10-10 Thread Matthew Mastracci
While replying to your note, I noticed the following on our license page:

http://nant.sourceforge.net/license.html

---
"NAnt ships with a prebuilt version of NDoc. The NAnt license does not 
apply to these components located in the bin folder of the distribution. 
NDoc is licensed under the GNU General Public License."
---

(also see 
http://cvs.sourceforge.net/viewcvs.py/ndoc/ndoc/COPYING.txt?rev=1.2&view=auto)

We would have to remove NDoc support if we moved to a different license. 
Unfortunately, this would also include moving to the LGPL.

NUnit appears to be safe, though they have a clear anti-commercial (ie: 
"you can't sell this product for profit") statement in the license.  It 
isn't very clear on whether bundling the product with a commercial one 
is alright, though I assume that it's within the spirit.  :)

---
"All of the NUnit source code is Copyright 2000-2002 by Philip Craig. 
All rights reserved.

"This software comes with no warranty whatsoever; Philip Craig does not 
accept any liability for any damage or loss resulting from the use of 
this software, no matter how caused. You can use this software free of 
charge, but you must not sell it beyond charging for reasonable 
distribution costs. This software includes classes and documentation 
from JUnit - see the licence for the JUnit licence."
---

Scott Hernandez wrote:

My largest concern is not that a company can use BSD-code, but rather
add core enhancements (ie: modifications/enhancements/bug fixes to the
core code) and keep those proprietary.  I personally don't mind people
keeping peripheral enhancements to themselves (for example, someone
wishing to build a proprietary link between their app and NAnt, an NAnt
gui, etc.), but it's good to get things like bug fixes and the like back
from people using the code.


It is great to get bug reports (and esp. patches) back from users. If
someone is going to do this I don't think it matters what license the
software is under. I don't feel pressed to send code patches to groups based
on the license. Sure, I may be bound by the license to do it, but no one is
going to force me.
Agreed - though if you were to distribute the program publically, it's 
likely that someone could call you on it.

Would changing the license from GPL keep you from contributing code, ideas
and being an active member of the development team?
Nope - I mentioned before that I would accept whatever license was 
agreed to by the development group as a whole, even if I don't agree 
completely with it.  :)

One other possibility I'd like to throw out these is keeping the core
codebase under the GPL (or changing to the LGPL) and offering a
"business friendly" binary distribution under a different license. 
...
This suggestion may not require a license change, but would likely
require buy-in from the development group for the binary-licensed
distribution.


From a marketing point of view it is really good to keep a single license.
The more license we use the more confusing the questions become. 
Going to a BSD/Apache style license is something we can evangelize and 
> something to point to as a change in the project.

This is true.

We can get more people involved with NAnt if we have a less restrictive
license. As Ian has pointed out, there is a lot of bad press around the
viral affects of the GPL. Even if we do have a clause to lessen those
restrictions, people will still react to the "GPL" part of the license and
may not pay attention to the additional licensing clauses. I too lean more
towards the LGPL license in some cases. In this case I look at what Ant has
done under the Apache license. I don't see any problems they have run into
(in choosing that license). If the Ant team had the option, now that they
have been out there so long, I wonder if they would choose a sep. license
for any reason. I wonder if there are times that they wish they could have
stopped someone from doing something with another license. (I know that this
is not an option as it is an apache project :)
I'm not completely certain about this part.  I guess I'm just not a fan 
of having to pander to the fear of others, but that might just be my 
personality.  :)  Perhaps instead of avoiding the issue by changing 
licenses, we could point people at a page explaining *why* the GPL won't 
make all of their proprietary IP automatically open-sourced.

Like I said before: whatever we agree on I'll support.  Just want to 
make sure I get my voice out there.  ;)

Matt.



---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Licensing

2003-10-10 Thread Matthew Mastracci
I agree, though in [2] and [3] I believe that changes (if any) to the 
core NAnt code should be contributed back.

Scott Hernandez wrote:

All of these scenarios should be allowed, IMHO.

- Original Message - 
From: "Brant Carter" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, October 10, 2003 10:02 AM
Subject: Re: [nant-dev] Licensing



I think we should ask ourselves what types of uses we would want NAnt to
be

available to.  Here are two scenarios.

[1] A commerical company wants to release a custom task and charge money
for

it.  Do we want to allow this?

[2] A commerical company wants to distribute a customized version of NAnt
as

part of its software package (ie: A compiler company, IDE developer) and
charge money for the entire package.   Do we want to allow this?
[3] A company creates a large software package that requires it to be
"built" by the end customer.  Are they allowed to distribute NAnt to do
this?  What if they modified NAnt in some way?
brant




---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Licensing

2003-10-10 Thread Matthew Mastracci
Ian MacLean wrote:
Matt,
what are your specific objections to a BSD style licence ? Is it the 
greater permissiveness or just that its not GPL ?
My largest concern is not that a company can use BSD-code, but rather 
add core enhancements (ie: modifications/enhancements/bug fixes to the 
core code) and keep those proprietary.  I personally don't mind people 
keeping peripheral enhancements to themselves (for example, someone 
wishing to build a proprietary link between their app and NAnt, an NAnt 
gui, etc.), but it's good to get things like bug fixes and the like back 
from people using the code.

I know that nothing in the BSD license precludes people doing this of 
their own accord, but it's certainly nice to have an up-front agreement 
that this is the case.  I'm not personally attached to the GPL itself - 
the LGPL is probably more aligned with my personal feelings.

I will, however, accept whatever the development group decides the new 
NAnt license should be.

I'm not sure that I agree with changing the license to a BSD or 
Apache-style license.  The code I've contributed was for a GPL project 
- changing it now would be the same to me as a "bait-and-switch" 
scheme pulled by a company.

We most certainly are not trying to pull a "Bait and switch" scheme. By 
no means should we change the license without concensus from the 
contributers.
Sorry about the wording - I didn't mean to post any accusations

Well if you consider that most users looking at using NAnt come from 
microsoft shops and have likely been exposed to/scared by the microsoft 
anti-GPL FUD. Compared to gcc users who are mostly all on Unix/linux or 
MaxOSX and are rather less fazed by that kind of thing. We have had a 
number of comments from consultants ( some from MS consulting ) and book 
authors that they would like to recomend NAnt to clients/corporations 
but had concerns about the license. Whether those concerns are valid is 
another issue however anecdotal evidence seems to suggest that this is a 
real concern for some people. I'd like to hear more from list members 
about corporate policy's regarding opensource usage and licenses.
One other possibility I'd like to throw out these is keeping the core 
codebase under the GPL (or changing to the LGPL) and offering a 
"business friendly" binary distribution under a different license.  This 
license could exclude any GPL viral terms that might be frightening off 
those with license concerns.  If business users are concerned with using 
GPL'd executables this could possibly satisfy them.  Those people 
looking to get the source could still grab the (L)GPL'd code from 
Sourceforge.

This suggestion may not require a license change, but would likely 
require buy-in from the development group for the binary-licensed 
distribution.


I would, however, support adding a clause to the license exempting 
things like user-supplied or 3rd party  tasks(though, even under the 
GPL these are required to be distributed if you're just keeping NAnt 
in-house) and development environments/plugins for such.

Take a look at the SharpZipLib license (GPL + linking exception) for 
one that's both business- and FSF-friendly.

I will take a look at it. Gerry also added a linking exception clause to 
the nant license see ( http://nant.sourceforge.net/license.html ). Not 
sure if its similar.
It's a good exception - the SharpZipLib one is even more flexible:

--- 8< ---
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
Note : I've changed the exeption a bit according to the newest GNU 
Classpath exception. Old versions did have another exception, but the 
new one is clearer and it doesn't break compatibility with the old one.
--- 8< ---

Thanks,
Matt.


---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Licensing

2003-10-09 Thread Matthew Mastracci
I'm not sure that I agree with changing the license to a BSD or 
Apache-style license.  The code I've contributed was for a GPL project - 
changing it now would be the same to me as a "bait-and-switch" scheme 
pulled by a company.

NAnt works well as a GPL'd project.  It's effectively a stand-alone 
project.  Any company wanting to incorporate it could simply bundle the 
executable.  I don't see how a GPL'd .NET build project would scare 
people away more than a GPL'd C++ compiler.

I would, however, support adding a clause to the license exempting 
things like user-supplied or 3rd party  tasks(though, even under the GPL 
these are required to be distributed if you're just keeping NAnt 
in-house) and development environments/plugins for such.

Take a look at the SharpZipLib license (GPL + linking exception) for one 
that's both business- and FSF-friendly.

My 2 cents,
Matt.
Stefan Bodewig wrote:

Trying to chime in with a bit of experience from seeing project
migrate to the ASF.
On Wed, 8 Oct 2003, Gert Driesen <[EMAIL PROTECTED]> wrote:

From: "Clayton Harbour" <[EMAIL PROTECTED]>


On another note you mentioned license changes, I have always been
curious how that works/ is accomplished?


If you want to be really really save: Get all people who have ever
contributed anything to your code to agree on changing the license
with the next release.
You cannot change the license for your older releases, they've already
been out.  And the people who have contributed code still hold the
copyright to it (even under US law AFAIU).
Doing it with the next release also gives people who prefer the old
license the opportunity to have a stable forking point.  They can pick
up the code from before the license change and create a new project
from there.

I did have a quick look at the licensing stuff, and to me it seems
like a BSD-style license is the most open license ...


I feel I should put a big disclaimer in before I proceed.  I'm a
member of the Apache Software Foundation.  I am biased.  I'll try to
be fair when comparing the licenses, but may very well fail to do so.
All major open source licenses have their pros and cons.  The (L)GPL
on the one side and the BSDish licenses on the other simply have a
different focus.
Behind the (L)GPL is the philosophy of Free Software as defined by the
FSF.  It is a philosophy and a political manifesto that you can agree
with or not.  The GPL has been crafted to enforce this vision.
The GPL as well as BSDish licenses give their users the right to get
the code for free and to modify it.  The GPL takes away the user's
right to distribute the modified software under different licensing
terms, and it does so because it wouldn't be "Free Software" anymore
otherwise.
If you have any problem with big companies making money with your
software without giving anything back to you - the BSDish licenses are
not for you.
As for "most open", I'd say the MIT license[1] probably is the winner
here.  It basically says "do with this what you want, don't blame me".
The BSD license[2] adds one thing "don't advertize with my name, at least
not without asking for permission".
And the Apache Software License[3] adds brand protection on top of
this.  "Don't call your derived project like mine".
Note that this brand protection is the part that makes the FSF claim
the Apache Software License was incompatible with the GPL (i.e. a
GPLed software must not include Apache licensed code).
Footnotes: 
[1]  http://www.opensource.org/licenses/mit-license.php

[2]  http://www.opensource.org/licenses/bsd-license.php

[3]  http://www.opensource.org/licenses/apachepl.php

The rest is my personal opinion, don't read on if you don't want to
see that 8-)
I for one don't agree with the FSF's vision, I feed my children from
money I get for writing commercial software and I don't feel bad about
it.
I enjoy writing software and giving it away for free as well - and if
I contribute to a open source project that uses a BSDish license I get
the additional benefit that I may use my own code (plus improvements
made by others) for the commercial software I write.
If a big company comes and takes my code, modifies it and
redistributes it as a commercial product, this is no problem for me.
I don't believe in "free software", I believe in improved software and
that the commercial company will realize that it is in their better
interest to contribute their changes back instead of merging my
changes with theirs over and over again over time.
Stefan



---
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




-

Re: [nant-dev] Solution determination of build order

2003-10-06 Thread Matthew Mastracci
The solution task determines dependencies by analyzing project
references.  For example, if project A reference B.dll, B will build
before A.  This is irregardless of whether the reference to B.dll was
done through a reference to the "B" project or by referencing "B.dll" in
the bin\Debug or bin\Release directory of the "B" project.

Basically, the task determines the order to build the project
independently of the order in which they are specified in the 
section.  It also ignores the dependencies described in the solution
(this should be implemented at some point, however).

If you're using file references, check to make sure that VS.NET hasn't
moved them to point at a file in the output directory of another
project.  The solution task cannot currently detect this situation.

On Mon, 2003-10-06 at 16:08, Eric Fetzer wrote:
> How does  determine the build order?  My
> build all of a sudden stopped working and I can't
> figure it out.  I was pointing to a .sln file with 26
> projects and thought it might be the .sln.  So I
> converted to:
> 
> 
>
>   
>   
>   
>
> 
> 
> sort of thing with the projects listed in the correct
> build order.  It still builds in the same order with
> the same error.  I'm running the final 0.83.  Any
> help?  My head is beginning to take on a red tint from
> the constant pounding against the bricks...
> 
> Thanks,
> Eric
> 
> 
> __
> Do you Yahoo!?
> The New Yahoo! Shopping - with improved product search
> http://shopping.yahoo.com
> 
> 
> ---
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> ___________
> nant-developers mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/nant-developers
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: RE: RE: [Fwd: Ready to tackle next release] (Patches)

2003-10-06 Thread Matthew Mastracci
James - take a look at Resource.cs in VSNetTasks.  The file contains a 
similar set of regular expressions (Look for the 
GetDependentNameCSharp/VB functions).  I believe that it might be 
slightly more robust, but I feel that neither set can currently handle 
all situtations correctly.

James C. Papp wrote:

Great!   I will need to refresh the source with the latest code under CVS (I'm 
currently using code released under v0.83), though I do not think that there 
will be many changes.  Do you want me to zip up the source files that have 
changed and post them to the list, or do you want me to use some tool to 
create differences.  Does CVS do that?  I've used CVS but not extensively, I'm 
a Perforce fan.

Also, to clear some confusion:  

Matthew, I am referring to Compilerbase.cs as Ian has suggested.  I've checked 
the latest version under CVS and it has the same problems (actually, it does 
not look like the RESX stuff was touched since the v.083 release).

Here's what in CVS now (Compilerbase.cs):

protected virtual string GetFormNamespace(string resxPath) {
 string retnamespace = "";
 StreamReader sr = null;
 // open matching source file if it exists
 string sourceFile = resxPath.Replace("resx", Extension);
 try {
   sr = File.OpenText(sourceFile);
   while (sr.Peek() > -1) {
 string str = sr.ReadLine();
 string matchnamespace =  @"namespace ((\w+.)*)";
 string matchnamespaceCaps =  @"Namespace ((\w+.)*)";
 Regex matchNamespaceRE = new Regex(matchnamespace);
 Regex matchNamespaceCapsRE = new Regex(matchnamespaceCaps);
 if (matchNamespaceRE.Match(str).Success){
   Match namematch = matchNamespaceRE.Match(str);
   retnamespace = namematch.Groups[1].Value;
   retnamespace = retnamespace.Replace("{", "");
   retnamespace = retnamespace.Trim();
   break;
 } 
 else if (matchNamespaceCapsRE.Match(str).Success) {
   Match namematch = matchNamespaceCapsRE.Match(str);
   retnamespace = namematch.Groups[1].Value;
   retnamespace = retnamespace.Trim();
   break;
 }
   }
   return retnamespace;
 } catch (FileNotFoundException) {
   // if no matching file, dump out
   return null;
 } finally {
   if (sr != null) {
 sr.Close();
   }
 }
}

Ellaborting on #2, from this code you can see that regardless of file type the 
matchNamespaceCapsRE can still be executed.  We were hit by this because at 
the top of each of our sorucefiles we have a standard header as well as 
documention, and it just so happened to include the word "Namespace".

With #3, NAnt does nothing to look for the class name, and just uses the 
filename which is not always correct; the path to a RESX file is assocated 
with the class name, not the filename.

Matt, you seem to indicate that this type of work is being done somewhere 
else.  Where is this located, I should take a look at it, to make sure what I 
summit is compatible, especially if we want to standardize this stuff in one 
place.

Thanks,
James.
Quoting Ian MacLean <[EMAIL PROTECTED]>:

 

James,
We'd love to see your patches. The resx issues was a known one - if your
solution is cleaner and more accurate then obviously thats the way to go.
Post patches here and they will be reviewed.
Ian
   

Quoting Matthew Mastracci 

 

Please let me know if I'm totally out to lunch on this one- I'm guessing
that this resx issue you are describing is a problem with the 
task.  
   

 

I haven't really been in the code there lately, but checking in CVS, it
looks as if the resource-compiling functionality is operating correctly
(with the exception of the not-so-smart regex's you mentioned in your
note).  I can't see how more than one regex could be run on a single
file.  Are you running with an older version, or does CVS exhibit the
problems you are seeing?
   

 

Also with regards to "The biggest problem is that NAnt assumes the
filename (of the source file) is the name of the class that the RESX
should be associated too"- we should (according to the latest code) be
parsing the files to determine the correct namespace/filename of the
final .resource file.  Resources should never be named to match their
dependent files.  Are you perhaps referring to .resx files that are not
associated with any .cs or .vb files?  I could see that there could be a
problem there, but it seems to match VS.NET's behaviour in all of my
tests.
   

 

Can you please elaborate on #2 and #3 more?  Again, if you're not
talking about what I think you are, let me know, and I apologize in
advance. :)
   

 

Thanks,
Matt.
   



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/

Re: [nant-dev] RE: RE: [Fwd: Ready to tackle next release]

2003-10-03 Thread Matthew Mastracci
Oh - I hadn't realized that the CompilerBase was doing the same sort of 
hackery.  In that case, I guess we should probably be sharing the 
delicate code between the two places.  It might be better to move all of 
the code into the CompilerBase class and use it from there in the 
Solution task.

Thanks for the clarification,
Matt.
Ian MacLean wrote:

Matthew Mastracci wrote:

Please let me know if I'm totally out to lunch on this one- I'm guessing
that this resx issue you are describing is a problem with the 
task. 
 

I think he's talking about Compilerbase.cs. The regular compiler tasks 
do the same thing as solution task wrt determining correct namespace 
prefix. Its the same problem just in a different place.
Ian

I haven't really been in the code there lately, but checking in CVS, it
looks as if the resource-compiling functionality is operating correctly
(with the exception of the not-so-smart regex's you mentioned in your
note).  I can't see how more than one regex could be run on a single
file.  Are you running with an older version, or does CVS exhibit the
problems you are seeing?
Also with regards to "The biggest problem is that NAnt assumes the
filename (of the source file) is the name of the class that the RESX
should be associated too"- we should (according to the latest code) be
parsing the files to determine the correct namespace/filename of the
final .resource file.  Resources should never be named to match their
dependent files.  Are you perhaps referring to .resx files that are not
associated with any .cs or .vb files?  I could see that there could be a
problem there, but it seems to match VS.NET's behaviour in all of my
tests.
Can you please elaborate on #2 and #3 more?  Again, if you're not
talking about what I think you are, let me know, and I apologize in
advance. :)
Thanks,
Matt.
On Fri, 2003-10-03 at 21:21, Ian MacLean wrote:
 

James,
We'd love to see your patches. The resx issues was a known one - if 
your solution is cleaner and more accurate then obviously thats the 
way to go.
Post patches here and they will be reviewed.
Ian

  

RE: [Fwd: Ready to tackle next release] 
If you are getting ready for a new release, I have a bunch of 
patches I would love to see added to NAnt.  I would be willing to 
work with everyone as much as needed, to see that the changes make 
it into the release; or some variation of them - that is, if they 
are accepted.

Here is a run down of our current changes to NAnt: 
I have mentioned this one previously; and it involves adding an 
"options" property to CompilerBase.cs.  The original post had no 
subject and came out garbled (sorry about that), though I have 
filed it under RFE "[811931] - Adding an "options" property to 
CompilerBase.cs", where you can read about the change in more detail.




Another change we made was to allow passing of "parameters" as 
properties to other NAnt scripts via the "nant" task.  This works 
really well and avoids having to using the "inheritall" attribute 
(which can be overkill - particularly if you have scripts that call 
themselves externally...). You can think of this feature as adding 
support for the "-D:" options of nant.exe

The syntax looks like this:



   
   


The "defines" are created as properties and accessible only from 
the invoked NAnt script as if they were passed with "-D:". Their 
values are evaluated at the time just before the new script is 
invoked.  Note: You can still use the "inheritall" attribute as 
well, though anything defined will override anything inherited if 
there is a name collision.   The patch for this change is 
straightforward and simple.  The only part left to do is handling 
all the NAnt location stuff with properties, which I am not too 
sure about (currently, I set this to unknown), though I'm sure 
someone on the list can enlighten me.

Our next change is the most extensive but it fixes a long 
out-standing issue with NAnt.   Basically, we did a rewrite on how 
NAnt handles RESX files.  Currently NAnt has the following problems:

1.)The regular expressions for determining the namespace are 
poor and are easily confused by comments (that have the word 
namespace in them, for example "// is located in the foo namespace").
2.)The regular expressions used by different languages are 
executed on all the source files.  For example, when compiling a 
"*.cs" file the regular expressions for capitalized namespace 
lookup (I guess for VB) is executed even when it should not; this 
is bad, as it picks up false positives and increase the chance of 
error.
3.)The biggest problem is that NAnt assumes the filename (of 
the source file) is the name of the class that the RESX should be 
associated too.  This issue killed our use of NAnt (until we fixed 
it), as our filenames do not match t

Re: [nant-dev] RE: RE: [Fwd: Ready to tackle next release]

2003-10-03 Thread Matthew Mastracci
dio does not have a problem with 
> >this.
> >
> >
> >  
> >
> >>It would be great to see NUnit 2.1 plugged in. I'd also like to see 1.1
> >>as the default. Ian - do you think it would be possible to get the
> >>ReplaceTask into the core if I can make it more robust?
> >>
> >>
> >>- Mitch Denny
> >>- [EMAIL PROTECTED]
> >>- http://www.monash.net
> >>- +61 (414) 610141
> >>- 
> >>
> >>
> >>
> >>>-Original Message-
> >>>From: Ian MacLean [mailto:[EMAIL PROTECTED] 
> >>>Sent: Friday, October 03, 2003 2:31 PM
> >>>To: [EMAIL PROTECTED]
> >>>Subject: [nant-dev] [Fwd: Ready to tackle next release]
> >>>
> >>>
> >>>
> >>>  
> >>>
> >
> >
> >---
> >This sf.net email is sponsored by:ThinkGeek
> >Welcome to geek heaven.
> >http://thinkgeek.com/sf
> >___
> >nant-developers mailing list
> >[EMAIL PROTECTED]
> >https://lists.sourceforge.net/lists/listinfo/nant-developers
> >  
> >
> 
> 
> 
> 
> 
> ---
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> ___
> nant-developers mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/nant-developers
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: RE : [nant-dev] solution task fix

2003-09-17 Thread Matthew Mastracci
Heh...  I can see why it caught that as the wrong class.  You might be 
able to reorder stuff to get around this problem.  The *correct* 
solution for us would be to use a real C# parser.  Perhaps the Mono C# 
parser would work, if the license is compatible.

The regex one is good enough 99% of this time, but can't detect and 
ignore stuff like strings/etc.  You *might* be able to use the new 
nesting regex constructs to ignore strings, but those hurt my brain.  
Handling the @strings would also be an extra nightmare:

(?   /) 	Captures the matched substring into a group name or 
number name. The string used for /name/ must not contain any punctuation 
and it cannot begin with a number. You can use single quotes instead of 
angle brackets; for example, |(?'name')|.
(? ) 	Balancing group definition. Deletes the definition 
of the previously defined group /name2/ and stores in group /name1 /the 
interval between the previously defined /name2/ group and the current 
group. If no group /name2/ is defined, the match backtracks. Because 
deleting the last definition of /name2/ reveals the previous definition 
of /name2,/ this construct allows the stack of captures for group /name2 
/to be used as a counter for keeping track of nested constructs such as 
parentheses. In this construct /name1 /is optional. You can use single 
quotes instead of angle brackets; for example, |(?'name1-name2')|.

Thanks for the text/plain email!  Much easier to read.  ;)

Matt.

Vincent Labatut wrote:

thanks, got it now ! So this is what visual studio acutally does...

I found a thread where a guy was stuck because of visual studio grasping the
wrong class name for his resource !! ;) (he had defined multiple classes
within the same file, visual studio takes the first)
http://www.dotnet247.com/247reference/msgs/10/52512.aspx
I think we should still strengthen the regexp because it caught something in
one of my source files which was not a classname, resulting in an invalid
file name and an exception in path.combine. The following line in my source
file causes a bug (c#) :
string l_str_temp = "";
I'll give it a look and try to come back with a better regexp...

Matthew: I finally ended up in changing my email client and address ! sorry
for the inconvenienceS
-Original Message-
From: Erv Walter [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 5:00 AM
To: Matthew Mastracci; Vincent Labatut
Cc: [EMAIL PROTECTED]
Subject: Re: [nant-dev] solution task fix
VS.NET uses the full name of the class (namespace.classnam) for the "behind
the scenes" .resx files (those resource files automatically created to hold
WinForm resources, etc.
If you create a .resx explicitly and add it to your project (for example, to
hold string resources for internationalization purposes), VS.NET will use
the filename prefixed with a namespace.  The namespace will be a combination
of your project's default namespace and the filepath to the .resx file.  So,
if you have a file called strings.resx in subdirectory 'Other' of a project
with namespace 'Stuff', the resource will be embedded as
Stuff.Other.strings.resource.
So, parsing an associated .cs file is only sometimes appropriate (for the
cases where the .resx file was automatically created behind the scenes).
-Original Message-
From: Matthew Mastracci [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 9:50 AM
To: Vincent Labatut
Cc: [EMAIL PROTECTED]
Subject: Re: [nant-dev] solution task fix
Unfortunately, VS.NET uses the name of the class as the generated resources
filename.  Changing this would break any designer-created code.
BTW, as a friendly suggestion.  :)  I can't read your mail from Sept. 9
because it appears to be encoded in something other than text/plain.  I get
nant-users in digest form, which means that I ignore any HTML/RTF mail that
gets sent to it (not fun reading through HTML tags, as you can probably
imagine).  For archival purposes, it is highly recommended to send mail to
the mailing list in text/plain format only.  If this is not possible, ensure
that your mail client is at least sending this as backup to text/html.
Matt.

Vincent Labatut wrote:

 

hi,

i think there's a problem in the way compiled resource filenames are
   

computed in the solution task. I had a collision which was failing my build
(cf my mail to the nant users list "solution task - problem with resources"
on the 9th sept).
 

The filenames are computed by scanning the corresponding source files (cs
   

or vb) to each resx file, looking for a namespace and class with a regexp,
maybe to find out a unique name (namespace + classname should be unique).
The problem is that the regexp used aren't robust enough.
 

There is also in the code an alternative way of doing so : using the path
   

of the file as a unique name, and this seems to work well.
 

I can't figure out why this fir

Re: [nant-dev] solution task fix

2003-09-17 Thread Matthew Mastracci
Unfortunately, VS.NET uses the name of the class as the generated 
resources filename.  Changing this would break any designer-created code. 

BTW, as a friendly suggestion.  :)  I can't read your mail from Sept. 9 
because it appears to be encoded in something other than text/plain.  I 
get nant-users in digest form, which means that I ignore any HTML/RTF 
mail that gets sent to it (not fun reading through HTML tags, as you can 
probably imagine).  For archival purposes, it is highly recommended to 
send mail to the mailing list in text/plain format only.  If this is not 
possible, ensure that your mail client is at least sending this as 
backup to text/html.

Matt.

Vincent Labatut wrote:

hi,

i think there's a problem in the way compiled resource filenames are computed in the solution task. I had a collision which was failing my build (cf my mail to the nant users list "solution task - problem with resources" on the 9th sept).

The filenames are computed by scanning the corresponding source files (cs or vb) to each resx file, looking for a namespace and class with a regexp, maybe to find out a unique name (namespace + classname should be unique). The problem is that the regexp used aren't robust enough.

There is also in the code an alternative way of doing so : using the path of the file as a unique name, and this seems to work well.

I can't figure out why this first manner is put forward in the code, it sounds like making two many assumptions to me, whereas more robust algorithms exist.

may I suggest the following fix, it forces the alternative way. If adopted, 3 functions would need to be deleted as well (GetDependentResourceName and the like), not included in this fix for clarity.



--- resource.cs Wed Sep 03 11:00:01 2003
+++ resource.cs Wed Sep 17 15:18:35 2003
@@ -225,9 +225,9 @@
string inFile = _resourceSourceFile;
string outFile;

-if (!StringUtils.IsNullOrEmpty(_dependentFile)) {
-outFile = GetDependentResourceName(_dependentFile);
-} else {
+// if (!StringUtils.IsNullOrEmpty(_dependentFile)) {
+//outFile = GetDependentResourceName(_dependentFile);
+// } else {
StringBuilder sb = new StringBuilder();
if (!StringUtils.IsNullOrEmpty(Project.ProjectSettings.RootNamespace)) {
sb.Append(Project.ProjectSettings.RootNamespace);
@@ -240,7 +240,7 @@
}
sb.Append(".resources");
outFile = sb.ToString();
-}
+//}
outFile = Project.ProjectSettings.GetTemporaryFilename(outFile);

_solutionTask.Project.Indent();



It does not prevent my project to have localized resource dlls (which BTW need dedicated tasks).

N???޵隊X???'???u???)??Y?\?g???????b?HzG(?????u?ޖ?^?ɚ?X??X??v??ׯzZ)z?%??l???q???z?mX???(??~??zw??X?b??u?ޖ?^rs==





---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] license task broken

2003-09-14 Thread Matthew Mastracci
Yet another bug is that the License task loads assemblies (as far as I
can remember) into the main AppDomain.  It needs to have code to load
these assemblies in a separate AppDomain, like the NUnit tasks have.

Matt.

On Sun, 2003-09-14 at 11:46, Sascha Andres wrote:
> Hi,
> 
> It seems I found two bugs. One is in the licese task itself.
> It can happen (actually it does on one of my systems),
> thatasmLoaded.Location is either an empty string or null. If
> so, Path.GetFullPath(...) throws an exception. The attached
> diff files addesses this issue.
> 
> The second thing seems to be in Directory scanner (I'm not
> sure, cause I have not much time to dive into this yet). If
> I give something like D:\licensed_components\*.dll as
> includes in the nested assembly, he tries to load dlls
> without the ending. Eg A file name assembly.dll gets only
> assembly .
> 
> HTH,
> -sa
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] solution task addin

2003-09-12 Thread Matthew Mastracci
I agree with Martin.  Sometimes you need to override a build setting on 
your build machine.  At our shop, we tag each build with a string 
version that doesn't fit Microsoft's idea of a version number.  This 
produces a warning and, on assemblies that build with warning = error, a 
build failure! 

It's easier for us to add the /nowarn: flag on each assembly at build 
time, rather than at development time (imagine adding this flag to 75 C# 
projects :)). 

The solution task was never designed to operate specifically like 
VS.NET, but rather with the ability to build VS.NET compatible files and 
offering a great deal more functionality.  This makes up for the lack of 
functionality that Microsoft has given VS.NET's build process.  I'm all 
for adding any functionality that allows me to customize my build further.

See this link for some more info:

http://nant.sourceforge.net/wiki/index.php/SolutionTask

Martin Aliger wrote:

Hi Jarek,

 

Personally I think it's a bad idea to have extensions like this because
   

they
 

change semantics of  task from something very simple (do it like
VS.NET does) to something quite difficult to follow.
   

Maybe you need to build exacly what solution says. But I need to override
some settings. For example output path (outputdir attribute). This overrides
something, which is in .csproj. It is handy in some situations. For the same
reason could be handy to specify other compiler options. Good point by Matt,
that it could be specified by compiler (c#/vb), though.
As I see  task, it is something that take vs solutions or projects
and integrate it into nant. Level on which you integrate should be
adjustable. Someone want to just build that solution file (build win project
on Linux without vs), someone want to use just file list from csproj and
override all other options. IMHO current implementation fullfil this idea
(to some extent).
 

I've made a quick scan through all csc.exe options that cannot be set in
VS.NET by searching through MSDN for "This compiler option is unavailable
   

in
 

Visual Studio.". And I see only four options that might be useful to add
this way:
/utf8output
/noconfig
/codepage
/fullpaths
any other options (there are 14 which aren't settable through VS.NET)
   

don't
 

make sense since they would change the semantics of the build or aren't
usable with NAnt.
   

True. There could be more options in future, or more options in another
compiler (mono) and you want to use it for some reason. Why update .csproj
when you could update .build file? For build servers where csprojs are
submitted by developes you will need to read and change their csprojs. I do
not like this much...
 

I vote against the patch.

Martin, if you have problems with the codepage - use UTF-8 for source
   

files
 

or change your system locale. The best way would be to move all
language-specific elements to a separate resource XML file (*.resx)
   

because
 

XML files preserve encoding informations.

To save your file as UTF-8:

VS.NET => File => Advanced Save Options => Encoding => Unicode (UTF-8 with
signature)
   

Oh. Thanks! I do not know about this vs feature. resx havn't problem with
this, but embedded xmldoc have :-(.
Martin

 

Jarek

- Original Message - 
From: "Gert Driesen" <[EMAIL PROTECTED]>
To: "Martin Aliger" <[EMAIL PROTECTED]>; "! nant"
<[EMAIL PROTECTED]>
Sent: Friday, September 12, 2003 2:19 PM
Subject: Re: [nant-dev] solution task addin

   

I'll commit it later today.

Thanks,

Gert

- Original Message -
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Friday, September 12, 2003 2:04 PM
Subject: Re: [nant-dev] solution task addin
 

Here it is reworked. Looks much nicer now :)


  
  
  
  
 
 
  
  
 
  

Martin

- Original Message -
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>; "! nant"
<[EMAIL PROTECTED]>
Sent: Friday, September 12, 2003 1:08 PM
Subject: Re: [nant-dev] solution task addin
   

use BuildElementCollection("compilerargument" or "compilerargs")
   

instead
 

of [BuildElementArray("arg")]
Ok. I'll rework it.
 

PS. can you also change your code format to use brackets on the
   

same
 

line,
   

instead of on the next line ...
sorry for that. I was trying hard, but we use different code
 

convention
   

here
   

(similar to VS default) to I sometimes forget it...

- Original Message -
From: Gert Driesen
To: Martin Aliger ; ! nant
Sent: Friday, September 12, 2003 1:08 PM
Subject: Re: [nant-dev] solution task addin
Look very good, but I have some remarks :

use BuildElementCollection("compilerargument" or "compilerargs")
 

instead
   

of
   

[BuildElementArray("arg")]

that will :

- make it clear that those are argument that will be passed to the
 

compiler
   

- allow us to use a more structured build layout


   
   ...
   
| 
 

Re: [nant-dev] solution task addin

2003-09-12 Thread Matthew Mastracci
Quick note- should the compiler be specified for each of these args?  
Not all args are supported by all compilers.  Specifying an argument 
that a compiler does not support may break your build.  I'd wager that a 
good number of places used mixed-language builds.

BTW, thanks for all of the patches Martin!

Perhaps something like this (I'm not sure if using the language name 
("C#") or the compiler ("csc") would be better):


  


  

Or this:


  
  

Matt.

Gert Driesen wrote:

I'll commit it later today.

Thanks,

Gert

- Original Message -
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Friday, September 12, 2003 2:04 PM
Subject: Re: [nant-dev] solution task addin
 

Here it is reworked. Looks much nicer now :)


  
  
  
  
 
 
  
  
 
  

Martin

- Original Message -
From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>; "! nant"
<[EMAIL PROTECTED]>
Sent: Friday, September 12, 2003 1:08 PM
Subject: Re: [nant-dev] solution task addin
   

use BuildElementCollection("compilerargument" or "compilerargs")
   

instead
 

of [BuildElementArray("arg")]
Ok. I'll rework it.
 

PS. can you also change your code format to use brackets on the same
   

line,
   

instead of on the next line ...
sorry for that. I was trying hard, but we use different code convention
 

here
   

(similar to VS default) to I sometimes forget it...

- Original Message -
From: Gert Driesen
To: Martin Aliger ; ! nant
Sent: Friday, September 12, 2003 1:08 PM
Subject: Re: [nant-dev] solution task addin
Look very good, but I have some remarks :

use BuildElementCollection("compilerargument" or "compilerargs") instead
 

of
   

[BuildElementArray("arg")]

that will :

- make it clear that those are argument that will be passed to the
 

compiler
   

- allow us to use a more structured build layout


   
   ...
   
| 
   
   
| 

why not rename GetCSCArguments to GetCompilerArguments, as these
 

arguments
 

will also be useful for other compilers (VB.NET).

Keep up the good work !!!

Gert

PS. can you also change your code format to use brackets on the same
 

line,
 

instead of on the next line ...
- Original Message -
From: Martin Aliger
To: ! nant
Sent: Friday, September 12, 2003 11:35 AM
Subject: [nant-dev] solution task addin
Hi all,

Again, I propose an addin into solution task. It enables use of extra
parameters for csc task as in this case:
 

   


   
   


 
adding extra /codepage:1250 to csc calls. This is needed, when .cs files
 

are
   

in another codepage than ascii, unicode or utf-8.

This could be used for other switches as well! Hope you'll like it :)

Martin

 



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NUnit security

2003-09-10 Thread Matthew Mastracci
Especially those people using Draco.NET to build Sourceforge projects.  :) 

Martin Aliger wrote:

Seems ok.
 
It is not problem for me - just a general thought.
 
Maybe we could add note about it into doc for NUnit{1,2} tasks. Could 
be problem for projects like Draco.NET or CruiseControl.NET which use 
Nant internally. The rights should be adjustable from task attributes 
in future. Some tests could need more rights than others and only 
author of build file knows.
 
Martin

- Original Message -
*From:* Lorphelin Yves 
*To:* Martin Aliger  ; ! nant

*Sent:* Wednesday, September 10, 2003 6:11 PM
*Subject:* RE: [nant-dev] NUnit security
Hi Martin,
 
If you have no special need for your service to run under a
privileged account, let it then run with a less privileged account.
 
 
Otherwise you can use the built-in .Net  runtime security features:
Let your nant script copy everithing you need to a special folder
(incl Nunit assemblies).
& configure the .Net runtime on the build server so that
everithing that is runned from this folder is granted less privileges.
If your running W*S go to the administrative tools, .net Framework
Configuration
Runtime Security policy>Machine> code groups > all Code >
My_computer_zone & make a new code group who's
condition types is url and use " file://some directory/*.*" & the
choose the permission set you want to use. (this can be done via
the cmd line caspol)
 
 
Hope this helps.
Yves
 

-Oorspronkelijk bericht-
*Van:* Martin Aliger [mailto:[EMAIL PROTECTED]
*Verzonden:* wo 9/10/2003 4:43 PM
*Aan:* ! nant
*CC:*
*Onderwerp:* [nant-dev] NUnit security
Hi all,

I found serious security problem. My build server, which use NAnt
internally, runs as windows service (as all build servers I
know runs). This
service runs as priviliged user. Nothing wrong with that
unless you run
test-cases with NUnit. It runs user code, which could contain
maligious
tests... It is not big problem for us, since I trust my
coleagues, but it could be problem in some scenarios.
What about limit somehow permitions in NUnitTask? Or is
something done in
NUnit itself?
Regards,
Martin


---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] [PATCH] New fileset option "fromframework"

2003-09-07 Thread Matthew Mastracci
Just as an alternate suggestion, why not just have a framework fileset
building task separate from the fileset task?  It seems like adding
specific functionality (through I agree this is a borderline case) to
the task might be overloading a fairly concise task with something not
as specific.

Perhaps:


 ...



 ...


?

Matt.

On Sun, 2003-09-07 at 19:34, Ian MacLean wrote:
> Jaroslaw Kowalski wrote:
> 
> >After some thougths, I think that the whole FrameworkInfo management doesn't
> >belong in NAnt.Core and therefore FileSets shouldn't rely on framework
> >concept at all.
> >
> >  
> >
> I think FrameworkInfo does belong in NAnt.Core simply becuase its such a 
> major part of the tool. But you're right you shouldn't have to have a 
> currentframework to run nant. Its possible to not have one if you for 
> example don't have the SDK installed - only the runtime. In that case 
> nant would run and all the copy, move and other non .Net tasks will run  
> fine. csc etc will obviouly not work.
> 
> >Am I right? Can the concept of frameworks be useful for anything other than
> >dotnet ? And how is it possible not to have a currentframework ?
> >
> >  
> >
> Its also useful for running managed applications on mono where we 
> automatically run 'mono foo.exe'  rather than trying to execute foo.exe 
> as a standalone executable.
> 
> Ian
> 
> 
> 
> 
> 
> ---
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> ___
> nant-developers mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/nant-developers
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] 0.83-rc3

2003-09-04 Thread Matthew Mastracci
AFAIK, there wasn't a problem with the hint path per se, but rather that 
it didn't have a way to override the hint path for people who store 
their 3rd-party DLLs in a different place per-developer.  We're using 
the 0.8.3 solution task here.  As long as the fix for the .resx 
resources generation problem is in CVS, the task should be ready for 
*most* people.  Those who need the assemblyfolders path from Martin 
Aliger can probably wait for 0.8.4.

Gert Driesen wrote:

That is the intention yes, we could ofcourse skip the 0.8.3 release and
start the 0.8.4 beta cycle ...
I agree that having a 0.8.3 release with serious known issues might now be a
good idea after all.
Gert
- Original Message - 
From: "Philippe Lavoie" <[EMAIL PROTECTED]>
To: "Ian MacLean" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Thursday, September 04, 2003 5:59 PM
Subject: RE: [nant-dev] 0.83-rc3

Didn't the RC2 solution task have a lot of issues with the hint path not
being followed correctly and another bug on RC2 (see my earlier posts on
this subject).
Your e-mail kinds of imply that 0.8.3 will be released without fixes for
those. Is this true?
Philippe Lavoie



  Cactus Commerce eBusiness. All Business.

Tel 819.778.0313 x302 * 888.CACTUS.0 * Fax 819.771.0921

www.cactuscommerce.com [EMAIL PROTECTED]

-Original Message-
From: Ian MacLean [mailto:[EMAIL PROTECTED]
Sent: Friday, August 29, 2003 3:53 AM
To: [EMAIL PROTECTED]
Subject: [nant-dev] 0.83-rc3
Its been long delayed but I've finally uploaded a rc3 for the 0.83
release. John Barstow became snowed under with work at his real job so I
picked this up on his behalf. The only change from rc2 is the inclusion
of the tests directory. ie it does *not* include the recent solution
task changes. Basically I just wanted to have a release up there that
builds and runs and then we can kill the 0.83 branch and move onto 0.84.
Please have  a bash a it  and barring any major issues we should be able

to make it the final 0.83.

Apologies for the delay getting this out.

Ian





---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


  1   2   3   >