In class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine:
[mono.git] / mcs / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / ChangeLog
1 2009-05-29  Ankit Jain  <jankit@novell.com>
2
3         * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
4         (HasTrailingSlash): New.
5
6 2009-05-12  Ankit Jain  <jankit@novell.com>
7
8         * Project.cs (.ctor): Init timeOfLastDirty.
9
10 2009-05-05  Miguel de Icaza  <miguel@novell.com>
11
12         * Contribution from Martin Brenn to fix #498154.
13
14 2009-04-27  Ankit Jain  <jankit@novell.com>
15
16         Fix bug #497839.
17         * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
18         one passed as argument.
19
20 2009-04-27  Ankit Jain  <jankit@novell.com>
21
22         * TaskEngine.cs (Prepare): Emit a useful error message property value
23         can't be converted to required type.
24
25 2009-04-27  Ankit Jain  <jankit@novell.com>
26
27         * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
28         as valid true values for bool, and corresponding for false.
29
30 2009-03-27  Jonathan Chambers  <joncham@gmail.com>
31
32         * BuildWhen.cs: Add basic implementation.
33         * BuildChoose.cs: Add basic implementation.
34         * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to 
35         EvaluatedItemsIgnoringCondition.
36         * GroupingCollection.cs: Add evaluation of BuildChoose items.
37
38 2009-03-26  Jonathan Chambers  <joncham@gmail.com>
39
40         * TaskDatabase.cs (RegisterTask): Search for class by name
41         if task was not found using GetType (which uses namespace). 
42
43 2009-02-26  Ankit Jain  <jankit@novell.com>
44
45         * Target.cs: Handle target with no tasks. Log errors.
46
47 2009-02-24  Ankit Jain  <jankit@novell.com>
48
49         Lazily load UsingTask tasks.
50         * UsingTask.cs (Evaluate): Register 'this' with task database,
51         but don't load it yet. Register only if condition evaluates to true.
52         Move the load logic to ..
53         (Load): .. here. Register with the specified task database.
54         * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
55         in a table keyed by task name, but don't load it yet.
56         (GetTypeFromClassName): Try to load UsingTask if task is not already
57         loaded. Move loading logic to ..
58         (GetTypeFromClassNameInternal): .. here.
59         (CopyTasks): Copy the usingTasks table also.
60
61 2009-02-23  Ankit Jain  <jankit@novell.com>
62
63         * BuildItem.cs (AddMetadata): Allow overwriting older values.
64
65 2009-02-22  Ankit Jain  <jankit@novell.com>
66
67         * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
68         instead of XmlElement. Eg. XmlComment
69
70 2009-02-21  Ankit Jain  <jankit@novell.com>
71
72         * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
73         * Project.cs (Load): Use FromMSBuildPath on the path.
74         (InitializeProperties): Set "MSBuildToolsPath" also.
75
76 2009-02-20  Ankit Jain  <jankit@novell.com>
77
78         Fix #449683.
79         * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
80         transforms) in conditions.
81         * ConditionParser.cs: Parse unquoted item, property references.
82         eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
83         * Token.cs (Token.ToString): Override.
84         (TokenType.Transform): Uncomment.
85
86 2009-02-12  Jonathan Chambers  <joncham@gmail.com>
87
88         * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
89         no XmlElement.InnerText. This allows properties to be additional 
90         xml elements.
91
92 2009-02-01  Ankit Jain  <jankit@novell.com>
93
94         * BuildEngine.cs (BuildProjectFile): Use
95         BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
96         * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
97         built. Move logging of project start/finish to ..
98         * Project.cs: .. here. Build a target only if hasn't been built already.
99         Keep track of target outputs, and return those even if an already built
100         target has been invoked again.
101         Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
102
103 2009-01-31  Ankit Jain  <jankit@novell.com>
104
105         * BatchingImpl.cs: Split into ..
106         * BatchingImplBase.cs: .. this,
107         * TaskBatchingImpl.cs: .. this ..
108         * TargetBatchingImpl.cs: .. and this. Implement target batching here.
109
110         * Target.cs (DoBuild): Use TargetBatchingImpl for building.
111         (Log*): Move to TargetBatchingImpl .
112         (BuildTasks): New.
113         (Engine): New.
114
115 2009-01-30  Ankit Jain  <jankit@novell.com>
116
117         * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
118         arrays.
119
120 2009-01-29  Ankit Jain  <jankit@novell.com>
121
122         * BuildItem.cs (child_items): Change type from BuildItemGroup to
123         List<BuildItem>.
124         (HasParent): Rename to ..
125         (HasParentItem): .. this.
126         (ParentItemGroup): Add setter.
127
128         * BuildItemGroup.cs (.ctor): Add overload with @project param.
129         (AddNewItem):
130         (AddItem): Correctly set the ParentItemGroup for new build items.
131         (ParentProject): Add setter.
132         * Project.cs: Set the project for new BuildItemGroup instances.
133         * TaskEngine.cs (PublishItemGroup): Likewise.
134
135 2009-01-06  Ankit Jain  <jankit@novell.com>
136
137         * Project.cs (Build): Honor InitialTargets list.
138
139 2009-01-06  Ankit Jain  <jankit@novell.com>
140
141         * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
142         the property type also.
143         * MSBuild.cs (Execute): Parse 'Properties' task param to set global
144         properties.
145
146 2009-01-06  Ankit Jain  <jankit@novell.com>
147
148         * Project.cs (Build): Correctly handle null targetNames argument.
149
150 2009-01-06  Ankit Jain  <jankit@novell.com>
151
152         * Engine.cs (LogProjectStarted): Add a null check.
153
154 2009-01-01  Ankit Jain  <jankit@novell.com>
155
156         * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
157         * ChangeType (ToBuildItemGroup): Add 'split' param.
158         Track api changes.
159         * Expression.cs (Parse): Add a new overload with a 'split' param.
160         * ExpressionCollection.cs (Add): Add new overload for IReference,
161         remove the ones for Item/Metadata/PropertyReference.
162         (ConvertToArray): Implement correctly.
163         (ConvertToString): Track api changes.
164         (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
165         (ConvertToITaskItemArray): Implement support for concat'ing expressions.
166         (AddItemsToArray): New.
167         (ConvertToITaskItemArrayFromString): Refactor a bit.
168         (ThrowCantConcatError): New.
169         * ItemReference.cs: Update.
170         * MetadataReference.cs: Update.
171         * PropertyReference.cs (ConvertToITaskItemArray): Implement.
172         (GetValue): New.
173         * BuildPropertyGroup.cs: Track api changes.
174         * TaskEngine.cs (PublishOutput): Improve exception message.
175         * Project.cs (DoLoad): Improve exception message. Add a null check.
176
177 2008-12-30  Ankit Jain  <jankit@novell.com>
178
179         * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
180         metadata values for unqualified references.
181         (BuildItemGroupToITaskItemArray): Rename to ..
182         (BuildItemGroupToITaskItems): .. this.
183         (HasTaskItem): New.
184
185 2008-12-18  Ankit Jain  <jankit@novell.com>
186
187         * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
188
189 2008-12-17  Ankit Jain  <jankit@novell.com>
190
191         * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
192         only one instance of unique metadata value is required.
193
194 2008-11-22  Ankit Jain  <jankit@novell.com>
195
196         * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
197         MetadataReference.
198         * MetadataReference.cs (ConvertToITaskItemArray): New.
199         * Project.cs (GetAllItemGroups): New.
200
201 2008-11-21  Ankit Jain  <jankit@novell.com>
202
203         * BatchingImpl.cs: Add task batching implementation.
204         * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
205         * ExpressionCollection.cs (Count): New.
206         (ConvertToString): Handle MetadataReference.
207         * ItemReference.cs (ConvertToString):
208         (ConvertToITaskItemArray): Use the batching api.
209         (ToString): New.
210         * MetadataReference.cs (ConvertToString): New.
211         (ToString): New.
212         * Project.cs: Add api for accessing batched items and metadata.
213         * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
214         item group.
215
216 2008-10-01  Ankit Jain  <jankit@novell.com>
217
218         * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
219         (BuildProjectFile): If filename is null (project.LoadXml) then use
220         engine.BuildProject
221         * BuildTask.cs (InitializeTask): Track api change.
222         * Expression.cs (Parse): Skip empty entries in the expression.
223
224 2008-09-24  Ankit Jain  <jankit@novell.com>
225
226         * Engine.cs: Add argument checks.
227         * Project.cs: Likewise.
228
229 2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
230
231         * Project.cs (Build): Add outputs to targetOutputs.
232
233 2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
234
235         * ExpressionCollection.cs (ConvertToArray): Simplify.
236
237 2007-03-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
238
239         * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
240         simplified. It still needs tests and refactoring.
241
242 2007-02-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
243
244         * BuildEngine.cs (BuildProjectFile): Don't crash on null
245         globalProperties.
246
247         * Target.cs: Add Outputs property.
248
249 2007-02-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
250
251         * Target.cs (Build): Split to GetDependencies () and BuildDependencies
252         (). Support condition.
253         
254         * BatchingImpl.cs (BatchBuildTask): Simplify.
255
256 2007-02-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
257
258         * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
259         Simplified.
260
261         * ConditionFunctionExpression.cs: Removed warnings.
262
263         * BuildTask.cs (Execute): Write exceptions to std err (they should be
264         logged but it's better than swallowing).
265
266 2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
267
268         * ConditionTokenizer.cs: Add Putback ().
269
270         * ConditionParser.cs: Add parsing of functions.
271
272         * ConditionFunctionExpression.cs: Add.
273
274 2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
275
276         * BuildPropertyGroup (SetProperty): Throw an exception when trying to
277         set property in persisted property group.
278
279 2007-01-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
280
281         * BuildTask.cs (Execute): Log errors that happen when invoking ITask
282         .ctor.
283
284         * ConsoleLogger.cs (TargetFinishedHandler)
285         (TaskFinishedHandler): Increment error count.
286
287 2007-01-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
288
289         * BuildItem.cs (RemoveMetadata): Remove from XML.
290         (SetMetadata): Trigger project reevaluation.
291
292 2007-01-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
293
294         * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
295         properties.
296
297 2007-01-23  Marek Sieradzki  <marek.sieradzki@gmail.com>
298
299         * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
300         TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
301         BatchingImpl.cs, BuildProperty.cs: Track API changes.
302
303         * Expression.cs (Parse): Added allowItems parameter and made regexes
304         static.
305
306         * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
307         will try to import a.ext when given a.EXT.
308
309 2007-01-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
310
311         * BuildItemGroup.cs: Store information saying what is the last item
312         group that contains build item name.
313
314         * Project.cs (Build): Pass empty array (build default targets).
315
316 2007-01-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
317
318         * Token.cs: Commented Transform and LiteralSubExpression and added
319         FunctionName token.
320
321         * ConditionParser.cs: Removed redundant casts, rewrote
322         ParseFactorExpression () and added parsing of '!'.
323
324         * ConditionTokenizer.cs: Always skip whitespaces when getting next
325         token (no IgnoreWhiteSpace property). Don't create a token from '->'.
326         Moved ReadChar () in front of all ifs.
327
328 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
329
330         * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
331         from XML. (not to escape items that have parents twice).
332
333 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
334
335         * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
336         (Project): Renamed to ParentProject.
337
338         * BuildItem.cs (ctor)
339         (CopyCustomMetadata): Add null check.
340
341         * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
342         (RemoveProperty): Added null check.
343
344         * TargetCollection.cs (RemoveTarget): Added null check.
345
346         * Engine.cs (UnloadProject): Added null check.
347
348         * GroupingCollection.cs (Remove): Check if removed group belongs to
349         current project.
350
351         * Project.cs (AddNewItem): Implemented.
352         (RemoveItem): Reorganized.
353         (SetProjectExtensions): Added null check.
354
355 2007-01-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
356
357         * BuildItemGroup.cs (Detach): Added.
358         (RemoveItem)
359         (RemoveItemAt): Used Detach ().
360
361         * BuildItem.cs: Made FromXml and HasParent internal and added
362         ParentItem and ParentItemGroup properties (internal).
363         (Detach): Added.
364
365         * GroupingCollection.cs (Remove): Used Detach ().
366
367         * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
368         text on Save ().
369         (GetEvaluatedItemsByNameIgnoringCondition)
370         (GetEvaluatedItemsByName)
371         (GetEvaluatedProperty): Reevaluate if needed.
372         (RemoveItem)
373         (RemoveAllItemGroups)
374         (RemoveAllPropertyGroups): Implemented.
375         (DoLoad): Added closing of TextReader.
376
377 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
378
379         * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
380         change but just mark that it needs it.
381
382         * Project.cs: Reevaluate when it needs reevaluation and one of
383         Evaluated* properties is used.
384
385 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
386
387         * Target.cs: Throw an exception when <OnError> is not last element in
388         target.
389
390         * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
391
392         * TargetCollection.cs: If a target is already there replace it with
393         new target.
394
395         * BuildProperty.cs: Added XmlElement property.
396
397 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
398
399         * ImportCollection.cs: Don't add imports that are already added.
400
401         * BuildItemGroup.cs: MonoTODOs.
402
403         * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
404         condition can't be evaluated to bool.
405
406         * BuildPropertyGroup.cs (Evaluate): Simplify.
407
408 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
409
410         * BuildWhen.cs: Moved BindToXml () code to ctor.
411
412         * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
413         property needed for removing groups.
414
415         * Engine.cs: Added StartBuild () that logs build start when Build ()
416         was first called.
417
418         * GroupingCollection.cs: Added Remove () for item and property groups.
419
420         * Project.cs (AddNewImport): Implemented.
421         (AddNewItemGroup): Implemented.
422         (AddNewPropertyGroup): Implemented.
423         (AddNewUsingTaskFromAssemblyFile): Implemented.
424         (AddNewUsingTaskFromAssemblyName): Implemented.
425         (RemoveItemGroup): Implemented.
426         (RemovePropertyGroup): Implemented.
427
428 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
429
430         * BuildItemGroup.cs (Clear): Remove from XML.
431
432         * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
433         to Project.EvaluatedProperties.
434         (Clear): Remove from XML.
435
436 2007-01-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
437
438         * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
439         reserved property.
440
441 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
442
443         * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
444         Add () calls when processing a project from Import and
445         evaluate_iterator for evaluation.
446
447 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
448
449         * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
450         and prepend relative directory of importing project to full path of
451         imported project.
452
453 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
454
455         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
456         BuildItemGroupCollection.cs, Project.cs: Track API changes.
457
458         * GroupingCollection.cs: Now it needs Project reference so added it.
459
460         * BuildTask.cs: Formatting.
461
462         * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
463
464         * ConditionParser.cs (ParseAndEvaluate): Added.
465
466         * BuildItem.cs: Changed exception message.
467
468 2007-01-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
469
470         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
471         BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
472         GroupingCollection doesn't need Project reference.
473
474         * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
475
476         * BuildItemGroup.cs: Added new readOnly parameter to ctor.
477         (Project.EvaluatedItems is a read only item group.)
478         (ReplaceWith): Added.
479
480         * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
481         global property group causes reevaluation of its project.
482
483         * Project.cs: ProcessXml () is internal and can be "safely" invoked by
484         other classes.
485
486         * OldExpression.cs: Removed.
487
488         * BuildProperty.cs (Evaluate): Simplified.
489
490         * ChangeType.cs (TemporaryTransform): Simplified.
491
492         * BuildItem.cs: There are now 3 types of build items: from XML, having
493         parent from XML, virtual. Added SplitParentItem ().
494
495 2006-12-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
496
497         * Utilities.cs: Added Unescape ().
498
499         * BuildItemGroup.cs, BuildItem.cs: Pass null project to
500         BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
501         groups (at the moment just unescape).
502
503         * Expression.cs (CopyToExpressionList): Unescape strings.
504
505 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
506
507         * Target.cs (ctor): Added ImportedProject argument and removed
508         set_IsImported.
509         (AddNewTask): Implemented.
510
511         * TargetCollection.cs (AddNewTarget): Implemented.
512
513         * Project.cs: Track API changes.
514
515 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
516
517         * Target.cs (Build): Don't throw anything in case of error, just
518         return false.
519
520         * BuildItemGroup.cs (set_Condition): Throw an exception if group is
521         not from XML.
522
523         * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
524         SetMetadata ().
525
526         * BuildProperty.cs (ToString): Throw an exception if property is not
527         from XML.
528         (op_Explicit): Added a null check.
529
530         * Engine.cs: Better error message.
531
532         * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
533         IndexOutOfRangeException.
534
535         * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
536         (MarkProjectAsDirty): Set time.
537
538 2006-12-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
539
540         * BuildItemGroup.cs (Clone): Throw exception.
541
542         * Project.cs (Load): Throw InvalidProjectFileException if anything
543         goes wrong.
544
545 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
546
547         * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
548         and ConvertToITaskItemArray ().
549
550 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
551
552         * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
553         classes that were public in Beta 2 and aren't used.
554
555         * Expression.cs: Added replacement for parsing expressions char by
556         char. It uses regexes to find item/property/metadata references in
557         given text.
558
559         * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
560         Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
561         BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
562
563         * ConditionRelationalExpression.cs: Formatting.
564
565         * OldExpression.cs: Commented everything.
566
567         * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
568         parsing to Expression.
569
570         * BuildItem.cs: Check if project is from XML in set_Condition and
571         set_Exclude.
572
573         * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
574         Project.ctor.
575
576         * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
577         can evaluate expression in CanEvaluateToBool ().
578
579 2006-12-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
580
581         * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
582         which item group is imported.
583
584         * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
585
586 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
587
588         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
589         BuildItemGroupCollection.cs: Little changes related to
590         GroupingCollection.
591
592         * ImportCollection.cs: Use GroupingCollection not an internal list.
593
594         * Import.cs (Evaluate): Split to functions and check if
595         EvaluatedProjectPath is empty.
596
597         * GroupingCollection.cs, Project.cs: Move evaluation to
598         GroupingCollection. Change algorithm to use 2 passes: first for property
599         groups and imports and second for item groups.
600
601 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
602
603         * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
604         BuildItemGroup> not IDictionary.
605
606         * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
607         evaluated to false because we want to add every item to
608         Project.EvaluatedItemsByNameIgnoringCondition.
609
610         * Project.cs (Build): Don't throw an exception just return false.
611         (GetEvaluatedProperty): Avoid NullReferenceException.
612         (SetProjectExtensions): Implemented.
613
614 2006-12-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
615
616         * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
617
618         * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
619         BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
620         Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
621         
622         * ImportCollection.cs: Added a note.
623
624 2006-12-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
625
626         * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
627
628         * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
629         (UsingTask[] array, int index)
630
631         * TaskEngine.cs: Reformatted PublishOutput () and added copying of
632         items to Project.EvaluatedItems in PublishItemGroup ();
633
634         * BuildItemGroup.cs: Added [MonoTODO].
635
636         * UsingTask.cs: Used expression for AssemblyFile to get around
637         problems with '\' and '/'.
638
639         * BuildItem.cs (ctor): Added null checks.
640         (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
641         (SetMetadata): Don't escape evaluatedMetadata and escape
642         unevaluatedMetadata only when treatPropertyValueAsLiteral.
643
644         * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
645         FromXml () instead of null checks.
646         (SetProperty): Escape propertyValue when it is literal.
647
648         * BuildProperty.cs: Changed exception message.
649
650         * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
651         properties.
652         (GetProjectExtensions): Implemented.
653
654 2006-12-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
655
656         * BuildTask.cs: Remove [MonoTODO], add exception throwing in
657         GetParameterValue (), use expressions in ContinueOnError.
658         * ConditionFactorException.cs: Throw InvalidProjectFileException ()
659         instead of InvalidOperationException ().
660         * ImportCollection.cs: Implement CopyTo ().
661         * Target.cs: Remove redundant variables (XmlAttributes), return
662         String.Empty in DependsOnTargets, add a null check in RemoveTask ().
663         * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
664         * Import.cs: Throw an exception when file does not exist.
665         * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
666         * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
667         need to treat item as a token probably
668
669 2006-12-04  Marek Sieradzki  <marek.sieradzki@gmail.com>
670
671         * Import.cs: Check for project.FullFileName (Path.DirectoryName would
672         throw an exception).
673         * BuildItemGroupCollection.cs: Changed exception types.
674
675 2006-10-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
676
677         * Engine.cs: Removed redundant cast.
678         * BuildWhen.cs:
679         * UsingTaskCollection.cs:
680         * ImportCollection:
681         * BuildChoose.cs:
682         * BuildItem.cs:
683         * TargetCollection.cs: Comment unused variable.
684         * ConditionTokenizer.cs: Simplified checking if current token is a
685         keyword.
686         * Target.cs: Removed old code.
687
688 2006-10-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
689
690         * Target.cs: Changed "" to String.Empty.
691         * TaskEngine.cs: Don't try to convert a parameter to specific type if
692         string was evaluated to String.Empty.
693         * InternalLoggerException.cs:
694         * InvalidProjectFileException.cs: Added LinkDemand before
695         GetObjectData ().
696         * ConsoleLogger.cs: Changed "" to String.Empty.
697         * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
698         with change to generics).
699         * Project.cs: Made Build () throw more meaningful exception.
700
701 2006-10-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
702
703         * Target.cs: Reformatted.
704         * TaskEngine.cs: Removed redundant code.
705         * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
706         * Engine.cs: Made BuildProjectFile () load project file if it's not
707         loaded yet.
708
709 2006-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
710
711         * ConditionRelationalExpression.cs: Change comparers to case
712         insensitive.
713         * ImportCollection.cs: Add NotImplementedExceptions.
714         * BuildPropertyGroup.cs: Reformatted a bit.
715         * BuildProperty.cs: The same.
716         * Project.cs: Moved evaluation of imports before evaluation of
717         properties. This may "work" until importing projects is redesigned but
718         probably isn't correct.
719
720 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
721
722         * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
723         (like comments)
724         * BuildItemGroup.cs: Change return to continue.
725
726 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
727
728         * ConditionParser.cs: Copyright note.
729         * ExpressionCollection.cs: Fixed arrays passing.
730
731 2006-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
732
733         * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
734         Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
735         BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
736         TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
737
738 2006-06-25  Marek Sieradzki  <marek.sieradzki@gmail.com>
739
740         * Token.cs: Changed names: removed "than".
741         * ConditionRelationalExpression.cs: Added.
742         * ConditionFactorExpression.cs: Added.
743         * BuildItemGroup.cs: Changed Condition property return value to return
744         String.Empty instead of null.
745         * ConditionParser.cs: Added support for parsing relational expressions
746         and factors.
747         * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
748         abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
749         and CanEvaluateToBool (), CanEvaluateToNumber () and
750         CanEvaluateToString ().
751         * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
752         appropriately to ConditionExpression base class.
753         * ConditionTokenizer.cs: Added null check and changed names in enums:
754         removed "than".
755         * ConditionNotExpression.cs: Added.
756         * BatchingImpl.cs: Changed to use BoolEvaluate ().
757         * Project.cs: Added checks for condition.
758
759 2006-06-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
760
761         * ConditionalTokenizer.cs, ConditionalExpression.cs,
762         ConditionalParser.cs: Changed name,
763         removed -al.
764         * ConditionExpression.cs: Added Evaluate ().
765         * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
766         * BatchingImpl.cs: Added check if task should be executed.
767
768 2006-06-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
769
770         * UsingTask.cs: Changed properties to return null on empty attribute.
771         * UsingTaskCollection.cs: Added object to SyncRoot.
772         * BuildPropertyGroup.cs: Added NotImplementedException throwing.
773
774 2006-06-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
775
776         * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
777         BuildPropertyGroupCollection.cs: Fixed to match the tests.
778
779 2006-05-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
780
781         * Utilities.cs: Implemented Escape ().
782         * BuildItem.cs: Added null checks.
783         * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
784         * Project.cs: Commented out redundant Evaluate ().
785         * BuildChoose.cs: Minor changes.
786
787 2006-05-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
788
789         * Token: Added new few missing tokens.
790         * Target.cs, Project.cs: Patch from Matthew Metnesky.
791         * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
792         ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
793         ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
794         LiteralTokenizer.cs:
795         Removed literal expression parsing based on tokenizer and
796         parser. It needs to be done by regex.
797         
798         Moved tokenizer to ConditionalTokenizer.cs.
799
800 2006-05-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
801
802         * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
803         ItemReference.cs, PropertyReference.cs: Changed name of *Reference
804         methods converting reference to string from ToString () to
805         ConvertToString () to avoid mistakes like using ToString () provided
806         by default.
807
808 2006-05-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
809
810         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
811         Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
812         PropertyReference.cs, BuildProperty.cs: Changed Expression to
813         OldExpression and changed To* functions to one ConvertTo ().
814         * TaskEngine.cs: Fixed PublishOutput ().
815         * OldExpression.cs: Added. It will be temporarily used before
816         LiteralExpression will be written using Tokenizer.
817         * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
818         ExpressionParseException.cs, LiteralExpression.cs: Added.
819
820 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
821
822         * ImportedProject.cs: Removed warning.
823         * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
824         default tasks.
825
826 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
827
828         * Project.cs: Removed unnecessary variable.
829         * Engine.cs: Added fixme.
830
831 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
832
833         * BuildItem.cs: Moved checking if metadata name is reserved to internal
834         class (Mono.XBuild.Utilities.ReservedNameUtils).
835                 
836 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
837
838         * BuildTask.cs: Removed unnecessary variable.
839         * Engine.cs: Added logging of the build start.
840         * Project.cs: Removed unnecessary variable.
841
842 2006-04-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
843
844         * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
845
846 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
847
848         * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
849
850 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
851         
852         * BuildItem.cs: Fix typo?
853
854 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
855
856         * InternalLoggerException.cs, InvalidProjectFileException.cs,
857         Engine.cs, Project.cs: Coding style fixes.
858
859 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
860         
861         * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
862
863 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
864         
865         * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
866         to pass tests. Wrote serialization constructor.
867         * Engine.cs, Project.cs: Global engine and project unloading, test and
868         formatting fixes.
869
870 2006-03-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
871
872         * UsingTask.cs: Formatting changes.
873
874 2006-03-27  Crestez Leonard  <cdleonard@gmail.com>
875
876         * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
877         to lists instead of hashtables.
878         * Import.cs: Cleaned up, moved importing from Project.cs
879         * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
880         * Engine.cs: Cleaned up properties.
881         * Project.cs: Moved importing to Import.cs, cleaned up properties,
882         Separated evaluation and loading.
883         
884 2006-03-21  Crestez Leonard  <cdleonard@gmail.com>
885
886         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
887         BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
888         Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
889         binding and evaluation, merge xml binding in constructors.
890         * DirectoryScanner.cs: Includes CAN be empty.
891         * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
892         * ConsoleLogger.cs: Fix compilation warning.
893
894 2006-03-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
895
896         * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
897
898 2006-03-18  Marek Sieradzki  <marek.sieradzki@gmail.com> 
899
900         * Engine.cs: API cleanup.
901
902 2006-03-18  Crestez Leonard  <cdleonard@gmail.com>
903
904         * Project.cs: Cleaned up add.
905         * Expression.cs: Hacked to transform \ and / to path separators.
906         * BuildPropertyGroup.cs: Small cleanup.
907         * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
908         reference.
909         
910 2006-03-11  Marek Sieradzki  <marek.sieradzki@gmail.com> 
911
912         * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
913         * BuildItem.cs: Updated for new API and fixed crashing on non-existent
914         files.
915         * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
916         BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
917         Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
918         API.
919         * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
920         * TaskElement.cs: Temporarily removed.
921         * Xml.cs: Changed to static.
922
923 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
924
925         * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
926         IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
927         ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
928         IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
929         ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
930         IBuildPropertyGroupCollection.cs: Removed.
931
932 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com> 
933
934         * BuildItem.cs: Removed IBuildItem references.
935         * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
936         IBuildItemGroup references. Changed Evaluate to internal.
937         * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
938         reference and hidden constructors.
939         * BuildProperty.cs: Removed IBuildProperty reference.
940         * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
941         IBuildPropertyGroup references. Changed Evaluate to internal.
942         * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
943         reference and hidden constructors.
944         * ConsoleLogger.cs: Updated names of event handlers.
945         * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
946         Escape. Added UnloadAllProjects () and UnloadProject ().
947         * FileLogger.cs: Removed ApplyParameter ().
948         * GroupingCollection.cs: Hidden.
949         * InvalidProjectFileException.cs: Removed HasBeenLogged property.
950         * ItemPropertyGroupingBase.cs: Commented.
951         * ProcessingPass.cs: Hidden.
952         * Project.cs: Removed IProject reference. Changed CurrentEncoding to
953         Encoding.
954         * Target.cs: Removed ITarget reference.
955         * TargetCollection.cs: Removed ITargetCollection reference.
956         * TaskElement.cs: Removed ITaskElement reference.
957         * TaskEngineAssemblyResolver.cs: Hidden.
958         * Utilities.cs: Made static class, removed CheckPath (),
959         ValidateCulture (), GetSupportedCultures () and added Escape ().
960
961 2006-02-24  Marek Sieradzki <marek.sieradzki@gmail.com> 
962
963         * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
964         API.
965
966 2005-09-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
967
968         * Project.cs: Added MonoTODO attributes.
969         * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
970         ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
971         IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
972         BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
973         SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
974         BuildItemGroup.cs, InvalidProjectFileException.cs,
975         BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
976         Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
977         PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
978         ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
979         IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
980         IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
981         ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
982         ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
983         IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
984         IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
985         BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
986         ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
987
988 2005-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
989
990         * TaskDatabase.cs: Change Shared to Framework.
991         * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
992         CaseInsensitiveHashCodeProvider
993
994 2005-09-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
995
996         * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
997         * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
998         property.
999
1000 2005-09-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
1001
1002         * InternalLoggerException.cs: Changed protected fields to private.
1003
1004 2005-09-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
1005
1006         * Engine.cs: Added check for globalProperties.
1007         * Project.cs: Added using path from importedProject.FullFileName when
1008         adding UsingTask elements.
1009
1010 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
1011
1012         * TaskElement.cs: Changed ReflectedType to PropertyType.
1013         * ChangeType.cs (TransformToString): Changed to pass proper Type to
1014         TemporaryTransform. 
1015
1016 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
1017
1018         * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1019         new property.
1020         * BuildProperty.cs: Organized PropertyType enum.
1021         * Engine.cs: Added setting CommandLine PropertyType of global
1022         properties.
1023
1024 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
1025
1026         * InvalidProjectFileException.cs: Changed Message property.
1027         * ChangeType.cs (TransformToString): Added separator between items.
1028         * TaskEngineAssemblyResolver.cs: Formatting.
1029
1030 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
1031
1032         * DirectoryScanner.cs: Added.
1033         * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1034         * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1035         * Project.cs: Removed Evalute* ().
1036
1037 2005-08-30  Marek Sieradzki  <marek.sieradzki@gmail.com>
1038
1039         * Target.cs: Formatting.
1040         * Expression.cs: Added check if array == null.
1041         * BuildItem.cs: Removed 'break' to remove warnings.
1042         * ConsoleLogger.cs: Formatting.
1043         * Engine.cs: Added handling of default target(s).
1044         * Project.cs: Added handling of default target(s).
1045
1046 2005-08-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
1047
1048         * TaskElement.cs: Added check for parameters.
1049         * Target.cs: Added logging of target skipping.
1050         * Expression.cs: Changed returning object[] to string[], bool[]... in
1051         ToArray ().
1052         * ItemReference.cs: Fixed for item references without custom
1053         separators.
1054         * BatchingImpl.cs: Added real inputs/outputs checking.
1055         * Engine.cs: Moved global properties setting.
1056         * Project.cs: Moved global properties setting.
1057
1058 2005-08-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
1059
1060         * Target.cs: Added checks for target existence.
1061         * BuildItemGroup.cs: Changed to use transforms.
1062         * MetadataReference.cs: Wrote real implementation.
1063         * ItemReference.cs: Rewritten to use transforms.
1064         * BuildItem.cs: Changes for transforms and metadata.
1065         * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1066         formatting.
1067         * Project.cs: Fixed project importing.
1068         * ImportedProject.cs: Changed to throw exceptions instead of returning
1069         bool.
1070
1071 2005-08-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
1072
1073         * Engine.cs: Removed FIXME.
1074         * Project.cs: Splitted ProcessElements and added project importing.
1075         * ImportedProject.cs: Rewritten.
1076
1077 2005-08-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
1078
1079         * TaskElement.cs: Added getting of objects of every type.
1080         * BuildItemGroup.cs: Added ToITaskItemArray ().
1081         * Expression.cs: Implemented part that is not using metadata.
1082         * ItemReference.cs: Implemented parsing item references. Need to fix
1083         validity checking.
1084         * BuildItem.cs: Fixed ToITaskItem ().
1085         * PropertyReference.cs: Implemented parsing property references. This
1086         also needs validity checking.
1087
1088 2005-08-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
1089
1090         * TaskElement.cs: Added Output element handling.
1091         * Target.cs: Cleaned up.
1092         * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1093         * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1094         ItemReference.cs, ChangeType.cs: Added.
1095         * BuildItem.cs: Added creating BuildItem from TaskItem.
1096         * BuildPropertyGroup.cs: Small changes.
1097         * BatchingImpl.cs: Fixed to return real task execution result.
1098         * BuildProperty.cs: Fixed FinalValue property.
1099         * Engine.cs: Reformatted logging.
1100         * Project.cs: Added check to EvaluateProperty.
1101
1102 2005-08-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
1103
1104         * TaskElement.cs: Added part of execution engine.
1105         * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1106         * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1107         * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1108         * BuildItem.cs: Added handling of built-in metadata and referencing
1109         Items by name not FullName.
1110         * BatchingImpl.cs: Added temporary task "batching".
1111         * ConsoleLogger.cs: Added temporary workaround to not show sender.
1112         * Project.cs: Added Evaluate. It will be moved to separate class.
1113
1114 2005-08-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
1115
1116         * EventSource.cs, Engine.cs: Added CriticalEvents.
1117         * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1118         Project.cs: Added some support for items.
1119         * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1120
1121 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
1122
1123         * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1124         of properties.
1125
1126 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
1127
1128         * BatchingImpl.cs: Added.
1129         * BuildWhen.cs, BuildEngine.cs, Target.cs,
1130         BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1131         BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1132         TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1133         GroupingCollection.cs: Updated.
1134
1135 2005-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
1136
1137         * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1138         BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1139         BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1140         BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1141         EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1142         GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1143         InternalLoggerException.cs, InvalidProjectFileException.cs,
1144         ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1145         ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1146         TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1147         TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1148         Initial check-in of implementations.
1149
1150 2005-07-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
1151
1152         * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1153         IBuildItemGroupCollection.cs, IBuildProperty.cs,
1154         IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1155         ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1156         IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1157         IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1158         Initial check-in of interfaces and a syntax file, real classes are
1159         changing a lot so I'll wait a moment with checking them in.