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