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

2005-06-03 Thread Matthew Mastracci
What does everyone think of adding native NAnt pre- and post-build 
events to the solution 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:


solution configuration=release
projects
include name=A\A.csproj /
include name=B\b.vbproj /
include name=C\c.csproj /
/projects
referenceprojects
include name=X\x.csproj /
/referenceprojects
beforeprojectbuild
echoAbout to build project ${projectpath}/echo
/beforeprojectbuild
afterprojectbuild
echoBuilt project ${projectpath}!/echo
/afterprojectbuild
/solution

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


solution configuration=release
projects
include name=A\A.csproj /
include name=B\b.vbproj /
include name=C\c.csproj /
/projects
referenceprojects
include name=X\x.csproj /
/referenceprojects
beforeprojectbuild
echoAbout to build project ${solution::expand('ProjectPath')}/echo
/beforeprojectbuild
afterprojectbuild
echoBuilt project ${solution::expand('ProjectPath')}!/echo
/afterprojectbuild
/solution

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: 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=5588alloc_id=12065op=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_idU88alloc_id065op=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_idU88alloc_id065op=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 
solution-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: 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.
   solution configuration=Debug
solutionfile=${nant.project.basedir}\framework\FrameworkBuild.sln/
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
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=5588alloc_id=12065op=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.

   solution configuration=Debug
solutionfile=${nant.project.basedir}\framework\FrameworkBuild.sln/
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
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=5588alloc_id=12065op=click
___
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: solution task GacCache / AppDomain construction (was : Re: Re: Re: [nant-dev] Bugs)

2004-09-04 Thread Matthew Mastracci
 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===
  ?xml version=1.0?
   project name=idg default=build basedir=.
 
   property name=solution  value=test.sln/
   property name=config.debug value=DEBUG/
  property name=config.release value=RELEASE/
   property name=output.debug   value=OutPut\Debug /
  property name=output.release value=Output\Release /
 
  target name=clean
  delete dir=${output.debug} verbose=true failonerror=false /
  delete dir=${output.release} verbose=true failonerror=false /
  /target
 
   target name=build
  solution solutionfile=${solution} outputdir=${output.debug}
  configuration=${config.debug}/
   /target
  /project
 
  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=5047alloc_id=10808op=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=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: solution 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: solution 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
  solution 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=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[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 
individual(s) named.  If you are not the named addressee you should not disseminate, 
distribute or copy this e-mail. Please immediately delete it and all copies of it from 
your system, destroy any hard copies of it, and notify the sender. E-mail transmission 
cannot be guaranteed

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?

fileset basedir="C:\extra-build"
 includes name="C:\cvs\nant\**\*.cs" /
 includes name="*.cs" /
/fileset

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






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?
  
fileset basedir="C:\extra-build"
 includes name="C:\cvs\nant\**\*.cs" /
 includes name="*.cs" /
/fileset
  
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-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 readregistry. 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] 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 solution task based build.  I haven't tried a 
csc-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-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 ^rootpath.*/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 fileset 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] 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


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
resgen 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 resgen 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 resgen 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 solution 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] 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 
 task name=license
 attribute name=exenamelc/attribute
+ attribute
   

name=supportsassemblyreferencestrue/attribute
 

 /task
 task name=ilasm

---
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



[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 solution 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
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 
 task name=license
 attribute name=exenamelc/attribute
+ attribute
  
name=supportsassemblyreferencestrue/attribute
 

 /task
 task name=ilasm

---
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] 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 solution 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] 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 fileset 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


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 solution 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 fileset 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] 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 fileset 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


[nant-dev] wix 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=1470alloc_id=3638op=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 solution 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=1470alloc_id=3638op=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 solution 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=1470alloc_id=3638op=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=1470alloc_id=3638op=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=1470alloc_id=3638op=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:

Reference
Name = C1.Win.C1FlexGrid
AssemblyName = C1.Win.C1FlexGrid
HintPath = ..\supportDlls\C1.Win.C1FlexGrid.dll
/
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 Reference 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=1470alloc_id=3638op=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=1470alloc_id=3638op=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=1470alloc_id=3638op=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=1470alloc_id=3638op=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 call/. The depends/
task is just a dynamic form of the target/ task's depends attribute..., in
all other respect their ultimate functionality would be identical.  The
depends/ 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 depends/ 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=1470alloc_id=3638op=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=1470alloc_id=3638op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: Remove support for WebDAV from solution 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 webmap 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 solution 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.
 
  /// summary
  /// Allow the task to use WebDAV for retrieving/compiling the
 projects within solution.  Use of
  /// see cref=WebMap / is preferred over WebDAV.  The
 default is see langword=false /.
  /// /summary
  /// remarks
  /// paraWebDAV 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./para
  /// paraConsult your web server or the NAnt Wiki
 documentation for more information./para
  /// /remarks
  [TaskAttribute(enablewebdav, Required = false)]
  [BooleanValidator()]
  public bool EnableWebDAV {
  get { return _enableWebDAV; }
  set { _enableWebDAV = value; }
  }
 
 
 Jaroslaw Kowalski wrote:
 
  Perhaps we could have a webdav-copy task instead that would be similar
 to
  copy but accept WebDAV sources/targets.
 
  +1 for the idea of removing WebDAV from the solution 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 solution 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 solution 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
 solution task ?
 
 We've noticed that lots of people have problems configuring
 their webserver,
 in order to get the solution 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=1470alloc_id=3638op=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_id70alloc_id638opk
 ___
 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:

   target
 name=process
 description=Builds recursively all subprojects
 foreach
   item=Folder
   property=foldername
   in
 items
   includes name=*/
   excludes name=CVS/
 /items
   /in
   do
 nant
   buildfile=${foldername}/default.build
   target=${project.config} ${operation}/
   /do
 /foreach
   /target
The master just needs to set the operation property before calling. 
I'm not certain these wildcard targets are necessary in this case.

property name=operation value=build /
nant buildfile=gateway.build target=process /
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:
project
  name=myProject
  default=build
  target name=build
echo message=This is the build target./
  /target
  target name=*
echo message=This is the ${target::get-current-target()} target./
  /target
/project
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:
?xml version=1.0?

project
  name=myProject
  default=build
 target
name=build
description=Builds the current configuration
nant
  buildfile=src/default.build
  target=${target::get-current-target()}/
  /target
  target
name=test
description=Tests the current configuration
nant
  buildfile=src/default.build
  target=${target::get-current-target()}/
  /target
  target
name=clean
description=Deletes the current configuration
nant
  buildfile=src/default.build
  target=${target::get-current-target()}/
  /target
/project

... and the gateway build file (/myProject/src/default.build)
like this:
?xml version=1.0?

project
  name=myProject
  default=*
  target
name=*
description=Builds recursively all subprojects
foreach
  item=Folder
  property=foldername
  in
items
  includes name=*/
  excludes name=CVS/
/items
  /in
  do
nant
  buildfile=${foldername}/default.build
  target=${project.config} ${target::get-current-target()}/
  /do
/foreach
  /target
/project

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=1356alloc_id=3438op=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=1356alloc_id=3438op=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 mailto:[EMAIL PROTECTED]
*To:* '[EMAIL PROTECTED]'
mailto:'[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=1356alloc_id=3438op=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 touch 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=1356alloc_id=3438op=click
___
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 solution 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: 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:
 xml id=x1
  book
   author
nameJohn/name
surnameSmith/surname
   /author
   titleJohn Smith's life/title
  /book
 /xml
target name=test
  xmlpeek refid=x1 xpath=book/author/name property=authorname/
  echo message=${authorname}/
/target
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:
exec program=${csprojconv.dir}\Gordic.Develop.CsprojConverter.exe
commandline=${foldername}\${folder}.csproj ${version} result=res1 /
xmlpeek refid=res1 xpath=output/resultcode property=resultcode/
if test=${resultcode2}
fail message=serious CsprojConverter error/
/if
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=1278alloc_id=3371op=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:
 
solution configuration=Release outputdir=${output.dir} 
includevsfolders=false showcommands=true
   projects
includes name=${build.dir}/**/*.csproj/
   /projects
   assemblyfolders
includes name=${output.dir}/
includes name=${nunit.dir}/
includes name=${references.dir}/
   /assemblyfolders
   compilerargs
arg value=/codepage:1250/
   /compilerargs
/solution
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=1278alloc_id=3371op=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=1278alloc_id=3371op=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 xmlpeek/xmlpoke/xmlforeach 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:

xml id=x1
 book
  author
   nameJohn/name
   surnameSmith/surname
  /author
  titleJohn Smith's life/title
 /book
/xml
target name=test
 xmlpeek refid=x1 xpath=book/author/name property=authorname/
 echo message=${authorname}/
/target
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:
   exec program=${csprojconv.dir}\Gordic.Develop.CsprojConverter.exe
commandline=${foldername}\${folder}.csproj ${version} result=res1 /
   xmlpeek refid=res1 xpath=output/resultcode
property=resultcode/

   if test=${resultcode2}
   fail message=serious CsprojConverter error/
   /if
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=1278alloc_id=3371op=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=1278alloc_id=3371op=click
___
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 
xmlpeek/xmlpoke tasks outside of the solution task itself?

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

solution ...
  projects ... /projects
  projecthandlers
	projecthandler execute=before match=**/*.csproj property=input.file
		xmlpoke file=${input.file} 
xpath=VisualStudioProject/CSHARP/Build/Settings/@DelaySign value=True /
	/projecthandler
  /projecthandlers
/solution

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
solution task.
It was something like:
solution configuration=Release outputdir=${output.dir}
includevsfolders=false showcommands=true
projects
 includes name=${build.dir}/**/*.csproj/
/projects
override project=*.csproj
param name=VisualStudioProject/CSHARP/Build/Settings/@DelaySign
value=True /
 override file=File1.cs
param name=@BuildAction value=Compile /
/override
/override
override project=**/Project1/*.csproj
compiler-args/codepage:1250/compiler-args
/override
/solution
Each override would be processed after the project is loaded into memory
and it matches the project attribute. The algorithm would be:
1. For each param, 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 compiler-args mentioned above.
Applications:

1. To override some flag in all C# projects, you use: override
project=**/*.csproj /
2. To override some flag in all VB projects, you use: override
project=**/*.vbproj /
3. To override some flag in all VB projects, you use: override
project=**/*.vcproj /
4. To exclude some file from compilation, use:
 override file=File1.cs
param name=@BuildAction value=Content /
/override
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:
solution configuration=Release outputdir=${output.dir}
includevsfolders=false showcommands=true
  projects
   includes name=${build.dir}/**/*.csproj/
  /projects
  assemblyfolders
   includes name=${output.dir}/
   includes name=${nunit.dir}/
   includes name=${references.dir}/
  /assemblyfolders
  compilerargs
   arg value=/codepage:1250/
  /compilerargs
/solution
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=1278alloc_id=3371op=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=1278alloc_id=3371op=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

[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 nunit2 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=1278alloc_id=3371op=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=1278alloc_id=3371op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Re: Adding XML support to foreach 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!

xmlforeach id=configxml ...
!-- skipping stuff --
do
xmlpoke id=configxml xpath=@someattribute value=foo /
/do
/xmlforeach
The foreach / 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.

fileforeach /
textforeach /
regexforeach /
etc...

xmlforeach file= xpath=
xmlselect propertyname= xpath=@attribute
xmlselect propertyname= xpath=node
xmlselect propertyname= xpath=text()
xmlselect propertyname= xpath=child/@attribute
do
...
/do
/xmlforeach
It would be really cool if we make this work so that you could use the
xmlpeek/ 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.
;)

foreach / 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 foreach or new task



I'm looking at adding XML iteration support for either the foreach
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.  foreach is the easiest place to add it,
but it's not really a clean solution.
A better way would be to model a new xmlforeach task on the existing
xmlpeek/xmlpoke tasks like so:
xmlforeach file=foo.xml xpath=/configuration/blahelement
property name=someattribute value=@attribute /
property name=someinnertext value=text() /
do
echo${someattribute}, ${someinnertext}/echo
/do
/xmlforeach
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=1278alloc_id=3371op=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=1278alloc_id=3371op=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=1278alloc_id=3371op=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 includesList 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=1278alloc_id=3371op=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 includeList element of the fileset
2.  The file loaded by foreach mode=line
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=1278alloc_id=3371op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Re: project references problems in solution 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-04 Thread Matthew Mastracci
That would be cool.  It would be nice to move the reference code into a 
common place (the csc and vbc 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


[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 csc and vbc 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


Re: [nant-dev] Re: project references problems in solution 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: 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 delay-sign 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.
  delay-sign 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


[nant-dev] Re: building nightbuilds

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

!-- Select the currently executing framework --
framework type=current /
!-- Would these be useful at all? --
framework type=latest /
framework type=earliest /
!-- Selects (in order of preference) .NET 1.1, .NET 1.0, Mono or if 
none found, the current framework --
framework type=net-1.1,net-1.0,mono,current /

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: 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] target run[after|before]=.../

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:

target name=debug runbefore=build,test,deploy /
target name=release runbefore=build,test,deploy /
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:

target name=modulea-config1 provides=modulea /
target name=modulea-config2 provides=modulea /
target name=deploy-modulea-generic depends=modulea /

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: echo 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] 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 solution 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] 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


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] solution task speedups

2003-10-29 Thread Matthew Mastracci
I pointed nprof at NAnt to see if I could get the solution 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 solution 
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


[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


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
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.2view=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] RE: RE: [Fwd: Ready to tackle next release]

2003-10-03 Thread Matthew Mastracci
 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: [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 solution
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:

nant buildfile=somefile inheritall=false target=sometarget
defines
   property name=buildtarget value=${script.build.target} /
   property name=copytarget value=${script.copy.target} /
/defines
/nant
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 the Form class

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: 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:

(?/name   /) 	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')|.
(?/name1-name2/ ) 	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 = div class=\QuotasGauge\ style=\WIDTH: +
WIDTH_GAUGE.ToString() + px;\;
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 first manner is put forward

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
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):

compilerargs compiler=C#
  arg value=/codepage:1250/
/compilerargs
compilerargs compiler=VB
  arg value=/defaultnamespace:blah/
/compilerargs
Or this:

compilerargs
  arg compiler=C# value=/codepage:1250/
  arg compiler=VB value=/defaultnamespace:blah/
/compilerargs
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 :)

solution configuration=Release outputdir=${output.dir}
includevsfolders=false
  projects
  includes name=${build.dir}/**/*.csproj/
  /projects
  assemblyfolders
 includes name=${output.dir}/
 includes name=${nunit.dir}/
  /assemblyfolders
  compilerargs
 arg value=/codepage:1250/
  /compilerargs
/solution
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

solution ...
   projects ...
   ...
   /project
   compilerarguments | compilerargs
   arg value=. /
   arg value= /
   /compilerarguments | /compilerargs
/solution
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:
 solution configuration=Release outputdir=${output.dir}
includevsfolders=false
projects
   includes name=${build.dir}/**/*.csproj/
/projects
assemblyfolders
   includes name=${output.dir}/
   includes name=${nunit.dir}/
/assemblyfolders
arg value=/codepage:1250/
 /solution
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] 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 solution 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 solution 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 :)

solution configuration=Release outputdir=${output.dir}
includevsfolders=false
  projects
  includes name=${build.dir}/**/*.csproj/
  /projects
  assemblyfolders
 includes name=${output.dir}/
 includes name=${nunit.dir}/
  /assemblyfolders
  compilerargs
 arg value=/codepage:1250/
  /compilerargs
/solution
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)
 

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 mailto:[EMAIL PROTECTED]
*To:* Martin Aliger mailto:[EMAIL PROTECTED] ; ! nant
mailto:[EMAIL PROTECTED]
*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 policyMachine 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:

fileset
 ...
/fileset

frameworkfileset
 ...
/frameworkfileset

?

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] solution task question

2003-09-02 Thread Matthew Mastracci
The solution task is busted in this regard.  VS.NET will open each of
the assemblies and determine the other assemblies that are referenced by
it.  This is one of the reasons that you end up with VS.NET locking
certain output assemblies!  :) 

This would require code to open each of the assemblies (which, of
course, will lock the files on disk until the AppDomain terminates) and
scan for their assembly dependencies.  Please note that using
Assembly.Load(byte[]) is not an acceptable alternative.  Not only do
some assemblies lock up when loaded this way, but it can also leak
unmanaged memory in certain cases!  Shadow copy directories might work,
but I haven't investigated how NAnt has been handling these.

Because of the lame .NET locking rules, the solution task assumes that
each of the files in the output directory were placed there because they
were referenced by the actual output file.  

Matt.

On Tue, 2003-09-02 at 06:28, Eddie Tse wrote:
 I noticed this today as well with the solution task and it is not the same
 behaviour using VS.NET.  For me, unreferenced assemblies do not get copied
 by VS.NET to the output directory.  It only copies assemblies that are
 referenced directly in your project file or indirectly by a referenced
 assembly which it can find via the reference path.
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Tom
 Cabanski
 Sent: Tuesday, 2 September 2003 10:21 PM
 To: Martin Aliger; [EMAIL PROTECTED]
 Subject: RE: [nant-dev] solution task question
 
 That's correct behavior that also happens when compiling from VS.NET;
 referenced DLLs get copied to the executable folder.  You can change this
 behavior from VS.NET if you go to the properties of the reference and set
 copy local to false.  Unless you are putting probing directives into your
 configuration file, your DLLs either need to be in the same folder as your
 executable or they have to be strongly named and placed in the GAC.
 
 I assume this is all correctly in the solution task since we use it
 extensively in a large project with some GAC dlls, some project dlls and
 some copy local dlls referenced directly.
 
 -
 TFC
 
 
 
 
 
 ---
 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] last suggestion - Solution task again

2003-08-30 Thread Matthew Mastracci
The fileset would work fine.  It can handle directories as well as
individual files.  You'll just need to use the correct method when you
get the items from the FileSet.  As well, it can handle the nifty
wildcarding that gives NAnt its real power.  :)

On Sat, 2003-08-30 at 05:52, Martin Aliger wrote:
  Good find.  I like your assembly-folders idea.  Unfortunately, I'm quite
  busy at work and don't have any time for solution task development.
  It should be pretty straight-forward to implement if someone has an hour
  or so to space.
 
 I could code it - no problem. Does others see any other ideas?
 
 Also I'm not quite sure about naming. is assembly-folders proper name for
 that tag? And how to internally implement it? As list of paths? Fileset is
 not appropriate here. Maybe I could handle it simmilary as arg in csc?
 (only list tag I'm aware of)
 
 Martin
 
 
  Martin Aliger wrote:
 
  I did some exploration in this field and found this:
  
  Visual Studio use HintPath to find reference assemblies. If not found it
  uses all paths listed under registry key
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders
  
  Maybe we should implement similar mechanism? Use HintPath first and then
  some path list which could defaults to this regisry read. And be
 overrided
  (extended?) by e.g.
   solution _verbose=true configuration=Release
  output=${build.dir}
  projects
 includes name=**/*.csproj/
  /projects
  assembly-folders
  includes name=c:\temp\build\dll/
  /assembly-folders
   /solution
  
  Martin
-- 
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] last suggestion - Solution task again

2003-08-29 Thread Matthew Mastracci
Good find.  I like your assembly-folders idea.  Unfortunately, I'm quite 
busy at work and don't have any time for solution task development.  
It should be pretty straight-forward to implement if someone has an hour 
or so to space.

Martin Aliger wrote:

I did some exploration in this field and found this:

Visual Studio use HintPath to find reference assemblies. If not found it
uses all paths listed under registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders
Maybe we should implement similar mechanism? Use HintPath first and then
some path list which could defaults to this regisry read. And be overrided
(extended?) by e.g.
solution _verbose=true configuration=Release
output=${build.dir}
   projects
  includes name=**/*.csproj/
   /projects
   assembly-folders
   includes name=c:\temp\build\dll/
   /assembly-folders
/solution
Martin

 

I think I understand.  Each developer has a bunch of reference
directories that are set up in VS.NET, right?  You're right - we would
likely need to add a references tag to the solution task to handle
this situation.
Matt.

Martin Aliger wrote:

   

Odd...  We simply check in .csproj files and leave .csproj.user files on
each machine individually.  We haven't had any issues with this.
Are you perhaps talking about 3rd party references?  Or GAC references?

   

no - normal references to assemblies. Unfortunattely we do not use CVS or
similar system and every developer has another directory tree. A lot of
 

us
 

do not have sources from all assemblies and references pre-built .dlls.
 

This
 

result is scheme, where one developer writes assembly Gordic.General
 

and
 

another one Gordic.Win32 which is dependant on General
  Reference
  Name = Gordic.General
  AssemblyName = Gordic.General
  HintPath = ..\dll\Gordic.General.dll
  /
But on build server no path ..\dll exists and nant failed with
 BUILD FAILED
 Couldn't find referenced assembly
'C:\temp\src\dll\Gordic.General.dll'.
This is logical but imposible to solve right now. Maybe solution is to
create some attribute to Solution task to override references path? (like
outputdir)
What is your ideas?

Thanks,
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
 





---
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] last suggestion - Solution task again

2003-08-27 Thread Matthew Mastracci
I think I understand.  Each developer has a bunch of reference 
directories that are set up in VS.NET, right?  You're right - we would 
likely need to add a references tag to the solution task to handle 
this situation. 

Matt.

Martin Aliger wrote:

Odd...  We simply check in .csproj files and leave .csproj.user files on
each machine individually.  We haven't had any issues with this.
Are you perhaps talking about 3rd party references?  Or GAC references?
   

no - normal references to assemblies. Unfortunattely we do not use CVS or
similar system and every developer has another directory tree. A lot of us
do not have sources from all assemblies and references pre-built .dlls. This
result is scheme, where one developer writes assembly Gordic.General and
another one Gordic.Win32 which is dependant on General
   Reference
   Name = Gordic.General
   AssemblyName = Gordic.General
   HintPath = ..\dll\Gordic.General.dll
   /
But on build server no path ..\dll exists and nant failed with
  BUILD FAILED
  Couldn't find referenced assembly
'C:\temp\src\dll\Gordic.General.dll'.
This is logical but imposible to solve right now. Maybe solution is to
create some attribute to Solution task to override references path? (like
outputdir)
What is your ideas?

Thanks,
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] last suggestion - Solution task again

2003-08-26 Thread Matthew Mastracci
Odd...  We simply check in .csproj files and leave .csproj.user files on
each machine individually.  We haven't had any issues with this.

Are you perhaps talking about 3rd party references?  Or GAC references?

I believe that even MSFT recommends copying files to a directory
statically-relative to your project directory.  So far we haven't found
any 3rd-party library that can't handle having its files checked into
CVS.  We always reference the 3rd party components from that CVS
directory and they work.  Some of them require themselves to be
installed on the machine as well (for license keys, etc.), but they can
still be referenced from the CVS directories.

On Mon, 2003-08-25 at 19:36, Brant Carter wrote:
 We solved this problem by creating a tool to update the .user files for 
 each developer.  It scans the directory tree and then creates a .user file 
 for each .proj file with the correct reference path for that workstation.
 
 brant
 ...
 
 
 
 From: Martin Aliger [EMAIL PROTECTED]
 To: Matthew Mastracci [EMAIL PROTECTED]
 CC: ! nant [EMAIL PROTECTED]
 Subject: Re: [nant-dev] last suggestion - Solution task again
 Date: Mon, 25 Aug 2003 10:52:59 +0200
 
   I'd recommend against comparing only filenames.  This will likely end up
   causing trouble down the line.  VS.NET is certainly a mess when it comes
   to hint paths, but I've found that they are generally accurate.  I don't
   even think it uses them half of the time.  :)
  
   Can you describe your situation with more detail (perhaps some examples)
   so I can see what is happening?.
 
 Sure. This is case, when more developers make some projects and upload them
 into build server. Than it should compile all that projects from several
 developers. Of course, every developer have another path in their .csproj
 files and that do not exists on server.
 
 Similar think could happen when you copy project around machines or even
 move to another disk. I think this is important to solve maybe with help of
 some attributes. There must be some way from this mess :-)
 
 Thanks!
 Martin
 
 
   Last one - and I'm not sure there.
   
   There are problems with references between projects when projects have
 different output paths. Project references are ok, but external refenreces
 sometimes brokes. Currently nant compares files as full pathnames using 
 path
 from HintPath attribute. I suggest to compare filenames as names only
 without path. Could this be a problem? It works for me, but... Btw: Visual
 studio is real mess in this. Hope nant could be better! :)
   
   I send patch I made, but consider this as suggestion, not real patch
   
 
 
 
 
 ---
 This SF.net email is sponsored by: VM Ware
 With VMware you can run multiple operating systems on a single machine.
 WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
 at the same time. Free trial click 
 here:http://www.vmware.com/wl/offer/358/0
 ___
 nant-developers mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/nant-developers
 
 _
 Protect your PC - get McAfee.com VirusScan Online  
 http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
-- 
Matthew Mastracci [EMAIL PROTECTED]



---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] solution task fixes

2003-08-22 Thread Matthew Mastracci
Eddie - ignoring non-csproj and non-vbproj files looks good.  We 
shouldn't do this without at least warning the user that we are ignoring 
their projects, however.  Can you add a log message to this test?

Eddie Tse wrote:

Hi All,

I've been experimenting with the solution task from CVS and had made a few
changes in order to make it work for me.
Added the NoWarn option from VS.NET 2003
I have SQL projects as well as deployment projects in my solution, so
ignored those.
And the webmapcollection was using the path instead of the url to retrieve
the webmap object.


Index: ConfigurationSettings.cs
===
RCS file: /cvsroot/nant/nant/src/NAnt.VSNet/ConfigurationSettings.cs,v
retrieving revision 1.5
diff -u -r1.5 ConfigurationSettings.cs
--- ConfigurationSettings.cs	17 Aug 2003 08:46:53 -	1.5
+++ ConfigurationSettings.cs	21 Aug 2003 13:54:48 -
@@ -70,6 +70,7 @@

if (projectSettings.Type == ProjectType.CSharp) {
htStringSettings[WarningLevel] = /warn:{0};
+htStringSettings[NoWarn] = /nowarn:{0};
htBooleanSettings[IncrementalBuild] = /incremental;
}

Index: Solution.cs
===
RCS file: /cvsroot/nant/nant/src/NAnt.VSNet/Solution.cs,v
retrieving revision 1.8
diff -u -r1.8 Solution.cs
--- Solution.cs 17 Aug 2003 08:46:53 -  1.8
+++ Solution.cs 21 Aug 2003 13:54:52 -
@@ -61,6 +61,11 @@
string guid = m.Groups[guid].Value;
string fullPath;
+// only supports vb and cs projects
+if (!project.ToLower().EndsWith(.csproj) 
!project.ToLower().EndsWith(.vbproj)) {
+continue;
+}
+
try {
// translate URLs to physical paths if using a webmap
WebMap map = _webMaps[project];
Index: Types/WebMapCollection.cs
===
RCS file: /cvsroot/nant/nant/src/NAnt.VSNet/Types/WebMapCollection.cs,v
retrieving revision 1.1
diff -u -r1.1 WebMapCollection.cs
--- Types/WebMapCollection.cs   17 Aug 2003 08:37:51 -  1.1
+++ Types/WebMapCollection.cs   21 Aug 2003 13:54:53 -
@@ -75,7 +75,7 @@
if (value != null) {
// Try to locate instance using Value
foreach (WebMap WebMap in base.List) {
-if (value.Equals(WebMap.Path)) {
+if (value.Equals(WebMap.Url)) {
return WebMap;
}
}
---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] last suggestion - Solution task again

2003-08-22 Thread Matthew Mastracci
I'd recommend against comparing only filenames.  This will likely end up 
causing trouble down the line.  VS.NET is certainly a mess when it comes 
to hint paths, but I've found that they are generally accurate.  I don't 
even think it uses them half of the time.  :) 

Can you describe your situation with more detail (perhaps some examples) 
so I can see what is happening?. 

Martin Aliger wrote:

Last one - and I'm not sure there.

There are problems with references between projects when projects have different output paths. Project references are ok, but external refenreces sometimes brokes. Currently nant compares files as full pathnames using path from HintPath attribute. I suggest to compare filenames as names only without path. Could this be a problem? It works for me, but... Btw: Visual studio is real mess in this. Hope nant could be better! :)

I send patch I made, but consider this as suggestion, not real patch

Thanks!
Martin
-- Created by Email.cz  http://www.email.cz -- Get Your Free Email  



-- Created by Email.cz  http://www.email.cz -- Get Your Free Email  

 



--- E:\src\nant\distrib\NAnt.VSNet\Solution.cs  Fri Jul 25 10:07:28 2003
+++ E:\src\nant\src\NAnt.VSNet\Solution.cs  Tue Aug 19 18:41:12 2003
@@ -181,11 +180,11 @@
foreach ( DictionaryEntry de in _htProjects ) {
string strGUID = ( string )de.Key;
Project p = ( Project )de.Value;
-
+/* ??without path??
foreach ( string strConfiguration in p.Configurations ) {
-//Console.WriteLine( {0} [{1}] - {2}, p.Name, 
strConfiguration, p.GetConfigurationSettings( strConfiguration ).FullOutputFile.ToLower() );
-_htOutputFiles[ p.GetConfigurationSettings( strConfiguration 
).FullOutputFile.ToLower() ] = strGUID;
-}
+_htOutputFiles[ GetConfigurationSettings( strConfiguration 
).FullOutputFile .ToLower() ] = strGUID;
+} */
+_htOutputFiles[ p.ProjectSettings.OutputFile.ToLower() ] = 
strGUID;
}
// Then build the dependency list
@@ -196,8 +195,12 @@
foreach ( Reference r in p.References ) {
if ( r.IsProjectReference )
AddProjectDependency( strGUID, r.ProjectReferenceGUID );
-else if ( _htOutputFiles.Contains( r.Filename.ToLower() ) )
-AddProjectDependency( strGUID, ( string )_htOutputFiles[ 
r.Filename.ToLower() ] );
+else
+   {
+   string refName = Path.GetFileName(r.Filename).ToLower(); 
/* ??without path?? r.Filename.ToLower()*/
+   if ( _htOutputFiles.Contains( refName ) )
+   AddProjectDependency( strGUID, ( string )_htOutputFiles[ 
refName ] );
+   }
}
}
}
@@ -231,24 +234,29 @@
if ( !bFailed ) {
// Fixup references
-//Console.WriteLine( Fixing up references... );
+//_nanttask.Log(Level.Info, _nanttask.LogPrefix + Fixing up references... );
foreach ( Reference r in p.References ) {
-//Console.WriteLine( Original: {0}, r.Filename );
if ( r.IsProjectReference ) {
+   // Console.WriteLine( Original: project {0} {1}, r.Filename,r.ProjectReferenceGUID );
Project pRef = ( Project )_htProjects[ r.ProjectReferenceGUID ];
if ( pRef == null )
throw new Exception( Unable to locate referenced project while loading  + p.Name );
if ( pRef.GetConfigurationSettings( strConfiguration ) == null )
-throw new Exception( Unable to find appropriate configuration for project reference );
+throw new Exception( String.Format( Unable to find appropriate configuration ({0}) for project reference {1}, strConfiguration,  GetProjectFileFromGUID(pRef.GUID) ));
if ( pRef != null )
r.Filename = pRef.GetConfigurationSettings( strConfiguration ).FullOutputFile.ToLower();
} 
-else if ( _htOutputFiles.Contains( r.Filename.ToLower() ) ) {
-Project pRef = ( Project )_htProjects[ ( string )_htOutputFiles[ r.Filename.ToLower() ] ];
-if ( pRef != null  pRef.GetConfigurationSettings( strConfiguration ) != null )
-r.Filename = 

Re: [nant-dev] Avoid using WebDAV with solution task

2003-08-02 Thread Matthew Mastracci
Understandable...  I'm fairly certain that the webmap will allow you to
map relative URLs easily.

BTW, as an alternative that we use, have you tried converting your Web
projects to Local projects?  I've discovered that by changing the
Web string to Local within your web .csproj, you can reference it as
a normal project, without worrying about any of the web mapping items. 
Debugging works as expected, with the manual step of changing the debug
application to URL and pointing it at your local share.  Note that
these debug settings are stored locally in the .suo file!

On Sat, 2003-08-02 at 09:20, J. Jason De Lorme wrote:
 Yes, it would be helpful, but it must be able to map a *relative* path.
 When sycning from a source control system users will have their own client
 directory.  We use P4 and all of our cilentspecs are setup (but *could* be
 different per user) as:
 
 d:\p4\projects.user\branchname\...
 
 The .build file is checked in at the branch level and we can't have it
 modified per user, especially with the automated build server sync'ing to:
 
 d:\p4\projects.builduser\branch...\...
 
 I searched the mail-archive and found your reference to this new code, but
 when I looked in CVS I couldn't find the WebMap.cs/WebMapAttribute.cs files.
 Where could I find these? And when is the next release candidate do out that
 would include these? If the relative path piece were included, it would be
 great.
 
 Thank you!
 - Jason
 
 - Original Message - 
 From: Matthew Mastracci [EMAIL PROTECTED]
 To: J. Jason De Lorme [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Sent: Saturday, August 02, 2003 1:05 AM
 Subject: Re: [nant-dev] Avoid using WebDAV with solution task
 
 
  Just a note- there was recently a submission that added a webmap
  URL-filesystem mapping for the solution task.  This allows the
  solution task to handle URL mappings by doing a simple URL pattern
  lookup.  Would this handle your situation?
 
  On Fri, 2003-08-01 at 15:00, J. Jason De Lorme wrote:
   On the list of the many annoying nuances of Visual Studio is how it adds
 web
   projects to the .sln file.  For instance if I were to create a project
 of
   type 'ASP.Net Web Application'; VS.net (2002/2003) will add among other
   things this entry to the solution file (MyApp.sln):
   Project({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}) = Web,
   http://localhost/Web.csproj;, {61E62FEB-04CA-4AB7-B833-930F18E9A6FE}
  
   The problem here is that when you go to build this project using the
   solution task, the only way NAnt can find the files is through the
 fully
   quallified Url reference and as such uses the WebDAV protocol to pull
 each
   project file down through HTTP.  This poses a problem to most developers
 who
   run Windows 2003 or even Win2k as WebDAV is generally closed up for
 security
   reasons.  Additionally if it is grabbing these files through IIS with
 the
   .Net Framework installed, most of the files such as *.cs have the
   HttpForbiddenHandler associated in the machine.config file preventing
 them
   from being downloaded.
  
   The quick work-around is to update your sln by hand in a text editor,
   changing the UniqueName portion of the entry to have a relative path,
   i.e.:
   Project({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}) = Web,
 Web\Web.csproj,
   {61E62FEB-04CA-4AB7-B833-930F18E9A6FE}
  
   Visual Studio is happy with this arrangement until such time as you need
 to
   modify the VS.Net Solution.  If you only work with in the projects in
 the
   solution (add/remove/update), it's not updated.  But if you add a New
   Project, or update anything at the Solution level, VS will update the
 .sln
   and *correct* this back to the web reference.
  
   I've extended the SolutionTask class to add an attribute:
  
   [TaskAttribute(updatewebreferences, Required=false)]
  
   ...and created a new class that will take the current solution file and
   update any projects with a UniqueName that are referenced through
 http(s) to
   be a relative path.  So your solution task will look like this:
  
target name=build
 solution
  configuration=${config}
  solutionfile=MyApp.sln
  verbose=${verbose}
  updatewebreferences=true
  /
  
/target
  
  
   In doing this, it will first take the name of the project file, append a
   .webinfo - navigate through all subdirectories of the
 Project.BaseDirectory,
   open all matching .webinfo's and check to see if they contain that
   UniqueName in the UrlPath attribute.  This will indicate the correct
   location of the .xxproj file.  We take that location in relative terms
 and
   update the sln.
  
   *QUESTION* I've followed the code guidelines on the site, but how do I
   actually get this code into SourceForge as an alpha / beta for people to
   ridicule, rip-apart, poke holes and flame me on ;-)? I wouldn't want it
 in
   the actual NAnt bits until many people had used in environments
 different
   than my own.
  
   I did some searching

Re: [nant-dev] [0.8.3] RC2 build failure

2003-07-28 Thread Matthew Mastracci
Doh!  I did do a merge from HEAD to 0.8.3.  That would explain why it
was busted...   I can revert it tomorrow, unless someone has a chance
tonite.

On Mon, 2003-07-28 at 00:03, Gert Driesen wrote:
 I did make some changes to the build process on the main branch in order to
 better support third party libraries (for multiple framework versions).
 
 Apparently you've committed the NAnt.VSNet.build from the main branch to the
 0.8.3 branch.

 Gert
 
 - Original Message - 
 From: Matthew Mastracci [EMAIL PROTECTED]
 To: John Barstow [EMAIL PROTECTED]
 Cc: Nant-Developers (E-mail) [EMAIL PROTECTED]
 Sent: Monday, July 28, 2003 7:47 AM
 Subject: Re: [nant-dev] [0.8.3] RC2 build failure
 
 
  I actually hadn't touched that file.  I was getting that error when I
  was trying to build and assumed that I had just caught someone
  mid-checkin.  I haven't checked the CVS log to see what changes have
  been happening to the build process, however.
 
  On Sun, 2003-07-27 at 20:28, John Barstow wrote:
   I'm doing the build of RC2 with the 1.0 Framework and getting the
 following
   build failure.  I assume it's related to the check-ins for the
 solution
   fixes.  This is on BRANCH-083.
  
   BUILD FAILED
   C:\source\tools\nant\src\NAnt.VSNet\NAnt.VSNet.build(11,10):
Property 'current.build.defines' has not been set!
  
   John C Barstow
  
  
  
   ---
   This SF.Net email sponsored by: Free pre-built ASP.NET sites including
   Data Reports, E-commerce, Portals, and Forums are available now.
   Download today and enter to win an XBOX or Visual Studio .NET.
  
 http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
   ___
   nant-developers mailing list
   [EMAIL PROTECTED]
   https://lists.sourceforge.net/lists/listinfo/nant-developers
  -- 
  Matthew Mastracci [EMAIL PROTECTED]
 
 
  ---
  This SF.Net email sponsored by: Free pre-built ASP.NET sites including
  Data Reports, E-commerce, Portals, and Forums are available now.
  Download today and enter to win an XBOX or Visual Studio .NET.
 
 http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
  ___
  nant-developers mailing list
  [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/nant-developers
 
 
-- 
Matthew Mastracci [EMAIL PROTECTED]


---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Solution/Project Parser

2003-07-28 Thread Matthew Mastracci
Perhaps it might be better to design an .xsd and use the automatic XML 
deserialization routines.  I've found that this way is much cleaner than 
the methods used in the current solution and slingshot tasks.

Bernard Vander Beken wrote:

Hello Yves,
 
Have you looked at the parsing logic and object model in Slingshot, a 
tool and task included in NAntContrib?
 
Although it is considered 'obsolete' and does not support Framework 
v1.1, it seems like a clean starting point.
 
Best regards,
 
Bernard

-Original Message-
*From:* Yves Reynhout [mailto:[EMAIL PROTECTED]
*Sent:* Thursday, July 24, 2003 11:35 PM
*To:* [EMAIL PROTECTED]
*Subject:* Re: [nant-dev] Solution/Project Parser
From reading the response posts I think I didn't make myself quiet
clear.
First of all what I'm suggesting is only of interest (I think) for
the VS.NET solution/project camp.  I have not found a library yet
that allows me to parse VS.NET solution (.sln) and/or project
(.csproj) files, and get an object model back from the parser. 
What is in that object model? Well, possibly everything you can
find out about a solution or project via the related files
(.sln/.csproj).  How could this affect the solution task? For
starters it wouldn't have to do the parsing of the
solution/project files itself.  Secondly, as a consequence, the
parsing code wouldn't be mingled with what the solution task
actually does.  The object model could also provide for a task
that e.g. extracts the files included in a project and updates a
nant build file's csc task, essentially a partial one-way sync
of the build file and the VS.NET solution/project. Another use
could be to build VS.NET solution/project files via the object
model (essentially letting something else be the master of
files, references, interproject dependencies, etc...), which could
maybe resolve your CVS problem - conflicts in .csproj files due to
teamdev - you[Erv Walter] mention. Allowing the object model to
save, in addition to the parsing, could provide valuable in this case.
 
So to resume, I'm talking about building a VS.NET solution/project
parser and object model (along the lines of what the VS.NET IDE
extensibility object DTE offers right now), and integrating that
with the solution task.





---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Solution/Project Parser

2003-07-24 Thread Matthew Mastracci
No problem.  I'm all for refactoring the solution task.  It's not an 
elegant solution for what it accomplishes.  My overall goal for the 
solution task is to be able to point it at either a solution or a group 
of projects and have them built in the correct order, with outputs 
identical to how VS.NET would have built them.

I'm interested to hear more of your ideas.  I'm not particularly 
attached to any part of my implementation.  :)

If you do start work on cleaning up the object model, perhaps try to 
envision how the solution task could use other NAnt tasks, rather than 
the executables directly.

I personally don't use the .sln parsing facilities of the solution 
task, but rather the fileset list of projects to reconstruct the 
solution.

Yves Reynhout wrote:

Hi,
 
I've been following (though I should admit not very actively using) 
NAnt for a while now (about 1200 nant posts in my inbox) .  
Especially, not being able to handle the VS.NET solution concept was 
something that bothered me (well, let me rephrase: not handled 
elegantly).  Ofcourse, it all depends on your focal point, meaning if 
you don't use VS.NET, you probably couldn't care less about the 
solution concept.  And then it was Matthew Mastracci I believe 
(correct me if I'm wrong) that introduced the solution task into 
NAnt.  Unfortunatly, I'm not quiet happy with its current 
implementation, because there's no clear separation between the 
solution/project as data (the content of the .sln and .*prj 
files) and the solution task itself.  The current implementation 
provides an object model for its current purpose, namely 
the solution task.  Wouldn't it be more usefull to build upon a 
common representation (read object model) of the VS.NET solutions 
and projects and re-use that representation in (for now) the solution 
task.  Maybe there are other uses for the common representation (read 
other tasks) of the VS.NET solutions/projects.  In an attempt to fill 
what I feel is a void I started work on a VS.NET Project and Solution 
Parser/Object model.  My question to the NAnt team, and probably 
Matthew Mastracci in particular, if they are interested in this parser 
(which is in no way finished).  I realize this could cause refactoring 
in the area of the solution task and since NAnt will come out with 
releases on a more regular basis, I'll let you guys be the judge of 
what I proposed.
 
To Matthew Mastracci I'd like to say: Thank you for bringing the 
'solution' task to the table..
 




---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Solution/Project Parser

2003-07-24 Thread Matthew Mastracci
I'm with you on the .sln thing.  We were getting daily conflicts on the 
.sln file, so I ended up checking it in as a binary file so that it 
wouldn't merge.  .csproj files seems to be adequate for our needs.  They 
occasionally conflict, but not enough so far to annoy us out of using 
them (yet).  

I'm also getting close to wanting to use NAnt completely within the 
build process.  The locking of files by VS.NET is getting to be such a 
pain - I had to write an add-in for VS.NET that would search all the 
open file handles for the currently-being-built assembly and close it.  
:)  It might just be easier (and faster?) to run the NAnt build each 
time instead.

Erv Walter wrote:

I'm not sure I understand your proposed change.  Can you clarify?
 
There are 2 camps (and now possibly a third).  The difference between 
the camps is personal preference, really.
 
One camp is the group of people who find dually managing build files 
and project/solution files undesirable (a completely valid point of 
view).  This group of people would want the solution task to be as 
magic as possible since the idea is that the .sln and it's referenced 
project files contain all the pieces of information needed to 
correctly build stuff.  Are you suggesting that things should be 
somehow broken out more from that end user's point of view?  Again, I 
could use some clarification on exactly what you're proposing and what 
it would make build files look like (sorry for being slow on the uptake).
 
For the record, I'm in the camp that prefers the clean, explicit 
nature of NAnt build files using csc and related tasks directly.  I 
think that the VS.NET solutions and projects are messy, poorly 
designed by Microsoft, and unmanageable in large team development 
situations.  I have daily CVS conflicts with the .csproj files I use 
to the point that we're considering removing them from CVS completely 
and making them personal tools only.  We already have removed the .sln 
files from CVS.  We have since configured VS.NET to use NAnt to build 
anyway, so the .csproj files have become little more than the holders 
of file lists and no longer the holder of build settings.
 


*From:* Yves Reynhout [mailto:[EMAIL PROTECTED]
*Sent:* Tuesday, July 22, 2003 5:02 PM
*To:* [EMAIL PROTECTED]
*Subject:* [nant-dev] Solution/Project Parser
Hi,
 
I've been following (though I should admit not very actively using) 
NAnt for a while now (about 1200 nant posts in my inbox) .  
Especially, not being able to handle the VS.NET solution concept was 
something that bothered me (well, let me rephrase: not handled 
elegantly).  Ofcourse, it all depends on your focal point, meaning if 
you don't use VS.NET, you probably couldn't care less about the 
solution concept.  And then it was Matthew Mastracci I believe 
(correct me if I'm wrong) that introduced the solution task into 
NAnt.  Unfortunatly, I'm not quiet happy with its current 
implementation, because there's no clear separation between the 
solution/project as data (the content of the .sln and .*prj 
files) and the solution task itself.  The current implementation 
provides an object model for its current purpose, namely 
the solution task.  Wouldn't it be more usefull to build upon a 
common representation (read object model) of the VS.NET solutions 
and projects and re-use that representation in (for now) the solution 
task.  Maybe there are other uses for the common representation (read 
other tasks) of the VS.NET solutions/projects.  In an attempt to fill 
what I feel is a void I started work on a VS.NET Project and Solution 
Parser/Object model.  My question to the NAnt team, and probably 
Matthew Mastracci in particular, if they are interested in this parser 
(which is in no way finished).  I realize this could cause refactoring 
in the area of the solution task and since NAnt will come out with 
releases on a more regular basis, I'll let you guys be the judge of 
what I proposed.
 
To Matthew Mastracci I'd like to say: Thank you for bringing the 
'solution' task to the table..
 




---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Solution/Project Parser

2003-07-24 Thread Matthew Mastracci
Does VS.NET save all of your files before doing a build, or do you have 
to manually save them?

Bill Conroy wrote:

My whole team does this all too.

Here is the writeup I gave out a while back to the OT list on how to do this:

Here are the steps I used to integrate[note I do not address keeping a
csproj in sync with the build file, but I could]
Do this once:

1. Add an external tool
Title: Nant (Current Project)
Command: nant -- assuming nant is in your path.
Arguments: [I have nothing here, I use the default target in VS.NET]
Init Dir: $(ProjectDir)
I check Use Output Dir. This gives you output lines which are context
sensitive for the file, line of the error/warning.
2. Add an external tool
Title: Nant (Solution)
Command: nant -- assuming nant is in your path.
Arguments: [I have nothing here, I use the default target in VS.NET]
Init Dir: $(SolutionDir)
Check Output Dir.
3. I have hooked up F7 to Nant (Current Project), and Shift-F7 to Nant
(Solution) through the Keyboard settings in Tools|Options.
For each project you want to use Nant:

1. Create a new build configuration called Nant(or whatever). 
Turn off building for all projects in this solution.

2. Switch to this Configuration.

Then you can use F7 to build. And when you want to debug none of you
projects will build since your configuration has them turned off.
I could have had some tool do a transform on my project file into a
build file. I believe there is a xsl out there to do this.
This all has worked quite nicely for me.

HTH
-bc
-- Original Message --
From: Tomas Restrepo [EMAIL PROTECTED]
Date:  Thu, 24 Jul 2003 11:31:33 -0500
 

Matthew,

   

I'm also getting close to wanting to use NAnt completely within the
build process.
 

We do this for our project. We actually went a little bit further,and we
actually have a single VS.NET solution and project that *never* get built,
it's just for intellisense and the vs.net VSS integration ;)
Every developer (the main dev team has about 8 people) builds directly with
nant everytime (one of my coworkers came up with the idea to add a custom
tool to vs.net that fires nant for the project and puts the nant output in
the vs.net output window. nifty!).
No problems with this setup, really. The project is not too bit, though,
consisting of about 20 dlls or so, and 200.000+ lines of code, with a fairly
complex build and install process (for gac and COM+ registration).
--
Tomas Restrepo
[EMAIL PROTECTED]


---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
   



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] FIXED: Major temp directory leak in solution task

2003-07-23 Thread Matthew Mastracci
Please note - if you were using the solution task, I've fixed a major 
temp directory leak.  It was leaking approx. one temp directory per 
project!  You should also clear your Local Settings\Temp directory for 
the user you use to build your solutions.

This fix should be in 0.8.3 final or next release candidate.

Matthew Mastracci wrote:

I've just realized that the temp directory leak in the solution task 
is likely slowing my build process down by an order of magnitude!  
Those who run checkin/nightly builds with this task may wish to 
consider an automated process to clear the temp directory until this 
bug can be resolved.

It's likely just a matter of calling the delete method of the temp 
file collection after the compile has finished.  I'll have to check 
this out.

Just a warning in the meantime,
Matt.


---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Building solution works in VS.NET but not when usingNAnt solution task

2003-07-22 Thread Matthew Mastracci
This is a bug.  I'm pretty sure it's fixed in CVS.  Use the lowercase 
version of your configuration (ie: release) instead of Release.

[EMAIL PROTECTED] wrote:

I have built some projects successfully and have made sure that the 
dependencies are build in order, however, when NAnt tries to compile one 
project in particular it prints out the following:

System.Exception: Unable to find appropriate configuration for project 
reference

  at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, ArrayList 
alCSC
Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
  at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()
  at NAnt.Core.Task.Execute()
  at NAnt.Core.Target.Execute()
  at NAnt.Core.Project.Execute(String targetName)
  at NAnt.Core.Tasks.CallTask.ExecuteTask()
  at NAnt.Core.Task.Execute()
  at NAnt.Core.Target.Execute()
  at NAnt.Core.Target.Execute()
  at NAnt.Core.Project.Execute(String targetName)
  at NAnt.Core.Project.Execute()
  at NAnt.Core.Project.Run()

When running in VS.NET the build works fine.  I have checked the .csproj 
file and nothing looks suspicious.  Any help or ideas would be 
appreciated.

regards,
Chris


---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Using TlbImp Without VS.NET Installed

2003-07-22 Thread Matthew Mastracci
Install the framework SDK.  This includes all of the utilities required 
to fully build a VS.NET solution, minus devenv.exe.

Aaron Jensen wrote:

Part of our .NET software requires use of a .NET wrapper around a COM
object.  As such, during a build (using the sln / taks), tlbimp.exe is
called create the wrapper.  This works fine on machines with Visual
Studio installed.  However, on our build/deployment/qa/production
servers, visual studio will NOT be installed.
My question: how can I get the tlbimp.exe to work without visual studio
.net installed?  I have tried copying over all the binaries from
\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin, but that doesn't work.
Any suggestions?

: Aaron Jensen
: [EMAIL PROTECTED]
: 800.237.6335 ext 421
: Financial Profiles
: www.profiles.com
---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NAnt INTERNAL ERROR - Solution Task, VS.NET 2003

2003-07-18 Thread Matthew Mastracci
Do you have a release configuration in your 
MobileAdministratorPlugins project?

Vitaly Livshits wrote:

Hello,
 
I am getting the following error when trying to to build my solution. 
Do you know what might be causing it?
 
The .build file is attached.
 
Thanks,
 
Vitaly Livshits
Senior Software Engineer
Corum Corporation
 

 
NAnt version 0.8.3 Copyright (C) 2001-2003 Gerry Shaw
http://nant.sourceforge.net
 
Buildfile: file:///C:/Corum Administrator/admin.build
 
build:
 
 [solution] Starting solution build.
 [solution] Building QueryBuilderSchemaAdaptor [Release]...
 [solution] Building MobileAdministratorPlugins [Release]...
Total time: 0 seconds.
 
BUILD FAILED
 
INTERNAL ERROR
 
System.Exception: Unable to find appropriate configuration for project 
reference
 
   at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, 
ArrayList alCSC
Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
   at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()
   at NAnt.Core.Task.Execute()
   at NAnt.Core.Target.Execute()
   at NAnt.Core.Project.Execute(String targetName)
   at NAnt.Core.Project.Execute()
   at NAnt.Core.Project.Run()
 
Please send bug report to [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED].
 




---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] VB projects now supported

2003-07-18 Thread Matthew Mastracci
I've also checked in support for reading resources of VB projects and 
generating the appropriate dependent resource name.  This was supposed 
to go in RC1, but I managed to check it into the wrong CVS branch.  Look 
for it in the final 0.8.3 release.

Matt.



---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


[nant-dev] Solution task fixes checked in

2003-07-18 Thread Matthew Mastracci
For those interested, some recent bugfixes checked in:

- Generate the correct filename for .resx files without dependent files 
(ie: x\foo.resx in project some.namespace - 
some.namespace.x.foo.resources)
- Convert the requested configuration to lowercase to match the rest of 
the solution building process

Matt.



---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] [RC1-Bug] solution task and VB.NET web application

2003-07-17 Thread Matthew Mastracci
Bizarre- I thought this was checked in before RC1. You might need to 
wait for the final release.

Philippe Lavoie wrote:

Im resending this with RC1 in the title so that John doesnt miss it J

Im getting the following output which I though was solved by Matthew

[solution] - 
C:\DOCUME~1\plavoie\LOCALS~1\Temp\-c5ht8zk\http___localhost_App

Web_AppWeb.vbproj\Applicant\Address.aspx.resx

Total time: 31 seconds.

BUILD FAILED

INTERNAL ERROR

System.ArgumentException: Can't parse VB files yet

at NAnt.VSNet.Tasks.Resource.GetDependentResourceName(String 
strDependentFile

)

at NAnt.VSNet.Tasks.Resource.CompileResx()

at NAnt.VSNet.Tasks.Resource.Compile(ConfigurationSettings cs, Boolean 
bShowC

ommands)

at NAnt.VSNet.Tasks.Project.Compile(String strConfiguration, ArrayList 
alCSCA

rguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)

at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, 
ArrayList alCSC

Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)

at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()

at NAnt.Core.Task.Execute()

at NAnt.Core.Target.Execute()

at NAnt.Core.Target.Execute()

at NAnt.Core.Project.Execute(String targetName)

at NAnt.Core.Project.Execute()

at NAnt.Core.Project.Run()

Please send bug report to [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED].

When Im compiling an ASP.NET project written in VB.NET through the 
solution task.

The debug doesnt give more information so I dont know which file 
fails to load or which file it tries to load. My nant script looks 
like the following

target name=CreateVirtualDir

mkiisdir

dirpath=${nant.project.basedir}/Source/Application/AppWeb

vdirname=AppWeb 

accesswrite=True accessread=True accessexecute=True

enabledirbrowsing=True accesssource=True

/

/target

target name=compile depends=CreateVirtualDir

solution configuration=${project.config} 
solutionfile=${nant.project.basedir}/Source/app.sln/

/target

Philippe Lavoie

Cactus Commerce eBusiness. All Business.

Tel 819.778.0313 x302  888.CACTUS.0  Fax 819.771.0921

www.cactuscommerce.com [EMAIL PROTECTED]





---
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] [RC1-Bug] solution task and VB.NET web application

2003-07-17 Thread Matthew Mastracci
I thought it was both, but I made a number of fixes and it might have
slipped through my mental net.  Will the final release be made against
the HEAD or RC1?

On Thu, 2003-07-17 at 19:25, Ian MacLean wrote:
 Matthew Mastracci wrote:
 
  Bizarre- I thought this was checked in before RC1. You might need to 
  wait for the final release.
 
 Did you check in against the branch or the trunk ?
 
 Ian
 
  Philippe Lavoie wrote:
 
  Im resending this with RC1 in the title so that John doesnt miss it J
 
  Im getting the following output which I though was solved by Matthew
 
  [solution] - 
  C:\DOCUME~1\plavoie\LOCALS~1\Temp\-c5ht8zk\http___localhost_App
 
  Web_AppWeb.vbproj\Applicant\Address.aspx.resx
 
  Total time: 31 seconds.
 
  BUILD FAILED
 
  INTERNAL ERROR
 
  System.ArgumentException: Can't parse VB files yet
 
  at NAnt.VSNet.Tasks.Resource.GetDependentResourceName(String 
  strDependentFile
 
  )
 
  at NAnt.VSNet.Tasks.Resource.CompileResx()
 
  at NAnt.VSNet.Tasks.Resource.Compile(ConfigurationSettings cs, 
  Boolean bShowC
 
  ommands)
 
  at NAnt.VSNet.Tasks.Project.Compile(String strConfiguration, 
  ArrayList alCSCA
 
  rguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
 
  at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, 
  ArrayList alCSC
 
  Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
 
  at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()
 
  at NAnt.Core.Task.Execute()
 
  at NAnt.Core.Target.Execute()
 
  at NAnt.Core.Target.Execute()
 
  at NAnt.Core.Project.Execute(String targetName)
 
  at NAnt.Core.Project.Execute()
 
  at NAnt.Core.Project.Run()
 
  Please send bug report to [EMAIL PROTECTED] 
  mailto:[EMAIL PROTECTED].
 
  When Im compiling an ASP.NET project written in VB.NET through the 
  solution task.
 
  The debug doesnt give more information so I dont know which file 
  fails to load or which file it tries to load. My nant script looks 
  like the following
 
  target name=CreateVirtualDir
 
  mkiisdir
 
  dirpath=${nant.project.basedir}/Source/Application/AppWeb
 
  vdirname=AppWeb 
 
  accesswrite=True accessread=True accessexecute=True
 
  enabledirbrowsing=True accesssource=True
 
  /
 
  /target
 
  target name=compile depends=CreateVirtualDir
 
  solution configuration=${project.config} 
  solutionfile=${nant.project.basedir}/Source/app.sln/
 
  /target
 
  Philippe Lavoie
 
  Cactus Commerce eBusiness. All Business.
 
  Tel 819.778.0313 x302  888.CACTUS.0  Fax 819.771.0921
 
  www.cactuscommerce.com [EMAIL PROTECTED]
 
 
 
 
 
 
  ---
  This SF.net email is sponsored by: VM Ware
  With VMware you can run multiple operating systems on a single machine.
  WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
  same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
  ___
  nant-developers mailing list
  [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/nant-developers
 
 
 
 
 
 ---
 This SF.net email is sponsored by: VM Ware
 With VMware you can run multiple operating systems on a single machine.
 WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
 same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
 ___
 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: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] Bug in solution task with a web project

2003-07-03 Thread Matthew Mastracci
Someone posted a patch for this item earlier...  I don't know if it was 
ever applied.  I can look and make sure it's in CVS.

Philippe Lavoie wrote:

That did the trick, I added vbc (by contract, not choice) to the path
and now it got a lot further. However, now it's stuck with the following
which I hope is now fixed inside CVS (except that I can't compile CVS...
)
Web_IClicWeb.vbproj\Global.asax.resx
Total time: 0 seconds.
BUILD FAILED

INTERNAL ERROR

System.ArgumentException: Can't parse VB files yet
  at NAnt.VSNet.Tasks.Resource.GetDependentResourceName(String
strDependentFile
)
  at NAnt.VSNet.Tasks.Resource.CompileResx()
  at NAnt.VSNet.Tasks.Resource.Compile(ConfigurationSettings cs,
Boolean bShowC
ommands)
  at NAnt.VSNet.Tasks.Project.Compile(String strConfiguration,
ArrayList alCSCA
rguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
  at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration,
ArrayList alCSC
Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
  at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()
  at NAnt.Core.Task.Execute()
  at NAnt.Core.Target.Execute()
  at NAnt.Core.Project.Execute(String targetName)
  at NAnt.Core.Project.Execute()
  at NAnt.Core.Project.Run()
Please send bug report to [EMAIL PROTECTED]

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: Matthew Mastracci [mailto:[EMAIL PROTECTED] 
Sent: Thursday, July 03, 2003 12:07 PM
To: Philippe Lavoie
Cc: [EMAIL PROTECTED]
Subject: Re: [nant-dev] Bug in solution task with a web project

Is CSC.EXE in your path while running NAnt?

I'm hoping one day to add a web path mapping property to the solution 
task. Right now it has a very basic set of error-prone WebDAV methods to

handle compiling of a web project that is usually on the build server 
anyways. It also tries to use the credentials of the logged-in user. 
Microsoft uses the FrontPage extensions to work around these problems. 
It seems to work better with IIS.

Philippe Lavoie wrote:

 

I wanted to use slingshot and for some reason it would load (and it 
doesn't work with VS 2003 anyway). Then, I noticed that the solution 
might be the way to go.

I added a simple solution task to my build system

?xml version=1.0?

project name=App default=build

property name=debug value=true/

property name=build.basedir value=Build /

target name=build

solution configuration=debug solutionfile=source/App.sln/

/target

/project

The first time I was getting a 403 error (the web project is a virtual
   

 

directory which points back inside my source directory).

Fixed that by adding a checkbox to every permission available inside 
that directory. Then I ran the script again and got

Nant -debug



http://localhost/AppWeb/FixedTermLoan/Product.aspx.vb

http://localhost/AppWeb/FixedTermLoan/Product.aspx.resx

[solution] Building APP [debug]...

[solution] Copying references:

[solution] - System

[solution] - System.Data

[solution] - Microsoft.ApplicationBlocks.Data

[copy] Copying 0 files to C:\Projects\App-dev\Latest\source\L

ibrary\APP\bin\.

[solution] - System.XML

[solution] Compiling resources:

[solution] Starting compiler...

Total time: 0 seconds.

BUILD FAILED

INTERNAL ERROR

System.ComponentModel.Win32Exception: The system cannot find the file 
specified

at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo 
startIn

fo)

at System.Diagnostics.Process.Start()

at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

at NAnt.VSNet.Tasks.Project.Compile(String strConfiguration, ArrayList
   

 

alCSCA

rguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)

at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, 
ArrayList alCSC

Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)

at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()

at NAnt.Core.Task.Execute()

at NAnt.Core.Target.Execute()

at NAnt.Core.Project.Execute(String targetName)

at NAnt.Core.Project.Execute()

at NAnt.Core.Project.Run()

Please send bug report to [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED].

I'm using the latest snapshot available 20030621 (as the CVS source 
available from anonymous don't want to build. I'll send another report
   

 

for that.)

I wish I knew more what the problem was, since it seems I won't be 
able to use nant until this is fixed...

Philippe Lavoie

Cactus Commerce eBusiness. All Business.

Tel 819.778.0313 x302 * 888.CACTUS.0 * Fax 819.771.0921

www.cactuscommerce.com [EMAIL PROTECTED]

   



 





---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0016ave/direct

Re: [nant-dev] Bug in solution task with a web project

2003-07-03 Thread Matthew Mastracci
Phillippe: I've checked in a fix that allows you to generate VB 
resources from the WinForms projects.  As far as I can tell, it 
generates identical resource filenames to VS.NET's.

I can send you a pre-compiled solution task if you'd like - it may work 
within your NAnt installation.

Matthew Mastracci wrote:

Someone posted a patch for this item earlier...  I don't know if it 
was ever applied.  I can look and make sure it's in CVS.

Philippe Lavoie wrote:

That did the trick, I added vbc (by contract, not choice) to the path
and now it got a lot further. However, now it's stuck with the following
which I hope is now fixed inside CVS (except that I can't compile CVS...
)
Web_IClicWeb.vbproj\Global.asax.resx
Total time: 0 seconds.
BUILD FAILED

INTERNAL ERROR

System.ArgumentException: Can't parse VB files yet
  at NAnt.VSNet.Tasks.Resource.GetDependentResourceName(String
strDependentFile
)
  at NAnt.VSNet.Tasks.Resource.CompileResx()
  at NAnt.VSNet.Tasks.Resource.Compile(ConfigurationSettings cs,
Boolean bShowC
ommands)
  at NAnt.VSNet.Tasks.Project.Compile(String strConfiguration,
ArrayList alCSCA
rguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
  at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration,
ArrayList alCSC
Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)
  at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()
  at NAnt.Core.Task.Execute()
  at NAnt.Core.Target.Execute()
  at NAnt.Core.Project.Execute(String targetName)
  at NAnt.Core.Project.Execute()
  at NAnt.Core.Project.Run()
Please send bug report to [EMAIL PROTECTED]

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: Matthew Mastracci [mailto:[EMAIL PROTECTED] Sent: Thursday, July 
03, 2003 12:07 PM
To: Philippe Lavoie
Cc: [EMAIL PROTECTED]
Subject: Re: [nant-dev] Bug in solution task with a web project

Is CSC.EXE in your path while running NAnt?

I'm hoping one day to add a web path mapping property to the solution 
task. Right now it has a very basic set of error-prone WebDAV methods to

handle compiling of a web project that is usually on the build server 
anyways. It also tries to use the credentials of the logged-in user. 
Microsoft uses the FrontPage extensions to work around these 
problems. It seems to work better with IIS.

Philippe Lavoie wrote:

 

I wanted to use slingshot and for some reason it would load (and it 
doesn't work with VS 2003 anyway). Then, I noticed that the solution 
might be the way to go.

I added a simple solution task to my build system

?xml version=1.0?

project name=App default=build

property name=debug value=true/

property name=build.basedir value=Build /

target name=build

solution configuration=debug solutionfile=source/App.sln/

/target

/project

The first time I was getting a 403 error (the web project is a virtual
  


 

directory which points back inside my source directory).

Fixed that by adding a checkbox to every permission available inside 
that directory. Then I ran the script again and got

Nant -debug



http://localhost/AppWeb/FixedTermLoan/Product.aspx.vb

http://localhost/AppWeb/FixedTermLoan/Product.aspx.resx

[solution] Building APP [debug]...

[solution] Copying references:

[solution] - System

[solution] - System.Data

[solution] - Microsoft.ApplicationBlocks.Data

[copy] Copying 0 files to C:\Projects\App-dev\Latest\source\L

ibrary\APP\bin\.

[solution] - System.XML

[solution] Compiling resources:

[solution] Starting compiler...

Total time: 0 seconds.

BUILD FAILED

INTERNAL ERROR

System.ComponentModel.Win32Exception: The system cannot find the 
file specified

at 
System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo 
startIn

fo)

at System.Diagnostics.Process.Start()

at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

at NAnt.VSNet.Tasks.Project.Compile(String strConfiguration, ArrayList
  


 

alCSCA

rguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)

at NAnt.VSNet.Tasks.Solution.Compile(String strConfiguration, 
ArrayList alCSC

Arguments, String strLogFile, Boolean bVerbose, Boolean bShowCommands)

at NAnt.VSNet.Tasks.SolutionTask.ExecuteTask()

at NAnt.Core.Task.Execute()

at NAnt.Core.Target.Execute()

at NAnt.Core.Project.Execute(String targetName)

at NAnt.Core.Project.Execute()

at NAnt.Core.Project.Run()

Please send bug report to [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED].

I'm using the latest snapshot available 20030621 (as the CVS source 
available from anonymous don't want to build. I'll send another report
  


 

for that.)

I wish I knew more what the problem was, since it seems I won't be 
able to use nant until this is fixed...

Philippe Lavoie

Cactus Commerce eBusiness. All Business.

Tel 819.778.0313 x302 * 888.CACTUS.0 * Fax 819.771.0921

www.cactuscommerce.com [EMAIL PROTECTED

Re: [nant-dev] FW: Upcoming 0.8.3 release

2003-06-26 Thread Matthew Mastracci
Is it alright to do a couple of pre-0.8.3 builds before the real one (at 
least one)? 

I found that for the last release, people are more likely to test and 
send bug reports for a pre- build than a development build. 

Matt.

John Barstow wrote:

I'm hoping to do an 0.8.3 release sometime next weekend.  Before we can
release, however, we'll need a clean build.
The following tests FAIL when attempting to build from the latest CVS.
If no-one fixes them before I wake up, I'll probably send in a patch or
two.  Note that they're ALL failing on the same line.
(nant\tests\NAnt.Core\BuildTestBase.cs:line 96)
Buildfile:
file:///C:/source/tools/nant/tests/NAnt.DotNet/NAnt.DotNet.build
build:
test:
Tests run: 10, Failures: 6, Not run: 0, Time: 2.0937232 seconds
Failures:
1) Tests.NAnt.DotNet.Tasks.CscTaskTest.Test_DebugBuild : Error Executing
Project
   at Tests.NAnt.Core.BuildTestBase.ExecuteProject(Project p) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 96
   at Tests.NAnt.Core.BuildTestBase.RunBuild(String xml) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 80
   at Tests.NAnt.DotNet.Tasks.CscTaskTest.Test_DebugBuild() in
c:\source\tools\nant\tests\NAnt.DotNet\Tasks\CscTaskTest.cs:line 64
2) Tests.NAnt.DotNet.Tasks.CscTaskTest.Test_ReleaseBuild : Error
Executing Project
   at Tests.NAnt.Core.BuildTestBase.ExecuteProject(Project p) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 96
   at Tests.NAnt.Core.BuildTestBase.RunBuild(String xml) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 80
   at Tests.NAnt.DotNet.Tasks.CscTaskTest.Test_ReleaseBuild() in
c:\source\tools\nant\tests\NAnt.DotNet\Tasks\CscTaskTest.cs:line 72
3) Tests.NAnt.DotNet.Tasks.JscTaskTest.Test_DebugBuild : Error Executing
Project
   at Tests.NAnt.Core.BuildTestBase.ExecuteProject(Project p) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 96
   at Tests.NAnt.Core.BuildTestBase.RunBuild(String xml) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 80
   at Tests.NAnt.DotNet.Tasks.JscTaskTest.Test_DebugBuild() in
c:\source\tools\nant\tests\NAnt.DotNet\Tasks\JscTaskTest.cs:line 58
4) Tests.NAnt.DotNet.Tasks.JscTaskTest.Test_ReleaseBuild : Error
Executing Project
   at Tests.NAnt.Core.BuildTestBase.ExecuteProject(Project p) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 96
   at Tests.NAnt.Core.BuildTestBase.RunBuild(String xml) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 80
   at Tests.NAnt.DotNet.Tasks.JscTaskTest.Test_ReleaseBuild() in
c:\source\tools\nant\tests\NAnt.DotNet\Tasks\JscTaskTest.cs:line 66
5) Tests.NAnt.DotNet.Tasks.VbcTaskTest.Test_DebugBuild : Error Executing
Project
   at Tests.NAnt.Core.BuildTestBase.ExecuteProject(Project p) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 96
   at Tests.NAnt.Core.BuildTestBase.RunBuild(String xml) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 80
   at Tests.NAnt.DotNet.Tasks.VbcTaskTest.Test_DebugBuild() in
c:\source\tools\nant\tests\NAnt.DotNet\Tasks\VbcTaskTest.cs:line 66
6) Tests.NAnt.DotNet.Tasks.VbcTaskTest.Test_ReleaseBuild : Error
Executing Project
   at Tests.NAnt.Core.BuildTestBase.ExecuteProject(Project p) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 96
   at Tests.NAnt.Core.BuildTestBase.RunBuild(String xml) in
c:\source\tools\nant\tests\NAnt.Core\BuildTestBase.cs:line 80
   at Tests.NAnt.DotNet.Tasks.VbcTaskTest.Test_ReleaseBuild() in
c:\source\tools\nant\tests\NAnt.DotNet\Tasks\VbcTaskTest.cs:line 74
Total time: 3 seconds.
BUILD FAILED
John C Barstow

---
This SF.Net email is sponsored by: INetU
Attention Web Developers  Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
 





---
This SF.Net email is sponsored by: INetU
Attention Web Developers  Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


  1   2   >