[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / ChangeLog
index 4c4e68cd32be974ccd27e7fec98847c29437ee9b..fccbf5743994b0c7a96c30ed636916a6ba5fd6c9 100644 (file)
@@ -1,3 +1,346 @@
+2010-07-24  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs: Collect and dump timing information.
+
+2010-07-24  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs: Honor LoggerVerbosity.Quiet .
+
+2010-07-22  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs: Add support for parameter 'NoItemAndPropertyList'.
+
+2010-07-22  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs: Add reserved properties MSBuildProjectFullPath
+       and MSBuildProjectExtension .
+
+2010-07-09  Ankit Jain  <jankit@novell.com>
+
+       Correctly handle precedence of ToolsVersion value coming
+       from various points.
+       * BuildEngine.cs (BuildProjectFile): Restore project.ToolsVersion .
+       * Engine.cs: Likewise. Also validate DefaultToolsVersion .
+       * Project.cs: Handle invalid tools version specified in the project
+       file, and fall back to engine's version.
+       * MSBuild.cs: Fix the precedence order, and validate.
+       * UnknownToolsVersionException.cs: New.
+
+2010-06-23  Ankit Jain  <jankit@novell.com>
+
+       * TargetBatchingImpl.cs (BuildTargetNeeded): Fix var names to
+       correctly reflect what they track. Log messages when skipping
+       or building a target.
+
+2010-06-04  Ankit Jain  <jankit@novell.com>
+
+       * Import.cs (EvaluateProjectPath): Add a hack to support multiple
+       msbuild extension paths. Paths can be specified via the environment
+       variable - $MSBuildExtensionsPath . ~/.config/xbuild/tasks is also
+       checked for extensions, besides the default location.
+       This explicitly looks for a "$(MSBuildExtensionsPath)" in the import
+       expression and tries to replace that with possible paths, till it
+       finds the file. In rest of the project, the property would resolve
+       to its single default value.
+
+2010-06-03  Ankit Jain  <jankit@novell.com>
+
+       * Engine.cs (GetLoadedProject): Return null if project not found.
+       Based on a patch by Dale Ragan <dale.ragan@sinesignal.com> .
+
+2010-05-28  Ankit Jain  <jankit@novell.com>
+
+       Fix bug #485841.
+       * DirectoryScanner.cs (ProcessInclude): Set %(RecursiveDir) only if
+       the '**' wildcard was found in the original Include.
+
+2010-04-10  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (InitializeProperties): Set MSBuildBinPath to the current
+       tools path.
+
+2010-04-10  Ankit Jain  <jankit@novell.com>
+
+       * TaskEngine.cs (Prepare): Throw InvalidProjectFileException instead of a generic
+       Exception.
+
+2010-04-10  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs (EventsToString): If the target being executed is
+       from an imported file, then show that.
+
+2010-04-10  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs: Add property MSBuildExtensionsPath32, used by silverlight
+       projects.
+
+2010-04-07  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs: Dump items and properties when a project starts
+       to build. Useful for debugging.
+       * Engine.cs (LogProjectStarted): Set the properties and items also,
+       for the project started event.
+       * Project.cs (EvaluatedPropertiesAsDictionaryEntries): New.
+       (EvaluatedItemsByNameAsDictionaryEntries): New. Required for
+       ProjectStartedEvent .
+
+2010-04-03  Ankit Jain  <jankit@novell.com>
+
+       * BuildEngine.cs: Implement IBuildEngine2 instead of
+       IBuildEngine.
+       * BuildTasks.cs: Use the new extension methods for logging.
+       (InitializeTask): Emit a message informing about the assembly
+       from which the task is being loaded. Emit a useful debug message
+       incase of a InvalidCastException.
+       * Engine.cs: Add missing methods, constructors and properties related
+       to ToolsVersion support. Setup a default set of Toolsets.
+       Keep separate taskdbs' per ToolsVersion. The common tasks
+       would come from different *.tasks file, and use different
+       task assemblies.
+       (DefaultToolsVersion): Correctly set this based on the profile.
+       * LogExtensions.cs: New. Extension methods on Engine, for logging.
+       * Project.cs: Add missing methods/contructors/properties related
+       to ToolsVersion support. Add reserved properties -
+       MSBuildToolsPath and MSBuildToolsVersion .
+       * Toolset.cs: New.
+       * ToolsetCollection.cs: New.
+       * ToolsetDefinitionLocations.cs: New.
+
+2010-03-04  Ankit Jain  <jankit@novell.com>
+
+       * BuildEngine.cs (LogErrorEvent): Log as warning, if
+       ContinueOnError==true, and log a corresponding message.
+       * TargetBatchingImpl.cs: Refactor to share code between the
+       batched and unbatched case. If a task fails and
+       ContinueOnError==true, then ignore the failed state.
+
+2010-02-19  Ankit Jain  <jankit@novell.com>
+
+       * BuildItem.cs: Track api changes.
+       (SetMetadata): Allow RecursiveDir to be set, this is set by
+       DirectoryScanner.
+       * DirectoryScanner.cs (ProcessInclude): Set RecursiveDir metadata.
+
+2010-02-19  Ankit Jain  <jankit@novell.com>
+
+       * Import.cs (Evaluate): Add param @ignoreMissingImports.
+       * Project.cs (Load*): Add overloads with param @projectLoadSettings.
+       (Log*): Mark internal.
+       * ProjectLoadSettings.cs: New.
+
+2010-02-04  Ankit Jain  <jankit@novell.com>
+
+       Fix bug #576589.
+       * ConditionFunctionExpression.cs (Exists): Check for directory also.
+
+2009-12-22  Ankit Jain  <jankit@novell.com>
+
+       Fix bug #565849.
+       * DirectoryScanner.cs (Excludes): Change from string to ITaskItem[] .
+       * BuildItem.cs: Track api changes.
+
+2009-12-02  Ankit Jain  <jankit@novell.com>
+
+       Fix bug #559990.
+       * Engine.cs (UnloadAllProjects): Don't remove items from the collection
+       being iterated over. Patch by Laurent Etiemble
+       <laurent.etiemble@gmail.com>
+
+2009-11-28  Ankit Jain  <jankit@novell.com>
+
+       Fix bug #547753.
+       * BatchingImplBase.cs (DumpBucket*): New. Useful for debugging.
+       * Project.cs (Batch): New. Contains the perBatchItems and the
+       commonItems for the batch.
+       Use a stack of batches, instead of directly setting the current
+       batch items.
+       (PushBatch): New.
+       (PopBatch): New.
+       (SetBatchedItems): Make this private.
+       (GlobalProperties.set): Re-evaluating the project is not required
+       for this.
+       * TargetBatchingImpl.cs: Use the new Push/PopBatch instead of directly
+       setting the batches.
+       * TaskBatchingImpl.cs: Likewise. Refactor slightly to PopBatch in
+       finally block.
+       * Target.cs (Build): Reset the current batch to nil before evaluating
+       and building this target.
+
+2009-11-28  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (TryGetEvaluatedItemByNameBatched): Item could be
+       available in either perBatchItemsByName or commonItemsByName
+       or the evaluatedItemsByName collection. Allows the use of
+       items which are not batched, but are consumed in case of batching.
+
+2009-11-26  Ankit Jain  <jankit@novell.com>
+
+       * TargetBatchingImpl.cs (BuildTargetNeeded): Expand metadata
+       refs also, for Inputs and Outputs.
+
+2009-10-13  Ankit Jain  <jankit@novell.com>
+
+       * DirectoryScanner.cs:
+       * ExpressionCollection.cs:
+       * GroupingCollection.cs:
+       * Project.cs:
+       * Target.cs: Fix warnings.
+
+2009-10-12  Ankit Jain  <jankit@novell.com>
+
+       * Target.cs (TargetFile): New. Gives the name of the file
+       containing the target definition.
+       * BuildEngine.cs (.ctor): Add a 'taskfile' parameters, and
+       return this for ProjectFileOfTaskNode.
+       * BuildTask.cs (LogTaskStarted):
+       (LogTaskFinished): Use parentTarget.ProjectFileOfTaskNode for
+       the event.
+       (InitializeTask): Set BuildEngine's task file to parent target's
+       TargetFile.
+       * Engine.cs (LogProjectStarted): Incase of default targets, set
+       TargetNames to String.Empty .
+       * TargetBatchingImpl.cs (LogTargetStarted):
+       (LogTargetFinished): Use target.TargetFile for the event.
+
+       * ConsoleLogger.cs: Keep a stack of project/target/task being
+       executed. And corresponding list of errors and warnings.
+       (EventsToString): Stringifies the current "stack", to be used
+       as key to the table of errors/warnings and for show messages
+       at the end of the build.
+
+2009-10-12  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (Load): Add argument checks.
+
+2009-10-11  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs (no_colors): Rename to ..
+       (use_colors): .. this. Fix the case when XBUILD_COLORS
+       is not set.
+
+2009-10-11  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs: Use ColorSetter and ColorResetter .
+       Support 'XBUILD_COLORS' to set colors for errors, warnings,
+       events and messages.
+
+2009-10-10  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs (ProjectFinishedHandler): Once projectFailed
+       becomes true, don't reset it. We are looking for "atleast one
+       project failed".
+
+2009-10-08  Ankit Jain  <jankit@novell.com>
+
+       * DirectoryScanner.cs: Use Path.GetPathRoot, instead of
+       directly using DirectoryInfo ("z:"), that doesn't return
+       a dir info for "z:".
+
+2009-10-08  Ankit Jain  <jankit@novell.com>
+
+       * DirectoryScanner.cs: Handle absolute paths. Fix to work
+       correctly on windows. Change order of adding paths to match
+       msbuild, useful to have.
+
+2009-10-08  Ankit Jain  <jankit@novell.com>
+
+       * TaskBatchingImpl.cs (ParseTaskAttributes): Parse attributes
+       of the 'Output' element also.
+       * TaskEngine.cs (PublishOutput): Honor condition on 'Output' also.
+
+2009-10-07  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger.cs: Mark build as failed, if any project failed.
+
+2009-10-06  Ankit Jain  <jankit@novell.com>
+
+       * ConsoleLogger: Improve error reporting. Don't count failed task,
+       target or project as another error. Show "errors" after "warnings",
+       more useful to the user.
+       * Project.cs (BuildTarget): Log error instead of using CWL.
+
+2009-10-03  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (OS): New.
+       (InitializeProperties): Set 'OS' as a pre-defined property, set to
+       'Windows_NT', 'Unix' or 'OSX' depending on the platform.
+
+2009-10-02  Ankit Jain  <jankit@novell.com>
+
+       * Expression.cs (Parse): Don't change '/' to '\\', not required.
+
+2009-10-01  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (AddImport): Show the correct source file name, when
+       the import is in the main project file.
+
+2009-10-01  Ankit Jain  <jankit@novell.com>
+
+       Fix bug #543299.
+       * Import.cs (.ctor): Evaluate and set EvaluatedProjectPath to
+       the full path of the imported project here itself, instead of ..
+       (Evaluate): .. here.
+       * ImportCollection.cs (Add): Use import.EvaluatedProjectPath .
+       (Contains): New.
+       * Project.cs (AddImport): Don't process if condition is false.
+       Warn if a circular reference is detected, and ignore the import.
+
+2009-09-29  Ankit Jain  <jankit@novell.com>
+
+       * GroupingCollection.cs (Evaluate): Mark internal.
+       * Project.cs (AddImport): Only evaluate the properties,
+       till before the import.
+
+2009-09-29  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (DoLoad): Don't use XmlReader.Create, for loading
+       the project xml, as returned Xml*Reader normalizes the newlines.
+       Instead directly use the TextReader with XmlDocument.Load ().
+
+2009-09-27  Ankit Jain  <jankit@novell.com>
+
+       * ConditionParser.cs: Show the condition being parsed in the
+       exception message.
+
+2009-09-26  Ankit Jain  <jankit@novell.com>
+
+       * Expression.cs: Allow '-' in item, property and metadata names.
+
+2009-09-26  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (Evaluate): Split into this and ..
+       (PrepareForEvaluate): .. this.
+       (AddImport): Evaluate the current set of properties/items etc,
+       before processing the imported project. Honor the Condition
+       for the Import.
+       (ProcessProjectAttributes): Update MSBuildProjectDefaultTargets
+       property.
+       * GroupingCollection.cs (Evaluate): Don't evaluate Imports here.
+       * BuildItemGroup.cs (Evaluate): Evaluate only once.
+       * BuildPropertyGroup.cs (Evaluate): Evaluate only once.
+
+2009-09-26  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs: Get InitialTargets from the imported projects also.
+       The combined list of targets are executed, in the order they were
+       found.
+       DefaultTargets are also read in from imported projects, and the first
+       non-empty DefaultTargets found is used.
+
+2009-09-25  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (BuildTarget): Handle skipped targets.
+
+2009-09-25  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (DoLoad): If a VS2003 project is detected, then throw
+       InvalidProjectFileException with useful error.
+
+2009-09-24  Ankit Jain  <jankit@novell.com>
+
+       * Project.cs (Load): Emit the .sln.proj file only if env var
+       XBUILD_EMIT_SOLUTION is set.
+
 2009-09-24  Ankit Jain  <jankit@novell.com>
 
        * Project.cs (GetKeyForTarget): Make target name, case insensitive.