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