Re: [nant-dev] IncludeTask / failonerror
This is done now. You can include the same file fom multiple places and only the first one will get included. A message will get logged that there was an attempt to include a duplicate file. Recursive includes still raise an exception and I think thats how it should be. Ian Its probably a good idea. The only issue is that you may get weird behaviour if the includes don't happenin quite the orderyou expect. ie include file 'a' but its already been included by file 'b' which overrides some of its properties. Still thats pretty much how c includes work ( with header guards ). so the answer is yes we should allow a file to be included multiple times but only the first one will actually be included. Ian Was there ever any decision on this? IMO allowing multiple includes makes managing multiple build files much easier. brant ... - Original Message - From: Gert Driesen [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Friday, August 15, 2003 1:40 AM Subject: Re: [nant-dev] IncludeTask / failonerror Hi Brant, The IncludeTask already supports failonerror, as support for failonerror is implemented in the Task base class. I did make some minor modifications just now that will make it more clear as to what is causing the include task to fail. Ian, should we allow a file to be included twice (well actually just once, but throw no exception when the same file is mapped again) ? Currently, in LocationMap there's a check that prevents such a scenario : if (_fileMap.ContainsKey(fileName)) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, XML document '{0}' has already been mapped., fileName)); } Gert - Original Message - From: Brant Carter [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, August 14, 2003 11:24 PM Subject: [nant-dev] IncludeTask / failonerror I have been setting up my build files and noticed that the include task does not support the failonerror attribute properly. I have the following situation I am trying to support. common.build : common stuff sub.build : a subsystem build file, includes common.build master.build : the main build file, includes common.build, sub.build the include task was busting since common.build is included in both spots. Adding a failonerror=false and changing the following code in the IncludeTask seemed to have fixed the problem. can I get this change committed? b protected override void ExecuteTask() { // push ourselves onto the stack (prevents recursive includes) string includedFileName = Path.GetFullPath(Path.Combine(_currentBasedir, BuildFileName)); _includedFileNames.Push(includedFileName); _nestinglevel ++; Log(Level.Verbose, LogPrefix + Including file {0}., includedFileName); string oldBaseDir = Project.BaseDirectory; // set basedir to be used by the nested calls (if any) _currentBasedir = Path.GetDirectoryName(includedFileName); try { XmlDocument doc = new XmlDocument(); doc.Load(includedFileName); Project.InitializeProjectDocument(doc); } catch (BuildException) { if (FailOnError) { throw; } } catch (Exception e) { if (FailOnError) { throw new BuildException(Could not include build file + includedFileName, Location, e); } } finally { // pop off the stack _includedFileNames.Pop(); _nestinglevel--; // reset base\dir _currentBasedir = oldBaseDir; } } From: Ian MacLean [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED] CC: [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: [nant-dev] Re: NAntContrib Source Date: Wed, 13 Aug 2003 13:19:37 +0900 You can grab it from anonymous nantcontrib cvs using cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib login cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib co -r BRANCH-083 NAntContrib NAntContrib source isn't bein distributed with the 0.83 release. Ian Where can I get the NAntContrib source that is being use for the 0.83 release. I downloaded the source for NAnt and the binaries are in the \bin folder. The nightly builds for NAntContrib aren't correct. If someone has these files that would be appreciated. thanks brant _ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 --- 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
Re: [nant-dev] IncludeTask / failonerror
Its probably a good idea. The only issue is that you may get weird behaviour if the includes don't happenin quite the orderyou expect. ie include file 'a' but its already been included by file 'b' which overrides some of its properties. Still thats pretty much how c includes work ( with header guards ). so the answer is yes we should allow a file to be included multiple times but only the first one will actually be included. Ian Was there ever any decision on this? IMO allowing multiple includes makes managing multiple build files much easier. brant ... - Original Message - From: Gert Driesen [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Friday, August 15, 2003 1:40 AM Subject: Re: [nant-dev] IncludeTask / failonerror Hi Brant, The IncludeTask already supports failonerror, as support for failonerror is implemented in the Task base class. I did make some minor modifications just now that will make it more clear as to what is causing the include task to fail. Ian, should we allow a file to be included twice (well actually just once, but throw no exception when the same file is mapped again) ? Currently, in LocationMap there's a check that prevents such a scenario : if (_fileMap.ContainsKey(fileName)) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, XML document '{0}' has already been mapped., fileName)); } Gert - Original Message - From: Brant Carter [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, August 14, 2003 11:24 PM Subject: [nant-dev] IncludeTask / failonerror I have been setting up my build files and noticed that the include task does not support the failonerror attribute properly. I have the following situation I am trying to support. common.build : common stuff sub.build : a subsystem build file, includes common.build master.build : the main build file, includes common.build, sub.build the include task was busting since common.build is included in both spots. Adding a failonerror=false and changing the following code in the IncludeTask seemed to have fixed the problem. can I get this change committed? b protected override void ExecuteTask() { // push ourselves onto the stack (prevents recursive includes) string includedFileName = Path.GetFullPath(Path.Combine(_currentBasedir, BuildFileName)); _includedFileNames.Push(includedFileName); _nestinglevel ++; Log(Level.Verbose, LogPrefix + Including file {0}., includedFileName); string oldBaseDir = Project.BaseDirectory; // set basedir to be used by the nested calls (if any) _currentBasedir = Path.GetDirectoryName(includedFileName); try { XmlDocument doc = new XmlDocument(); doc.Load(includedFileName); Project.InitializeProjectDocument(doc); } catch (BuildException) { if (FailOnError) { throw; } } catch (Exception e) { if (FailOnError) { throw new BuildException(Could not include build file + includedFileName, Location, e); } } finally { // pop off the stack _includedFileNames.Pop(); _nestinglevel--; // reset base\dir _currentBasedir = oldBaseDir; } } From: Ian MacLean [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED] CC: [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: [nant-dev] Re: NAntContrib Source Date: Wed, 13 Aug 2003 13:19:37 +0900 You can grab it from anonymous nantcontrib cvs using cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib login cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib co -r BRANCH-083 NAntContrib NAntContrib source isn't bein distributed with the 0.83 release. Ian Where can I get the NAntContrib source that is being use for the 0.83 release. I downloaded the source for NAnt and the binaries are in the \bin folder. The nightly builds for NAntContrib aren't correct. If someone has these files that would be appreciated. thanks brant _ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 --- 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 _ Add photos to your e-mail with MSN 8. Get 2 months FREE
Re: [nant-dev] IncludeTask / failonerror
Was there ever any decision on this? IMO allowing multiple includes makes managing multiple build files much easier. brant ... - Original Message - From: Gert Driesen [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Friday, August 15, 2003 1:40 AM Subject: Re: [nant-dev] IncludeTask / failonerror Hi Brant, The IncludeTask already supports failonerror, as support for failonerror is implemented in the Task base class. I did make some minor modifications just now that will make it more clear as to what is causing the include task to fail. Ian, should we allow a file to be included twice (well actually just once, but throw no exception when the same file is mapped again) ? Currently, in LocationMap there's a check that prevents such a scenario : if (_fileMap.ContainsKey(fileName)) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, XML document '{0}' has already been mapped., fileName)); } Gert - Original Message - From: Brant Carter [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, August 14, 2003 11:24 PM Subject: [nant-dev] IncludeTask / failonerror I have been setting up my build files and noticed that the include task does not support the failonerror attribute properly. I have the following situation I am trying to support. common.build : common stuff sub.build : a subsystem build file, includes common.build master.build : the main build file, includes common.build, sub.build the include task was busting since common.build is included in both spots. Adding a failonerror=false and changing the following code in the IncludeTask seemed to have fixed the problem. can I get this change committed? b protected override void ExecuteTask() { // push ourselves onto the stack (prevents recursive includes) string includedFileName = Path.GetFullPath(Path.Combine(_currentBasedir, BuildFileName)); _includedFileNames.Push(includedFileName); _nestinglevel ++; Log(Level.Verbose, LogPrefix + Including file {0}., includedFileName); string oldBaseDir = Project.BaseDirectory; // set basedir to be used by the nested calls (if any) _currentBasedir = Path.GetDirectoryName(includedFileName); try { XmlDocument doc = new XmlDocument(); doc.Load(includedFileName); Project.InitializeProjectDocument(doc); } catch (BuildException) { if (FailOnError) { throw; } } catch (Exception e) { if (FailOnError) { throw new BuildException(Could not include build file + includedFileName, Location, e); } } finally { // pop off the stack _includedFileNames.Pop(); _nestinglevel--; // reset base\dir _currentBasedir = oldBaseDir; } } From: Ian MacLean [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED] CC: [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: [nant-dev] Re: NAntContrib Source Date: Wed, 13 Aug 2003 13:19:37 +0900 You can grab it from anonymous nantcontrib cvs using cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib login cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib co -r BRANCH-083 NAntContrib NAntContrib source isn't bein distributed with the 0.83 release. Ian Where can I get the NAntContrib source that is being use for the 0.83 release. I downloaded the source for NAnt and the binaries are in the \bin folder. The nightly builds for NAntContrib aren't correct. If someone has these files that would be appreciated. thanks brant _ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 --- 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 _ Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail --- 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
Re: [nant-dev] IncludeTask / failonerror
Hi Brant, The IncludeTask already supports failonerror, as support for failonerror is implemented in the Task base class. I did make some minor modifications just now that will make it more clear as to what is causing the include task to fail. Ian, should we allow a file to be included twice (well actually just once, but throw no exception when the same file is mapped again) ? Currently, in LocationMap there's a check that prevents such a scenario : if (_fileMap.ContainsKey(fileName)) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, XML document '{0}' has already been mapped., fileName)); } Gert - Original Message - From: Brant Carter [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, August 14, 2003 11:24 PM Subject: [nant-dev] IncludeTask / failonerror I have been setting up my build files and noticed that the include task does not support the failonerror attribute properly. I have the following situation I am trying to support. common.build : common stuff sub.build : a subsystem build file, includes common.build master.build : the main build file, includes common.build, sub.build the include task was busting since common.build is included in both spots. Adding a failonerror=false and changing the following code in the IncludeTask seemed to have fixed the problem. can I get this change committed? b protected override void ExecuteTask() { // push ourselves onto the stack (prevents recursive includes) string includedFileName = Path.GetFullPath(Path.Combine(_currentBasedir, BuildFileName)); _includedFileNames.Push(includedFileName); _nestinglevel ++; Log(Level.Verbose, LogPrefix + Including file {0}., includedFileName); string oldBaseDir = Project.BaseDirectory; // set basedir to be used by the nested calls (if any) _currentBasedir = Path.GetDirectoryName(includedFileName); try { XmlDocument doc = new XmlDocument(); doc.Load(includedFileName); Project.InitializeProjectDocument(doc); } catch (BuildException) { if (FailOnError) { throw; } } catch (Exception e) { if (FailOnError) { throw new BuildException(Could not include build file + includedFileName, Location, e); } } finally { // pop off the stack _includedFileNames.Pop(); _nestinglevel--; // reset base\dir _currentBasedir = oldBaseDir; } } From: Ian MacLean [EMAIL PROTECTED] To: Brant Carter [EMAIL PROTECTED] CC: [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: [nant-dev] Re: NAntContrib Source Date: Wed, 13 Aug 2003 13:19:37 +0900 You can grab it from anonymous nantcontrib cvs using cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib login cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/nantcontrib co -r BRANCH-083 NAntContrib NAntContrib source isn't bein distributed with the 0.83 release. Ian Where can I get the NAntContrib source that is being use for the 0.83 release. I downloaded the source for NAnt and the binaries are in the \bin folder. The nightly builds for NAntContrib aren't correct. If someone has these files that would be appreciated. thanks brant _ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 --- 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 _ Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail --- 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