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