63ebefb6a6243e6a35e5cf0d426d3c4138278ae1
[mono.git] / mcs / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / ChangeLog
1 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
2
3         * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
4         from XML. (not to escape items that have parents twice).
5
6 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
7
8         * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
9         (Project): Renamed to ParentProject.
10
11         * BuildItem.cs (ctor)
12         (CopyCustomMetadata): Add null check.
13
14         * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
15         (RemoveProperty): Added null check.
16
17         * TargetCollection.cs (RemoveTarget): Added null check.
18
19         * Engine.cs (UnloadProject): Added null check.
20
21         * GroupingCollection.cs (Remove): Check if removed group belongs to
22         current project.
23
24         * Project.cs (AddNewItem): Implemented.
25         (RemoveItem): Reorganized.
26         (SetProjectExtensions): Added null check.
27
28 2007-01-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
29
30         * BuildItemGroup.cs (Detach): Added.
31         (RemoveItem)
32         (RemoveItemAt): Used Detach ().
33
34         * BuildItem.cs: Made FromXml and HasParent internal and added
35         ParentItem and ParentItemGroup properties (internal).
36         (Detach): Added.
37
38         * GroupingCollection.cs (Remove): Used Detach ().
39
40         * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
41         text on Save ().
42         (GetEvaluatedItemsByNameIgnoringCondition)
43         (GetEvaluatedItemsByName)
44         (GetEvaluatedProperty): Reevaluate if needed.
45         (RemoveItem)
46         (RemoveAllItemGroups)
47         (RemoveAllPropertyGroups): Implemented.
48         (DoLoad): Added closing of TextReader.
49
50 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
51
52         * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
53         change but just mark that it needs it.
54
55         * Project.cs: Reevaluate when it needs reevaluation and one of
56         Evaluated* properties is used.
57
58 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
59
60         * Target.cs: Throw an exception when <OnError> is not last element in
61         target.
62
63         * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
64
65         * TargetCollection.cs: If a target is already there replace it with
66         new target.
67
68         * BuildProperty.cs: Added XmlElement property.
69
70 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
71
72         * ImportCollection.cs: Don't add imports that are already added.
73
74         * BuildItemGroup.cs: MonoTODOs.
75
76         * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
77         condition can't be evaluated to bool.
78
79         * BuildPropertyGroup.cs (Evaluate): Simplify.
80
81 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
82
83         * BuildWhen.cs: Moved BindToXml () code to ctor.
84
85         * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
86         property needed for removing groups.
87
88         * Engine.cs: Added StartBuild () that logs build start when Build ()
89         was first called.
90
91         * GroupingCollection.cs: Added Remove () for item and property groups.
92
93         * Project.cs (AddNewImport): Implemented.
94         (AddNewItemGroup): Implemented.
95         (AddNewPropertyGroup): Implemented.
96         (AddNewUsingTaskFromAssemblyFile): Implemented.
97         (AddNewUsingTaskFromAssemblyName): Implemented.
98         (RemoveItemGroup): Implemented.
99         (RemovePropertyGroup): Implemented.
100
101 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
102
103         * BuildItemGroup.cs (Clear): Remove from XML.
104
105         * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
106         to Project.EvaluatedProperties.
107         (Clear): Remove from XML.
108
109 2007-01-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
110
111         * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
112         reserved property.
113
114 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
115
116         * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
117         Add () calls when processing a project from Import and
118         evaluate_iterator for evaluation.
119
120 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
121
122         * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
123         and prepend relative directory of importing project to full path of
124         imported project.
125
126 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
127
128         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
129         BuildItemGroupCollection.cs, Project.cs: Track API changes.
130
131         * GroupingCollection.cs: Now it needs Project reference so added it.
132
133         * BuildTask.cs: Formatting.
134
135         * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
136
137         * ConditionParser.cs (ParseAndEvaluate): Added.
138
139         * BuildItem.cs: Changed exception message.
140
141 2007-01-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
142
143         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
144         BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
145         GroupingCollection doesn't need Project reference.
146
147         * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
148
149         * BuildItemGroup.cs: Added new readOnly parameter to ctor.
150         (Project.EvaluatedItems is a read only item group.)
151         (ReplaceWith): Added.
152
153         * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
154         global property group causes reevaluation of its project.
155
156         * Project.cs: ProcessXml () is internal and can be "safely" invoked by
157         other classes.
158
159         * OldExpression.cs: Removed.
160
161         * BuildProperty.cs (Evaluate): Simplified.
162
163         * ChangeType.cs (TemporaryTransform): Simplified.
164
165         * BuildItem.cs: There are now 3 types of build items: from XML, having
166         parent from XML, virtual. Added SplitParentItem ().
167
168 2006-12-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
169
170         * Utilities.cs: Added Unescape ().
171
172         * BuildItemGroup.cs, BuildItem.cs: Pass null project to
173         BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
174         groups (at the moment just unescape).
175
176         * Expression.cs (CopyToExpressionList): Unescape strings.
177
178 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
179
180         * Target.cs (ctor): Added ImportedProject argument and removed
181         set_IsImported.
182         (AddNewTask): Implemented.
183
184         * TargetCollection.cs (AddNewTarget): Implemented.
185
186         * Project.cs: Track API changes.
187
188 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
189
190         * Target.cs (Build): Don't throw anything in case of error, just
191         return false.
192
193         * BuildItemGroup.cs (set_Condition): Throw an exception if group is
194         not from XML.
195
196         * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
197         SetMetadata ().
198
199         * BuildProperty.cs (ToString): Throw an exception if property is not
200         from XML.
201         (op_Explicit): Added a null check.
202
203         * Engine.cs: Better error message.
204
205         * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
206         IndexOutOfRangeException.
207
208         * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
209         (MarkProjectAsDirty): Set time.
210
211 2006-12-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
212
213         * BuildItemGroup.cs (Clone): Throw exception.
214
215         * Project.cs (Load): Throw InvalidProjectFileException if anything
216         goes wrong.
217
218 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
219
220         * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
221         and ConvertToITaskItemArray ().
222
223 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
224
225         * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
226         classes that were public in Beta 2 and aren't used.
227
228         * Expression.cs: Added replacement for parsing expressions char by
229         char. It uses regexes to find item/property/metadata references in
230         given text.
231
232         * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
233         Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
234         BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
235
236         * ConditionRelationalExpression.cs: Formatting.
237
238         * OldExpression.cs: Commented everything.
239
240         * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
241         parsing to Expression.
242
243         * BuildItem.cs: Check if project is from XML in set_Condition and
244         set_Exclude.
245
246         * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
247         Project.ctor.
248
249         * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
250         can evaluate expression in CanEvaluateToBool ().
251
252 2006-12-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
253
254         * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
255         which item group is imported.
256
257         * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
258
259 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
260
261         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
262         BuildItemGroupCollection.cs: Little changes related to
263         GroupingCollection.
264
265         * ImportCollection.cs: Use GroupingCollection not an internal list.
266
267         * Import.cs (Evaluate): Split to functions and check if
268         EvaluatedProjectPath is empty.
269
270         * GroupingCollection.cs, Project.cs: Move evaluation to
271         GroupingCollection. Change algorithm to use 2 passes: first for property
272         groups and imports and second for item groups.
273
274 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
275
276         * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
277         BuildItemGroup> not IDictionary.
278
279         * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
280         evaluated to false because we want to add every item to
281         Project.EvaluatedItemsByNameIgnoringCondition.
282
283         * Project.cs (Build): Don't throw an exception just return false.
284         (GetEvaluatedProperty): Avoid NullReferenceException.
285         (SetProjectExtensions): Implemented.
286
287 2006-12-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
288
289         * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
290
291         * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
292         BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
293         Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
294         
295         * ImportCollection.cs: Added a note.
296
297 2006-12-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
298
299         * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
300
301         * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
302         (UsingTask[] array, int index)
303
304         * TaskEngine.cs: Reformatted PublishOutput () and added copying of
305         items to Project.EvaluatedItems in PublishItemGroup ();
306
307         * BuildItemGroup.cs: Added [MonoTODO].
308
309         * UsingTask.cs: Used expression for AssemblyFile to get around
310         problems with '\' and '/'.
311
312         * BuildItem.cs (ctor): Added null checks.
313         (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
314         (SetMetadata): Don't escape evaluatedMetadata and escape
315         unevaluatedMetadata only when treatPropertyValueAsLiteral.
316
317         * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
318         FromXml () instead of null checks.
319         (SetProperty): Escape propertyValue when it is literal.
320
321         * BuildProperty.cs: Changed exception message.
322
323         * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
324         properties.
325         (GetProjectExtensions): Implemented.
326
327 2006-12-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
328
329         * BuildTask.cs: Remove [MonoTODO], add exception throwing in
330         GetParameterValue (), use expressions in ContinueOnError.
331         * ConditionFactorException.cs: Throw InvalidProjectFileException ()
332         instead of InvalidOperationException ().
333         * ImportCollection.cs: Implement CopyTo ().
334         * Target.cs: Remove redundant variables (XmlAttributes), return
335         String.Empty in DependsOnTargets, add a null check in RemoveTask ().
336         * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
337         * Import.cs: Throw an exception when file does not exist.
338         * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
339         * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
340         need to treat item as a token probably
341
342 2006-12-04  Marek Sieradzki  <marek.sieradzki@gmail.com>
343
344         * Import.cs: Check for project.FullFileName (Path.DirectoryName would
345         throw an exception).
346         * BuildItemGroupCollection.cs: Changed exception types.
347
348 2006-10-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
349
350         * Engine.cs: Removed redundant cast.
351         * BuildWhen.cs:
352         * UsingTaskCollection.cs:
353         * ImportCollection:
354         * BuildChoose.cs:
355         * BuildItem.cs:
356         * TargetCollection.cs: Comment unused variable.
357         * ConditionTokenizer.cs: Simplified checking if current token is a
358         keyword.
359         * Target.cs: Removed old code.
360
361 2006-10-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
362
363         * Target.cs: Changed "" to String.Empty.
364         * TaskEngine.cs: Don't try to convert a parameter to specific type if
365         string was evaluated to String.Empty.
366         * InternalLoggerException.cs:
367         * InvalidProjectFileException.cs: Added LinkDemand before
368         GetObjectData ().
369         * ConsoleLogger.cs: Changed "" to String.Empty.
370         * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
371         with change to generics).
372         * Project.cs: Made Build () throw more meaningful exception.
373
374 2006-10-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
375
376         * Target.cs: Reformatted.
377         * TaskEngine.cs: Removed redundant code.
378         * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
379         * Engine.cs: Made BuildProjectFile () load project file if it's not
380         loaded yet.
381
382 2006-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
383
384         * ConditionRelationalExpression.cs: Change comparers to case
385         insensitive.
386         * ImportCollection.cs: Add NotImplementedExceptions.
387         * BuildPropertyGroup.cs: Reformatted a bit.
388         * BuildProperty.cs: The same.
389         * Project.cs: Moved evaluation of imports before evaluation of
390         properties. This may "work" until importing projects is redesigned but
391         probably isn't correct.
392
393 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
394
395         * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
396         (like comments)
397         * BuildItemGroup.cs: Change return to continue.
398
399 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
400
401         * ConditionParser.cs: Copyright note.
402         * ExpressionCollection.cs: Fixed arrays passing.
403
404 2006-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
405
406         * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
407         Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
408         BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
409         TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
410
411 2006-06-25  Marek Sieradzki  <marek.sieradzki@gmail.com>
412
413         * Token.cs: Changed names: removed "than".
414         * ConditionRelationalExpression.cs: Added.
415         * ConditionFactorExpression.cs: Added.
416         * BuildItemGroup.cs: Changed Condition property return value to return
417         String.Empty instead of null.
418         * ConditionParser.cs: Added support for parsing relational expressions
419         and factors.
420         * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
421         abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
422         and CanEvaluateToBool (), CanEvaluateToNumber () and
423         CanEvaluateToString ().
424         * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
425         appropriately to ConditionExpression base class.
426         * ConditionTokenizer.cs: Added null check and changed names in enums:
427         removed "than".
428         * ConditionNotExpression.cs: Added.
429         * BatchingImpl.cs: Changed to use BoolEvaluate ().
430         * Project.cs: Added checks for condition.
431
432 2006-06-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
433
434         * ConditionalTokenizer.cs, ConditionalExpression.cs,
435         ConditionalParser.cs: Changed name,
436         removed -al.
437         * ConditionExpression.cs: Added Evaluate ().
438         * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
439         * BatchingImpl.cs: Added check if task should be executed.
440
441 2006-06-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
442
443         * UsingTask.cs: Changed properties to return null on empty attribute.
444         * UsingTaskCollection.cs: Added object to SyncRoot.
445         * BuildPropertyGroup.cs: Added NotImplementedException throwing.
446
447 2006-06-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
448
449         * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
450         BuildPropertyGroupCollection.cs: Fixed to match the tests.
451
452 2006-05-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
453
454         * Utilities.cs: Implemented Escape ().
455         * BuildItem.cs: Added null checks.
456         * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
457         * Project.cs: Commented out redundant Evaluate ().
458         * BuildChoose.cs: Minor changes.
459
460 2006-05-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
461
462         * Token: Added new few missing tokens.
463         * Target.cs, Project.cs: Patch from Matthew Metnesky.
464         * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
465         ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
466         ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
467         LiteralTokenizer.cs:
468         Removed literal expression parsing based on tokenizer and
469         parser. It needs to be done by regex.
470         
471         Moved tokenizer to ConditionalTokenizer.cs.
472
473 2006-05-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
474
475         * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
476         ItemReference.cs, PropertyReference.cs: Changed name of *Reference
477         methods converting reference to string from ToString () to
478         ConvertToString () to avoid mistakes like using ToString () provided
479         by default.
480
481 2006-05-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
482
483         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
484         Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
485         PropertyReference.cs, BuildProperty.cs: Changed Expression to
486         OldExpression and changed To* functions to one ConvertTo ().
487         * TaskEngine.cs: Fixed PublishOutput ().
488         * OldExpression.cs: Added. It will be temporarily used before
489         LiteralExpression will be written using Tokenizer.
490         * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
491         ExpressionParseException.cs, LiteralExpression.cs: Added.
492
493 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
494
495         * ImportedProject.cs: Removed warning.
496         * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
497         default tasks.
498
499 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
500
501         * Project.cs: Removed unnecessary variable.
502         * Engine.cs: Added fixme.
503
504 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
505
506         * BuildItem.cs: Moved checking if metadata name is reserved to internal
507         class (Mono.XBuild.Utilities.ReservedNameUtils).
508                 
509 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
510
511         * BuildTask.cs: Removed unnecessary variable.
512         * Engine.cs: Added logging of the build start.
513         * Project.cs: Removed unnecessary variable.
514
515 2006-04-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
516
517         * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
518
519 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
520
521         * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
522
523 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
524         
525         * BuildItem.cs: Fix typo?
526
527 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
528
529         * InternalLoggerException.cs, InvalidProjectFileException.cs,
530         Engine.cs, Project.cs: Coding style fixes.
531
532 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
533         
534         * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
535
536 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
537         
538         * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
539         to pass tests. Wrote serialization constructor.
540         * Engine.cs, Project.cs: Global engine and project unloading, test and
541         formatting fixes.
542
543 2006-03-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
544
545         * UsingTask.cs: Formatting changes.
546
547 2006-03-27  Crestez Leonard  <cdleonard@gmail.com>
548
549         * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
550         to lists instead of hashtables.
551         * Import.cs: Cleaned up, moved importing from Project.cs
552         * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
553         * Engine.cs: Cleaned up properties.
554         * Project.cs: Moved importing to Import.cs, cleaned up properties,
555         Separated evaluation and loading.
556         
557 2006-03-21  Crestez Leonard  <cdleonard@gmail.com>
558
559         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
560         BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
561         Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
562         binding and evaluation, merge xml binding in constructors.
563         * DirectoryScanner.cs: Includes CAN be empty.
564         * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
565         * ConsoleLogger.cs: Fix compilation warning.
566
567 2006-03-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
568
569         * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
570
571 2006-03-18  Marek Sieradzki  <marek.sieradzki@gmail.com> 
572
573         * Engine.cs: API cleanup.
574
575 2006-03-18  Crestez Leonard  <cdleonard@gmail.com>
576
577         * Project.cs: Cleaned up add.
578         * Expression.cs: Hacked to transform \ and / to path separators.
579         * BuildPropertyGroup.cs: Small cleanup.
580         * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
581         reference.
582         
583 2006-03-11  Marek Sieradzki  <marek.sieradzki@gmail.com> 
584
585         * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
586         * BuildItem.cs: Updated for new API and fixed crashing on non-existent
587         files.
588         * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
589         BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
590         Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
591         API.
592         * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
593         * TaskElement.cs: Temporarily removed.
594         * Xml.cs: Changed to static.
595
596 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
597
598         * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
599         IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
600         ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
601         IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
602         ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
603         IBuildPropertyGroupCollection.cs: Removed.
604
605 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com> 
606
607         * BuildItem.cs: Removed IBuildItem references.
608         * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
609         IBuildItemGroup references. Changed Evaluate to internal.
610         * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
611         reference and hidden constructors.
612         * BuildProperty.cs: Removed IBuildProperty reference.
613         * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
614         IBuildPropertyGroup references. Changed Evaluate to internal.
615         * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
616         reference and hidden constructors.
617         * ConsoleLogger.cs: Updated names of event handlers.
618         * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
619         Escape. Added UnloadAllProjects () and UnloadProject ().
620         * FileLogger.cs: Removed ApplyParameter ().
621         * GroupingCollection.cs: Hidden.
622         * InvalidProjectFileException.cs: Removed HasBeenLogged property.
623         * ItemPropertyGroupingBase.cs: Commented.
624         * ProcessingPass.cs: Hidden.
625         * Project.cs: Removed IProject reference. Changed CurrentEncoding to
626         Encoding.
627         * Target.cs: Removed ITarget reference.
628         * TargetCollection.cs: Removed ITargetCollection reference.
629         * TaskElement.cs: Removed ITaskElement reference.
630         * TaskEngineAssemblyResolver.cs: Hidden.
631         * Utilities.cs: Made static class, removed CheckPath (),
632         ValidateCulture (), GetSupportedCultures () and added Escape ().
633
634 2006-02-24  Marek Sieradzki <marek.sieradzki@gmail.com> 
635
636         * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
637         API.
638
639 2005-09-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
640
641         * Project.cs: Added MonoTODO attributes.
642         * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
643         ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
644         IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
645         BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
646         SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
647         BuildItemGroup.cs, InvalidProjectFileException.cs,
648         BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
649         Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
650         PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
651         ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
652         IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
653         IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
654         ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
655         ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
656         IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
657         IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
658         BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
659         ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
660
661 2005-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
662
663         * TaskDatabase.cs: Change Shared to Framework.
664         * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
665         CaseInsensitiveHashCodeProvider
666
667 2005-09-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
668
669         * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
670         * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
671         property.
672
673 2005-09-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
674
675         * InternalLoggerException.cs: Changed protected fields to private.
676
677 2005-09-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
678
679         * Engine.cs: Added check for globalProperties.
680         * Project.cs: Added using path from importedProject.FullFileName when
681         adding UsingTask elements.
682
683 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
684
685         * TaskElement.cs: Changed ReflectedType to PropertyType.
686         * ChangeType.cs (TransformToString): Changed to pass proper Type to
687         TemporaryTransform. 
688
689 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
690
691         * BuildPropertyGroup.cs: Added check for PropertyType when adding a
692         new property.
693         * BuildProperty.cs: Organized PropertyType enum.
694         * Engine.cs: Added setting CommandLine PropertyType of global
695         properties.
696
697 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
698
699         * InvalidProjectFileException.cs: Changed Message property.
700         * ChangeType.cs (TransformToString): Added separator between items.
701         * TaskEngineAssemblyResolver.cs: Formatting.
702
703 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
704
705         * DirectoryScanner.cs: Added.
706         * BuildItem.cs: Moved file scanning code to DirectoryScanner.
707         * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
708         * Project.cs: Removed Evalute* ().
709
710 2005-08-30  Marek Sieradzki  <marek.sieradzki@gmail.com>
711
712         * Target.cs: Formatting.
713         * Expression.cs: Added check if array == null.
714         * BuildItem.cs: Removed 'break' to remove warnings.
715         * ConsoleLogger.cs: Formatting.
716         * Engine.cs: Added handling of default target(s).
717         * Project.cs: Added handling of default target(s).
718
719 2005-08-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
720
721         * TaskElement.cs: Added check for parameters.
722         * Target.cs: Added logging of target skipping.
723         * Expression.cs: Changed returning object[] to string[], bool[]... in
724         ToArray ().
725         * ItemReference.cs: Fixed for item references without custom
726         separators.
727         * BatchingImpl.cs: Added real inputs/outputs checking.
728         * Engine.cs: Moved global properties setting.
729         * Project.cs: Moved global properties setting.
730
731 2005-08-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
732
733         * Target.cs: Added checks for target existence.
734         * BuildItemGroup.cs: Changed to use transforms.
735         * MetadataReference.cs: Wrote real implementation.
736         * ItemReference.cs: Rewritten to use transforms.
737         * BuildItem.cs: Changes for transforms and metadata.
738         * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
739         formatting.
740         * Project.cs: Fixed project importing.
741         * ImportedProject.cs: Changed to throw exceptions instead of returning
742         bool.
743
744 2005-08-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
745
746         * Engine.cs: Removed FIXME.
747         * Project.cs: Splitted ProcessElements and added project importing.
748         * ImportedProject.cs: Rewritten.
749
750 2005-08-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
751
752         * TaskElement.cs: Added getting of objects of every type.
753         * BuildItemGroup.cs: Added ToITaskItemArray ().
754         * Expression.cs: Implemented part that is not using metadata.
755         * ItemReference.cs: Implemented parsing item references. Need to fix
756         validity checking.
757         * BuildItem.cs: Fixed ToITaskItem ().
758         * PropertyReference.cs: Implemented parsing property references. This
759         also needs validity checking.
760
761 2005-08-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
762
763         * TaskElement.cs: Added Output element handling.
764         * Target.cs: Cleaned up.
765         * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
766         * Expression.cs, MetadataReference.cs, PropertyReference.cs,
767         ItemReference.cs, ChangeType.cs: Added.
768         * BuildItem.cs: Added creating BuildItem from TaskItem.
769         * BuildPropertyGroup.cs: Small changes.
770         * BatchingImpl.cs: Fixed to return real task execution result.
771         * BuildProperty.cs: Fixed FinalValue property.
772         * Engine.cs: Reformatted logging.
773         * Project.cs: Added check to EvaluateProperty.
774
775 2005-08-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
776
777         * TaskElement.cs: Added part of execution engine.
778         * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
779         * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
780         * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
781         * BuildItem.cs: Added handling of built-in metadata and referencing
782         Items by name not FullName.
783         * BatchingImpl.cs: Added temporary task "batching".
784         * ConsoleLogger.cs: Added temporary workaround to not show sender.
785         * Project.cs: Added Evaluate. It will be moved to separate class.
786
787 2005-08-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
788
789         * EventSource.cs, Engine.cs: Added CriticalEvents.
790         * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
791         Project.cs: Added some support for items.
792         * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
793
794 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
795
796         * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
797         of properties.
798
799 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
800
801         * BatchingImpl.cs: Added.
802         * BuildWhen.cs, BuildEngine.cs, Target.cs,
803         BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
804         BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
805         TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
806         GroupingCollection.cs: Updated.
807
808 2005-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
809
810         * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
811         BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
812         BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
813         BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
814         EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
815         GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
816         InternalLoggerException.cs, InvalidProjectFileException.cs,
817         ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
818         ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
819         TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
820         TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
821         Initial check-in of implementations.
822
823 2005-07-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
824
825         * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
826         IBuildItemGroupCollection.cs, IBuildProperty.cs,
827         IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
828         ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
829         IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
830         IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
831         Initial check-in of interfaces and a syntax file, real classes are
832         changing a lot so I'll wait a moment with checking them in.