* BuildTask.cs (Execute): Use task_logger only after the task
[mcs.git] / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / ChangeLog
blobf36b140b9c0a8254ac2260022f0411354c0f50b7
1 2009-08-20  Ankit Jain  <jankit@novell.com>
3         * BuildTask.cs (Execute): Use task_logger only after the task
4         has been initialized. Catch and report task loading errors.
5         * Target.cs (DoBuild): Dont rethrow the exception, and emit
6         the stacktrace as a low importance message.
8 2009-08-18  Ankit Jain  <jankit@novell.com>
10         * BatchingImplBase.cs: Make the item name lookups and metadata be case
11         insensitive.
12         * TaskDatabase.cs: Likewise.
13         * TaskEngine.cs: Make property name looks, case insensitive.
15 2009-08-09  Miguel de Icaza  <miguel@novell.com>
17         * ConsoleLogger.cs: Change the format of the error and warnings
18         strings to work when invoked inside Emacs by not rendering the
19         column if available, by using lowercase "error"/"warning" strings
20         instead of camelcased versions and to not have unnecessary padding.
22 2009-07-31  Ankit Jain  <jankit@novell.com>
24         * ConsoleLogger.cs: Keep track of all the errors and warnings
25         and show them at the end.
27 2009-07-31  Ankit Jain  <jankit@novell.com>
29         * Target.cs (Build): Log a message if a target is skipped.
30         (LogMessage): New.
31         * BuildTask.cs (Execute): Log error if task execution fails.
33 2009-07-30  Ankit Jain  <jankit@novell.com>
35         * Engine.cs (.ctor): Set default BinPath. Currently this assumes
36         v2.0, this will change when multi-targeting lands.
38 2009-07-30  Ankit Jain  <jankit@novell.com>
40         * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
41         'MSBuildProjectName' properties.
43 2009-07-28  Ankit Jain  <jankit@novell.com>
45         * TaskEngine.cs (Prepare): Fix formatting mistake.
46         * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
47         fails. Also, emit result of project at Normal verbosity level.
49 2009-07-23  Ankit Jain  <jankit@novell.com>
51         Fix bug #511370.
52         * Project.cs (ExtensionsPath): New.
53         (InitializeProperties): Set "MSBuildExtensionsPath" property.
55 2009-06-12  Ankit Jain  <jankit@novell.com>
57         Fix bug #512535.
58         * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
59         itemref is allowed if the prev/next element is ";".
61 2009-06-12  Ankit Jain  <jankit@novell.com>
63         * Utilities.cs (FromMSBuildPath): Return null if the path contains
64         "drive:" only on windows.
66 2009-06-07  Ankit Jain  <jankit@novell.com>
68         * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
69         the metadata.
71 2009-05-29  Ankit Jain  <jankit@novell.com>
73         Correctly handle global properties. Correctly log
74         project/build events.
76         * BuildPropertyGroup.cs (Clone): Implement.
77         * Engine.cs (globalProperties): Rename to ..
78         (global_properties): .. this.
79         (currentlyBuildingProjectsStack): New. Used to correctly
80         log and raise project/build start/finish events.
81         (BuildProjectFile): Override any project global properties
82         with explicitly specified ones, here in the param @globalProperties.
83         Mark project for reevaluation, which will update the engine's
84         global properties also.
85         Reset both engine and project's old global properties at the end.
86         (UnregisterAllLoggers): Log build finished only if we are currently
87         building.
88         (StartBuild): Rename to ..
89         (StartProjectBuild): .. this. Keeps track of the projects being built
90         in the new stack, and logs project and build events accordingly.
91         (EndProjectBuild): New. Uses the stack to keep track of projects
92         finishing builds, and raises project and build events accordingly.
93         (LogProjectStarted): Move here from Project.cs
94         (LogProjectFinished): Likewise.
96         * Project.cs (Build): Log start of project build.
97         Set current directory to the project file's dir, and reset at end.
98         (BuildInternal): Don't log here, its done in Build.
99         (BuildTarget): Already built targets are keyed by the set of global
100         properties that they were built with.
101         (GlobalPropertiesToString): New.
102         (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
103         (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
104         (Evaluate): Remove built targets only if we are currently building and
105         build settings are None.
106         Merge project's global properties with those of the parent engine.
107         Add missing properties from engine's global properties.
108         (LogTargetSkipped): Fix format string, add the reqd argument.
110 2009-05-29  Ankit Jain  <jankit@novell.com>
112         * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
113         (HasTrailingSlash): New.
115 2009-05-12  Ankit Jain  <jankit@novell.com>
117         * Project.cs (.ctor): Init timeOfLastDirty.
119 2009-05-05  Miguel de Icaza  <miguel@novell.com>
121         * Contribution from Martin Brenn to fix #498154.
123 2009-04-27  Ankit Jain  <jankit@novell.com>
125         Fix bug #497839.
126         * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
127         one passed as argument.
129 2009-04-27  Ankit Jain  <jankit@novell.com>
131         * TaskEngine.cs (Prepare): Emit a useful error message property value
132         can't be converted to required type.
134 2009-04-27  Ankit Jain  <jankit@novell.com>
136         * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
137         as valid true values for bool, and corresponding for false.
139 2009-03-27  Jonathan Chambers  <joncham@gmail.com>
141         * BuildWhen.cs: Add basic implementation.
142         * BuildChoose.cs: Add basic implementation.
143         * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to 
144         EvaluatedItemsIgnoringCondition.
145         * GroupingCollection.cs: Add evaluation of BuildChoose items.
147 2009-03-26  Jonathan Chambers  <joncham@gmail.com>
149         * TaskDatabase.cs (RegisterTask): Search for class by name
150         if task was not found using GetType (which uses namespace). 
152 2009-02-26  Ankit Jain  <jankit@novell.com>
154         * Target.cs: Handle target with no tasks. Log errors.
156 2009-02-24  Ankit Jain  <jankit@novell.com>
158         Lazily load UsingTask tasks.
159         * UsingTask.cs (Evaluate): Register 'this' with task database,
160         but don't load it yet. Register only if condition evaluates to true.
161         Move the load logic to ..
162         (Load): .. here. Register with the specified task database.
163         * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
164         in a table keyed by task name, but don't load it yet.
165         (GetTypeFromClassName): Try to load UsingTask if task is not already
166         loaded. Move loading logic to ..
167         (GetTypeFromClassNameInternal): .. here.
168         (CopyTasks): Copy the usingTasks table also.
170 2009-02-23  Ankit Jain  <jankit@novell.com>
172         * BuildItem.cs (AddMetadata): Allow overwriting older values.
174 2009-02-22  Ankit Jain  <jankit@novell.com>
176         * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
177         instead of XmlElement. Eg. XmlComment
179 2009-02-21  Ankit Jain  <jankit@novell.com>
181         * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
182         * Project.cs (Load): Use FromMSBuildPath on the path.
183         (InitializeProperties): Set "MSBuildToolsPath" also.
185 2009-02-20  Ankit Jain  <jankit@novell.com>
187         Fix #449683.
188         * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
189         transforms) in conditions.
190         * ConditionParser.cs: Parse unquoted item, property references.
191         eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
192         * Token.cs (Token.ToString): Override.
193         (TokenType.Transform): Uncomment.
195 2009-02-12  Jonathan Chambers  <joncham@gmail.com>
197         * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
198         no XmlElement.InnerText. This allows properties to be additional 
199         xml elements.
201 2009-02-01  Ankit Jain  <jankit@novell.com>
203         * BuildEngine.cs (BuildProjectFile): Use
204         BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
205         * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
206         built. Move logging of project start/finish to ..
207         * Project.cs: .. here. Build a target only if hasn't been built already.
208         Keep track of target outputs, and return those even if an already built
209         target has been invoked again.
210         Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
212 2009-01-31  Ankit Jain  <jankit@novell.com>
214         * BatchingImpl.cs: Split into ..
215         * BatchingImplBase.cs: .. this,
216         * TaskBatchingImpl.cs: .. this ..
217         * TargetBatchingImpl.cs: .. and this. Implement target batching here.
219         * Target.cs (DoBuild): Use TargetBatchingImpl for building.
220         (Log*): Move to TargetBatchingImpl .
221         (BuildTasks): New.
222         (Engine): New.
224 2009-01-30  Ankit Jain  <jankit@novell.com>
226         * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
227         arrays.
229 2009-01-29  Ankit Jain  <jankit@novell.com>
231         * BuildItem.cs (child_items): Change type from BuildItemGroup to
232         List<BuildItem>.
233         (HasParent): Rename to ..
234         (HasParentItem): .. this.
235         (ParentItemGroup): Add setter.
237         * BuildItemGroup.cs (.ctor): Add overload with @project param.
238         (AddNewItem):
239         (AddItem): Correctly set the ParentItemGroup for new build items.
240         (ParentProject): Add setter.
241         * Project.cs: Set the project for new BuildItemGroup instances.
242         * TaskEngine.cs (PublishItemGroup): Likewise.
244 2009-01-06  Ankit Jain  <jankit@novell.com>
246         * Project.cs (Build): Honor InitialTargets list.
248 2009-01-06  Ankit Jain  <jankit@novell.com>
250         * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
251         the property type also.
252         * MSBuild.cs (Execute): Parse 'Properties' task param to set global
253         properties.
255 2009-01-06  Ankit Jain  <jankit@novell.com>
257         * Project.cs (Build): Correctly handle null targetNames argument.
259 2009-01-06  Ankit Jain  <jankit@novell.com>
261         * Engine.cs (LogProjectStarted): Add a null check.
263 2009-01-01  Ankit Jain  <jankit@novell.com>
265         * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
266         * ChangeType (ToBuildItemGroup): Add 'split' param.
267         Track api changes.
268         * Expression.cs (Parse): Add a new overload with a 'split' param.
269         * ExpressionCollection.cs (Add): Add new overload for IReference,
270         remove the ones for Item/Metadata/PropertyReference.
271         (ConvertToArray): Implement correctly.
272         (ConvertToString): Track api changes.
273         (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
274         (ConvertToITaskItemArray): Implement support for concat'ing expressions.
275         (AddItemsToArray): New.
276         (ConvertToITaskItemArrayFromString): Refactor a bit.
277         (ThrowCantConcatError): New.
278         * ItemReference.cs: Update.
279         * MetadataReference.cs: Update.
280         * PropertyReference.cs (ConvertToITaskItemArray): Implement.
281         (GetValue): New.
282         * BuildPropertyGroup.cs: Track api changes.
283         * TaskEngine.cs (PublishOutput): Improve exception message.
284         * Project.cs (DoLoad): Improve exception message. Add a null check.
286 2008-12-30  Ankit Jain  <jankit@novell.com>
288         * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
289         metadata values for unqualified references.
290         (BuildItemGroupToITaskItemArray): Rename to ..
291         (BuildItemGroupToITaskItems): .. this.
292         (HasTaskItem): New.
294 2008-12-18  Ankit Jain  <jankit@novell.com>
296         * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
298 2008-12-17  Ankit Jain  <jankit@novell.com>
300         * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
301         only one instance of unique metadata value is required.
303 2008-11-22  Ankit Jain  <jankit@novell.com>
305         * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
306         MetadataReference.
307         * MetadataReference.cs (ConvertToITaskItemArray): New.
308         * Project.cs (GetAllItemGroups): New.
310 2008-11-21  Ankit Jain  <jankit@novell.com>
312         * BatchingImpl.cs: Add task batching implementation.
313         * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
314         * ExpressionCollection.cs (Count): New.
315         (ConvertToString): Handle MetadataReference.
316         * ItemReference.cs (ConvertToString):
317         (ConvertToITaskItemArray): Use the batching api.
318         (ToString): New.
319         * MetadataReference.cs (ConvertToString): New.
320         (ToString): New.
321         * Project.cs: Add api for accessing batched items and metadata.
322         * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
323         item group.
325 2008-10-01  Ankit Jain  <jankit@novell.com>
327         * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
328         (BuildProjectFile): If filename is null (project.LoadXml) then use
329         engine.BuildProject
330         * BuildTask.cs (InitializeTask): Track api change.
331         * Expression.cs (Parse): Skip empty entries in the expression.
333 2008-09-24  Ankit Jain  <jankit@novell.com>
335         * Engine.cs: Add argument checks.
336         * Project.cs: Likewise.
338 2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
340         * Project.cs (Build): Add outputs to targetOutputs.
342 2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
344         * ExpressionCollection.cs (ConvertToArray): Simplify.
346 2007-03-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
348         * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
349         simplified. It still needs tests and refactoring.
351 2007-02-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
353         * BuildEngine.cs (BuildProjectFile): Don't crash on null
354         globalProperties.
356         * Target.cs: Add Outputs property.
358 2007-02-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
360         * Target.cs (Build): Split to GetDependencies () and BuildDependencies
361         (). Support condition.
362         
363         * BatchingImpl.cs (BatchBuildTask): Simplify.
365 2007-02-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
367         * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
368         Simplified.
370         * ConditionFunctionExpression.cs: Removed warnings.
372         * BuildTask.cs (Execute): Write exceptions to std err (they should be
373         logged but it's better than swallowing).
375 2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
377         * ConditionTokenizer.cs: Add Putback ().
379         * ConditionParser.cs: Add parsing of functions.
381         * ConditionFunctionExpression.cs: Add.
383 2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
385         * BuildPropertyGroup (SetProperty): Throw an exception when trying to
386         set property in persisted property group.
388 2007-01-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
390         * BuildTask.cs (Execute): Log errors that happen when invoking ITask
391         .ctor.
393         * ConsoleLogger.cs (TargetFinishedHandler)
394         (TaskFinishedHandler): Increment error count.
396 2007-01-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
398         * BuildItem.cs (RemoveMetadata): Remove from XML.
399         (SetMetadata): Trigger project reevaluation.
401 2007-01-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
403         * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
404         properties.
406 2007-01-23  Marek Sieradzki  <marek.sieradzki@gmail.com>
408         * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
409         TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
410         BatchingImpl.cs, BuildProperty.cs: Track API changes.
412         * Expression.cs (Parse): Added allowItems parameter and made regexes
413         static.
415         * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
416         will try to import a.ext when given a.EXT.
418 2007-01-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
420         * BuildItemGroup.cs: Store information saying what is the last item
421         group that contains build item name.
423         * Project.cs (Build): Pass empty array (build default targets).
425 2007-01-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
427         * Token.cs: Commented Transform and LiteralSubExpression and added
428         FunctionName token.
430         * ConditionParser.cs: Removed redundant casts, rewrote
431         ParseFactorExpression () and added parsing of '!'.
433         * ConditionTokenizer.cs: Always skip whitespaces when getting next
434         token (no IgnoreWhiteSpace property). Don't create a token from '->'.
435         Moved ReadChar () in front of all ifs.
437 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
439         * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
440         from XML. (not to escape items that have parents twice).
442 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
444         * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
445         (Project): Renamed to ParentProject.
447         * BuildItem.cs (ctor)
448         (CopyCustomMetadata): Add null check.
450         * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
451         (RemoveProperty): Added null check.
453         * TargetCollection.cs (RemoveTarget): Added null check.
455         * Engine.cs (UnloadProject): Added null check.
457         * GroupingCollection.cs (Remove): Check if removed group belongs to
458         current project.
460         * Project.cs (AddNewItem): Implemented.
461         (RemoveItem): Reorganized.
462         (SetProjectExtensions): Added null check.
464 2007-01-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
466         * BuildItemGroup.cs (Detach): Added.
467         (RemoveItem)
468         (RemoveItemAt): Used Detach ().
470         * BuildItem.cs: Made FromXml and HasParent internal and added
471         ParentItem and ParentItemGroup properties (internal).
472         (Detach): Added.
474         * GroupingCollection.cs (Remove): Used Detach ().
476         * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
477         text on Save ().
478         (GetEvaluatedItemsByNameIgnoringCondition)
479         (GetEvaluatedItemsByName)
480         (GetEvaluatedProperty): Reevaluate if needed.
481         (RemoveItem)
482         (RemoveAllItemGroups)
483         (RemoveAllPropertyGroups): Implemented.
484         (DoLoad): Added closing of TextReader.
486 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
488         * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
489         change but just mark that it needs it.
491         * Project.cs: Reevaluate when it needs reevaluation and one of
492         Evaluated* properties is used.
494 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
496         * Target.cs: Throw an exception when <OnError> is not last element in
497         target.
499         * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
501         * TargetCollection.cs: If a target is already there replace it with
502         new target.
504         * BuildProperty.cs: Added XmlElement property.
506 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
508         * ImportCollection.cs: Don't add imports that are already added.
510         * BuildItemGroup.cs: MonoTODOs.
512         * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
513         condition can't be evaluated to bool.
515         * BuildPropertyGroup.cs (Evaluate): Simplify.
517 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
519         * BuildWhen.cs: Moved BindToXml () code to ctor.
521         * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
522         property needed for removing groups.
524         * Engine.cs: Added StartBuild () that logs build start when Build ()
525         was first called.
527         * GroupingCollection.cs: Added Remove () for item and property groups.
529         * Project.cs (AddNewImport): Implemented.
530         (AddNewItemGroup): Implemented.
531         (AddNewPropertyGroup): Implemented.
532         (AddNewUsingTaskFromAssemblyFile): Implemented.
533         (AddNewUsingTaskFromAssemblyName): Implemented.
534         (RemoveItemGroup): Implemented.
535         (RemovePropertyGroup): Implemented.
537 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
539         * BuildItemGroup.cs (Clear): Remove from XML.
541         * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
542         to Project.EvaluatedProperties.
543         (Clear): Remove from XML.
545 2007-01-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
547         * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
548         reserved property.
550 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
552         * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
553         Add () calls when processing a project from Import and
554         evaluate_iterator for evaluation.
556 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
558         * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
559         and prepend relative directory of importing project to full path of
560         imported project.
562 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
564         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
565         BuildItemGroupCollection.cs, Project.cs: Track API changes.
567         * GroupingCollection.cs: Now it needs Project reference so added it.
569         * BuildTask.cs: Formatting.
571         * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
573         * ConditionParser.cs (ParseAndEvaluate): Added.
575         * BuildItem.cs: Changed exception message.
577 2007-01-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
579         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
580         BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
581         GroupingCollection doesn't need Project reference.
583         * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
585         * BuildItemGroup.cs: Added new readOnly parameter to ctor.
586         (Project.EvaluatedItems is a read only item group.)
587         (ReplaceWith): Added.
589         * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
590         global property group causes reevaluation of its project.
592         * Project.cs: ProcessXml () is internal and can be "safely" invoked by
593         other classes.
595         * OldExpression.cs: Removed.
597         * BuildProperty.cs (Evaluate): Simplified.
599         * ChangeType.cs (TemporaryTransform): Simplified.
601         * BuildItem.cs: There are now 3 types of build items: from XML, having
602         parent from XML, virtual. Added SplitParentItem ().
604 2006-12-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
606         * Utilities.cs: Added Unescape ().
608         * BuildItemGroup.cs, BuildItem.cs: Pass null project to
609         BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
610         groups (at the moment just unescape).
612         * Expression.cs (CopyToExpressionList): Unescape strings.
614 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
616         * Target.cs (ctor): Added ImportedProject argument and removed
617         set_IsImported.
618         (AddNewTask): Implemented.
620         * TargetCollection.cs (AddNewTarget): Implemented.
622         * Project.cs: Track API changes.
624 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
626         * Target.cs (Build): Don't throw anything in case of error, just
627         return false.
629         * BuildItemGroup.cs (set_Condition): Throw an exception if group is
630         not from XML.
632         * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
633         SetMetadata ().
635         * BuildProperty.cs (ToString): Throw an exception if property is not
636         from XML.
637         (op_Explicit): Added a null check.
639         * Engine.cs: Better error message.
641         * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
642         IndexOutOfRangeException.
644         * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
645         (MarkProjectAsDirty): Set time.
647 2006-12-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
649         * BuildItemGroup.cs (Clone): Throw exception.
651         * Project.cs (Load): Throw InvalidProjectFileException if anything
652         goes wrong.
654 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
656         * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
657         and ConvertToITaskItemArray ().
659 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
661         * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
662         classes that were public in Beta 2 and aren't used.
664         * Expression.cs: Added replacement for parsing expressions char by
665         char. It uses regexes to find item/property/metadata references in
666         given text.
668         * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
669         Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
670         BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
672         * ConditionRelationalExpression.cs: Formatting.
674         * OldExpression.cs: Commented everything.
676         * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
677         parsing to Expression.
679         * BuildItem.cs: Check if project is from XML in set_Condition and
680         set_Exclude.
682         * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
683         Project.ctor.
685         * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
686         can evaluate expression in CanEvaluateToBool ().
688 2006-12-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
690         * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
691         which item group is imported.
693         * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
695 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
697         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
698         BuildItemGroupCollection.cs: Little changes related to
699         GroupingCollection.
701         * ImportCollection.cs: Use GroupingCollection not an internal list.
703         * Import.cs (Evaluate): Split to functions and check if
704         EvaluatedProjectPath is empty.
706         * GroupingCollection.cs, Project.cs: Move evaluation to
707         GroupingCollection. Change algorithm to use 2 passes: first for property
708         groups and imports and second for item groups.
710 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
712         * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
713         BuildItemGroup> not IDictionary.
715         * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
716         evaluated to false because we want to add every item to
717         Project.EvaluatedItemsByNameIgnoringCondition.
719         * Project.cs (Build): Don't throw an exception just return false.
720         (GetEvaluatedProperty): Avoid NullReferenceException.
721         (SetProjectExtensions): Implemented.
723 2006-12-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
725         * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
727         * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
728         BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
729         Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
730         
731         * ImportCollection.cs: Added a note.
733 2006-12-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
735         * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
737         * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
738         (UsingTask[] array, int index)
740         * TaskEngine.cs: Reformatted PublishOutput () and added copying of
741         items to Project.EvaluatedItems in PublishItemGroup ();
743         * BuildItemGroup.cs: Added [MonoTODO].
745         * UsingTask.cs: Used expression for AssemblyFile to get around
746         problems with '\' and '/'.
748         * BuildItem.cs (ctor): Added null checks.
749         (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
750         (SetMetadata): Don't escape evaluatedMetadata and escape
751         unevaluatedMetadata only when treatPropertyValueAsLiteral.
753         * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
754         FromXml () instead of null checks.
755         (SetProperty): Escape propertyValue when it is literal.
757         * BuildProperty.cs: Changed exception message.
759         * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
760         properties.
761         (GetProjectExtensions): Implemented.
763 2006-12-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
765         * BuildTask.cs: Remove [MonoTODO], add exception throwing in
766         GetParameterValue (), use expressions in ContinueOnError.
767         * ConditionFactorException.cs: Throw InvalidProjectFileException ()
768         instead of InvalidOperationException ().
769         * ImportCollection.cs: Implement CopyTo ().
770         * Target.cs: Remove redundant variables (XmlAttributes), return
771         String.Empty in DependsOnTargets, add a null check in RemoveTask ().
772         * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
773         * Import.cs: Throw an exception when file does not exist.
774         * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
775         * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
776         need to treat item as a token probably
778 2006-12-04  Marek Sieradzki  <marek.sieradzki@gmail.com>
780         * Import.cs: Check for project.FullFileName (Path.DirectoryName would
781         throw an exception).
782         * BuildItemGroupCollection.cs: Changed exception types.
784 2006-10-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
786         * Engine.cs: Removed redundant cast.
787         * BuildWhen.cs:
788         * UsingTaskCollection.cs:
789         * ImportCollection:
790         * BuildChoose.cs:
791         * BuildItem.cs:
792         * TargetCollection.cs: Comment unused variable.
793         * ConditionTokenizer.cs: Simplified checking if current token is a
794         keyword.
795         * Target.cs: Removed old code.
797 2006-10-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
799         * Target.cs: Changed "" to String.Empty.
800         * TaskEngine.cs: Don't try to convert a parameter to specific type if
801         string was evaluated to String.Empty.
802         * InternalLoggerException.cs:
803         * InvalidProjectFileException.cs: Added LinkDemand before
804         GetObjectData ().
805         * ConsoleLogger.cs: Changed "" to String.Empty.
806         * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
807         with change to generics).
808         * Project.cs: Made Build () throw more meaningful exception.
810 2006-10-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
812         * Target.cs: Reformatted.
813         * TaskEngine.cs: Removed redundant code.
814         * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
815         * Engine.cs: Made BuildProjectFile () load project file if it's not
816         loaded yet.
818 2006-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
820         * ConditionRelationalExpression.cs: Change comparers to case
821         insensitive.
822         * ImportCollection.cs: Add NotImplementedExceptions.
823         * BuildPropertyGroup.cs: Reformatted a bit.
824         * BuildProperty.cs: The same.
825         * Project.cs: Moved evaluation of imports before evaluation of
826         properties. This may "work" until importing projects is redesigned but
827         probably isn't correct.
829 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
831         * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
832         (like comments)
833         * BuildItemGroup.cs: Change return to continue.
835 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
837         * ConditionParser.cs: Copyright note.
838         * ExpressionCollection.cs: Fixed arrays passing.
840 2006-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
842         * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
843         Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
844         BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
845         TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
847 2006-06-25  Marek Sieradzki  <marek.sieradzki@gmail.com>
849         * Token.cs: Changed names: removed "than".
850         * ConditionRelationalExpression.cs: Added.
851         * ConditionFactorExpression.cs: Added.
852         * BuildItemGroup.cs: Changed Condition property return value to return
853         String.Empty instead of null.
854         * ConditionParser.cs: Added support for parsing relational expressions
855         and factors.
856         * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
857         abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
858         and CanEvaluateToBool (), CanEvaluateToNumber () and
859         CanEvaluateToString ().
860         * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
861         appropriately to ConditionExpression base class.
862         * ConditionTokenizer.cs: Added null check and changed names in enums:
863         removed "than".
864         * ConditionNotExpression.cs: Added.
865         * BatchingImpl.cs: Changed to use BoolEvaluate ().
866         * Project.cs: Added checks for condition.
868 2006-06-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
870         * ConditionalTokenizer.cs, ConditionalExpression.cs,
871         ConditionalParser.cs: Changed name,
872         removed -al.
873         * ConditionExpression.cs: Added Evaluate ().
874         * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
875         * BatchingImpl.cs: Added check if task should be executed.
877 2006-06-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
879         * UsingTask.cs: Changed properties to return null on empty attribute.
880         * UsingTaskCollection.cs: Added object to SyncRoot.
881         * BuildPropertyGroup.cs: Added NotImplementedException throwing.
883 2006-06-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
885         * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
886         BuildPropertyGroupCollection.cs: Fixed to match the tests.
888 2006-05-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
890         * Utilities.cs: Implemented Escape ().
891         * BuildItem.cs: Added null checks.
892         * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
893         * Project.cs: Commented out redundant Evaluate ().
894         * BuildChoose.cs: Minor changes.
896 2006-05-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
898         * Token: Added new few missing tokens.
899         * Target.cs, Project.cs: Patch from Matthew Metnesky.
900         * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
901         ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
902         ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
903         LiteralTokenizer.cs:
904         Removed literal expression parsing based on tokenizer and
905         parser. It needs to be done by regex.
906         
907         Moved tokenizer to ConditionalTokenizer.cs.
909 2006-05-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
911         * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
912         ItemReference.cs, PropertyReference.cs: Changed name of *Reference
913         methods converting reference to string from ToString () to
914         ConvertToString () to avoid mistakes like using ToString () provided
915         by default.
917 2006-05-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
919         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
920         Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
921         PropertyReference.cs, BuildProperty.cs: Changed Expression to
922         OldExpression and changed To* functions to one ConvertTo ().
923         * TaskEngine.cs: Fixed PublishOutput ().
924         * OldExpression.cs: Added. It will be temporarily used before
925         LiteralExpression will be written using Tokenizer.
926         * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
927         ExpressionParseException.cs, LiteralExpression.cs: Added.
929 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
931         * ImportedProject.cs: Removed warning.
932         * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
933         default tasks.
935 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
937         * Project.cs: Removed unnecessary variable.
938         * Engine.cs: Added fixme.
940 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
942         * BuildItem.cs: Moved checking if metadata name is reserved to internal
943         class (Mono.XBuild.Utilities.ReservedNameUtils).
944                 
945 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
947         * BuildTask.cs: Removed unnecessary variable.
948         * Engine.cs: Added logging of the build start.
949         * Project.cs: Removed unnecessary variable.
951 2006-04-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
953         * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
955 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
957         * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
959 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
960         
961         * BuildItem.cs: Fix typo?
963 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
965         * InternalLoggerException.cs, InvalidProjectFileException.cs,
966         Engine.cs, Project.cs: Coding style fixes.
968 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
969         
970         * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
972 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
973         
974         * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
975         to pass tests. Wrote serialization constructor.
976         * Engine.cs, Project.cs: Global engine and project unloading, test and
977         formatting fixes.
979 2006-03-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
981         * UsingTask.cs: Formatting changes.
983 2006-03-27  Crestez Leonard  <cdleonard@gmail.com>
985         * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
986         to lists instead of hashtables.
987         * Import.cs: Cleaned up, moved importing from Project.cs
988         * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
989         * Engine.cs: Cleaned up properties.
990         * Project.cs: Moved importing to Import.cs, cleaned up properties,
991         Separated evaluation and loading.
992         
993 2006-03-21  Crestez Leonard  <cdleonard@gmail.com>
995         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
996         BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
997         Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
998         binding and evaluation, merge xml binding in constructors.
999         * DirectoryScanner.cs: Includes CAN be empty.
1000         * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1001         * ConsoleLogger.cs: Fix compilation warning.
1003 2006-03-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
1005         * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1007 2006-03-18  Marek Sieradzki  <marek.sieradzki@gmail.com> 
1009         * Engine.cs: API cleanup.
1011 2006-03-18  Crestez Leonard  <cdleonard@gmail.com>
1013         * Project.cs: Cleaned up add.
1014         * Expression.cs: Hacked to transform \ and / to path separators.
1015         * BuildPropertyGroup.cs: Small cleanup.
1016         * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1017         reference.
1018         
1019 2006-03-11  Marek Sieradzki  <marek.sieradzki@gmail.com> 
1021         * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1022         * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1023         files.
1024         * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1025         BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1026         Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1027         API.
1028         * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1029         * TaskElement.cs: Temporarily removed.
1030         * Xml.cs: Changed to static.
1032 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
1034         * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1035         IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1036         ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1037         IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1038         ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1039         IBuildPropertyGroupCollection.cs: Removed.
1041 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com> 
1043         * BuildItem.cs: Removed IBuildItem references.
1044         * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1045         IBuildItemGroup references. Changed Evaluate to internal.
1046         * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1047         reference and hidden constructors.
1048         * BuildProperty.cs: Removed IBuildProperty reference.
1049         * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1050         IBuildPropertyGroup references. Changed Evaluate to internal.
1051         * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1052         reference and hidden constructors.
1053         * ConsoleLogger.cs: Updated names of event handlers.
1054         * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1055         Escape. Added UnloadAllProjects () and UnloadProject ().
1056         * FileLogger.cs: Removed ApplyParameter ().
1057         * GroupingCollection.cs: Hidden.
1058         * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1059         * ItemPropertyGroupingBase.cs: Commented.
1060         * ProcessingPass.cs: Hidden.
1061         * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1062         Encoding.
1063         * Target.cs: Removed ITarget reference.
1064         * TargetCollection.cs: Removed ITargetCollection reference.
1065         * TaskElement.cs: Removed ITaskElement reference.
1066         * TaskEngineAssemblyResolver.cs: Hidden.
1067         * Utilities.cs: Made static class, removed CheckPath (),
1068         ValidateCulture (), GetSupportedCultures () and added Escape ().
1070 2006-02-24  Marek Sieradzki <marek.sieradzki@gmail.com> 
1072         * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1073         API.
1075 2005-09-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
1077         * Project.cs: Added MonoTODO attributes.
1078         * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1079         ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1080         IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1081         BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1082         SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1083         BuildItemGroup.cs, InvalidProjectFileException.cs,
1084         BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1085         Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1086         PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1087         ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1088         IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1089         IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1090         ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1091         ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1092         IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1093         IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1094         BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1095         ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1097 2005-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
1099         * TaskDatabase.cs: Change Shared to Framework.
1100         * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1101         CaseInsensitiveHashCodeProvider
1103 2005-09-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
1105         * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1106         * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1107         property.
1109 2005-09-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
1111         * InternalLoggerException.cs: Changed protected fields to private.
1113 2005-09-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
1115         * Engine.cs: Added check for globalProperties.
1116         * Project.cs: Added using path from importedProject.FullFileName when
1117         adding UsingTask elements.
1119 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
1121         * TaskElement.cs: Changed ReflectedType to PropertyType.
1122         * ChangeType.cs (TransformToString): Changed to pass proper Type to
1123         TemporaryTransform. 
1125 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
1127         * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1128         new property.
1129         * BuildProperty.cs: Organized PropertyType enum.
1130         * Engine.cs: Added setting CommandLine PropertyType of global
1131         properties.
1133 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
1135         * InvalidProjectFileException.cs: Changed Message property.
1136         * ChangeType.cs (TransformToString): Added separator between items.
1137         * TaskEngineAssemblyResolver.cs: Formatting.
1139 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
1141         * DirectoryScanner.cs: Added.
1142         * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1143         * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1144         * Project.cs: Removed Evalute* ().
1146 2005-08-30  Marek Sieradzki  <marek.sieradzki@gmail.com>
1148         * Target.cs: Formatting.
1149         * Expression.cs: Added check if array == null.
1150         * BuildItem.cs: Removed 'break' to remove warnings.
1151         * ConsoleLogger.cs: Formatting.
1152         * Engine.cs: Added handling of default target(s).
1153         * Project.cs: Added handling of default target(s).
1155 2005-08-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
1157         * TaskElement.cs: Added check for parameters.
1158         * Target.cs: Added logging of target skipping.
1159         * Expression.cs: Changed returning object[] to string[], bool[]... in
1160         ToArray ().
1161         * ItemReference.cs: Fixed for item references without custom
1162         separators.
1163         * BatchingImpl.cs: Added real inputs/outputs checking.
1164         * Engine.cs: Moved global properties setting.
1165         * Project.cs: Moved global properties setting.
1167 2005-08-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
1169         * Target.cs: Added checks for target existence.
1170         * BuildItemGroup.cs: Changed to use transforms.
1171         * MetadataReference.cs: Wrote real implementation.
1172         * ItemReference.cs: Rewritten to use transforms.
1173         * BuildItem.cs: Changes for transforms and metadata.
1174         * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1175         formatting.
1176         * Project.cs: Fixed project importing.
1177         * ImportedProject.cs: Changed to throw exceptions instead of returning
1178         bool.
1180 2005-08-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
1182         * Engine.cs: Removed FIXME.
1183         * Project.cs: Splitted ProcessElements and added project importing.
1184         * ImportedProject.cs: Rewritten.
1186 2005-08-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
1188         * TaskElement.cs: Added getting of objects of every type.
1189         * BuildItemGroup.cs: Added ToITaskItemArray ().
1190         * Expression.cs: Implemented part that is not using metadata.
1191         * ItemReference.cs: Implemented parsing item references. Need to fix
1192         validity checking.
1193         * BuildItem.cs: Fixed ToITaskItem ().
1194         * PropertyReference.cs: Implemented parsing property references. This
1195         also needs validity checking.
1197 2005-08-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
1199         * TaskElement.cs: Added Output element handling.
1200         * Target.cs: Cleaned up.
1201         * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1202         * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1203         ItemReference.cs, ChangeType.cs: Added.
1204         * BuildItem.cs: Added creating BuildItem from TaskItem.
1205         * BuildPropertyGroup.cs: Small changes.
1206         * BatchingImpl.cs: Fixed to return real task execution result.
1207         * BuildProperty.cs: Fixed FinalValue property.
1208         * Engine.cs: Reformatted logging.
1209         * Project.cs: Added check to EvaluateProperty.
1211 2005-08-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
1213         * TaskElement.cs: Added part of execution engine.
1214         * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1215         * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1216         * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1217         * BuildItem.cs: Added handling of built-in metadata and referencing
1218         Items by name not FullName.
1219         * BatchingImpl.cs: Added temporary task "batching".
1220         * ConsoleLogger.cs: Added temporary workaround to not show sender.
1221         * Project.cs: Added Evaluate. It will be moved to separate class.
1223 2005-08-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
1225         * EventSource.cs, Engine.cs: Added CriticalEvents.
1226         * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1227         Project.cs: Added some support for items.
1228         * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1230 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
1232         * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1233         of properties.
1235 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
1237         * BatchingImpl.cs: Added.
1238         * BuildWhen.cs, BuildEngine.cs, Target.cs,
1239         BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1240         BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1241         TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1242         GroupingCollection.cs: Updated.
1244 2005-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
1246         * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1247         BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1248         BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1249         BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1250         EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1251         GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1252         InternalLoggerException.cs, InvalidProjectFileException.cs,
1253         ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1254         ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1255         TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1256         TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1257         Initial check-in of implementations.
1259 2005-07-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
1261         * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1262         IBuildItemGroupCollection.cs, IBuildProperty.cs,
1263         IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1264         ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1265         IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1266         IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1267         Initial check-in of interfaces and a syntax file, real classes are
1268         changing a lot so I'll wait a moment with checking them in.