1 2009-01-06 Ankit Jain <jankit@novell.com>
3 * Project.cs (Build): Correctly handle null targetNames argument.
5 2009-01-06 Ankit Jain <jankit@novell.com>
7 * Engine.cs (LogProjectStarted): Add a null check.
9 2009-01-01 Ankit Jain <jankit@novell.com>
11 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
12 * ChangeType (ToBuildItemGroup): Add 'split' param.
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.
28 * BuildPropertyGroup.cs: Track api changes.
29 * TaskEngine.cs (PublishOutput): Improve exception message.
30 * Project.cs (DoLoad): Improve exception message. Add a null check.
32 2008-12-30 Ankit Jain <jankit@novell.com>
34 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
35 metadata values for unqualified references.
36 (BuildItemGroupToITaskItemArray): Rename to ..
37 (BuildItemGroupToITaskItems): .. this.
40 2008-12-18 Ankit Jain <jankit@novell.com>
42 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
44 2008-12-17 Ankit Jain <jankit@novell.com>
46 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
47 only one instance of unique metadata value is required.
49 2008-11-22 Ankit Jain <jankit@novell.com>
51 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
53 * MetadataReference.cs (ConvertToITaskItemArray): New.
54 * Project.cs (GetAllItemGroups): New.
56 2008-11-21 Ankit Jain <jankit@novell.com>
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.
65 * MetadataReference.cs (ConvertToString): New.
67 * Project.cs: Add api for accessing batched items and metadata.
68 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
71 2008-10-01 Ankit Jain <jankit@novell.com>
73 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
74 (BuildProjectFile): If filename is null (project.LoadXml) then use
76 * BuildTask.cs (InitializeTask): Track api change.
77 * Expression.cs (Parse): Skip empty entries in the expression.
79 2008-09-24 Ankit Jain <jankit@novell.com>
81 * Engine.cs: Add argument checks.
82 * Project.cs: Likewise.
84 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
86 * Project.cs (Build): Add outputs to targetOutputs.
88 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
90 * ExpressionCollection.cs (ConvertToArray): Simplify.
92 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
94 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
95 simplified. It still needs tests and refactoring.
97 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
99 * BuildEngine.cs (BuildProjectFile): Don't crash on null
102 * Target.cs: Add Outputs property.
104 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
106 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
107 (). Support condition.
109 * BatchingImpl.cs (BatchBuildTask): Simplify.
111 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
113 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
116 * ConditionFunctionExpression.cs: Removed warnings.
118 * BuildTask.cs (Execute): Write exceptions to std err (they should be
119 logged but it's better than swallowing).
121 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
123 * ConditionTokenizer.cs: Add Putback ().
125 * ConditionParser.cs: Add parsing of functions.
127 * ConditionFunctionExpression.cs: Add.
129 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
131 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
132 set property in persisted property group.
134 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
136 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
139 * ConsoleLogger.cs (TargetFinishedHandler)
140 (TaskFinishedHandler): Increment error count.
142 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
144 * BuildItem.cs (RemoveMetadata): Remove from XML.
145 (SetMetadata): Trigger project reevaluation.
147 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
149 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
152 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
154 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
155 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
156 BatchingImpl.cs, BuildProperty.cs: Track API changes.
158 * Expression.cs (Parse): Added allowItems parameter and made regexes
161 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
162 will try to import a.ext when given a.EXT.
164 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
166 * BuildItemGroup.cs: Store information saying what is the last item
167 group that contains build item name.
169 * Project.cs (Build): Pass empty array (build default targets).
171 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
173 * Token.cs: Commented Transform and LiteralSubExpression and added
176 * ConditionParser.cs: Removed redundant casts, rewrote
177 ParseFactorExpression () and added parsing of '!'.
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.
183 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
185 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
186 from XML. (not to escape items that have parents twice).
188 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
190 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
191 (Project): Renamed to ParentProject.
193 * BuildItem.cs (ctor)
194 (CopyCustomMetadata): Add null check.
196 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
197 (RemoveProperty): Added null check.
199 * TargetCollection.cs (RemoveTarget): Added null check.
201 * Engine.cs (UnloadProject): Added null check.
203 * GroupingCollection.cs (Remove): Check if removed group belongs to
206 * Project.cs (AddNewItem): Implemented.
207 (RemoveItem): Reorganized.
208 (SetProjectExtensions): Added null check.
210 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
212 * BuildItemGroup.cs (Detach): Added.
214 (RemoveItemAt): Used Detach ().
216 * BuildItem.cs: Made FromXml and HasParent internal and added
217 ParentItem and ParentItemGroup properties (internal).
220 * GroupingCollection.cs (Remove): Used Detach ().
222 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
224 (GetEvaluatedItemsByNameIgnoringCondition)
225 (GetEvaluatedItemsByName)
226 (GetEvaluatedProperty): Reevaluate if needed.
228 (RemoveAllItemGroups)
229 (RemoveAllPropertyGroups): Implemented.
230 (DoLoad): Added closing of TextReader.
232 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
234 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
235 change but just mark that it needs it.
237 * Project.cs: Reevaluate when it needs reevaluation and one of
238 Evaluated* properties is used.
240 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
242 * Target.cs: Throw an exception when <OnError> is not last element in
245 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
247 * TargetCollection.cs: If a target is already there replace it with
250 * BuildProperty.cs: Added XmlElement property.
252 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
254 * ImportCollection.cs: Don't add imports that are already added.
256 * BuildItemGroup.cs: MonoTODOs.
258 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
259 condition can't be evaluated to bool.
261 * BuildPropertyGroup.cs (Evaluate): Simplify.
263 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
265 * BuildWhen.cs: Moved BindToXml () code to ctor.
267 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
268 property needed for removing groups.
270 * Engine.cs: Added StartBuild () that logs build start when Build ()
273 * GroupingCollection.cs: Added Remove () for item and property groups.
275 * Project.cs (AddNewImport): Implemented.
276 (AddNewItemGroup): Implemented.
277 (AddNewPropertyGroup): Implemented.
278 (AddNewUsingTaskFromAssemblyFile): Implemented.
279 (AddNewUsingTaskFromAssemblyName): Implemented.
280 (RemoveItemGroup): Implemented.
281 (RemovePropertyGroup): Implemented.
283 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
285 * BuildItemGroup.cs (Clear): Remove from XML.
287 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
288 to Project.EvaluatedProperties.
289 (Clear): Remove from XML.
291 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
293 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
296 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
302 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
304 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
305 and prepend relative directory of importing project to full path of
308 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
310 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
311 BuildItemGroupCollection.cs, Project.cs: Track API changes.
313 * GroupingCollection.cs: Now it needs Project reference so added it.
315 * BuildTask.cs: Formatting.
317 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
319 * ConditionParser.cs (ParseAndEvaluate): Added.
321 * BuildItem.cs: Changed exception message.
323 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
325 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
326 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
327 GroupingCollection doesn't need Project reference.
329 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
331 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
332 (Project.EvaluatedItems is a read only item group.)
333 (ReplaceWith): Added.
335 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
336 global property group causes reevaluation of its project.
338 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
341 * OldExpression.cs: Removed.
343 * BuildProperty.cs (Evaluate): Simplified.
345 * ChangeType.cs (TemporaryTransform): Simplified.
347 * BuildItem.cs: There are now 3 types of build items: from XML, having
348 parent from XML, virtual. Added SplitParentItem ().
350 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
352 * Utilities.cs: Added Unescape ().
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).
358 * Expression.cs (CopyToExpressionList): Unescape strings.
360 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
362 * Target.cs (ctor): Added ImportedProject argument and removed
364 (AddNewTask): Implemented.
366 * TargetCollection.cs (AddNewTarget): Implemented.
368 * Project.cs: Track API changes.
370 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
372 * Target.cs (Build): Don't throw anything in case of error, just
375 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
378 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
381 * BuildProperty.cs (ToString): Throw an exception if property is not
383 (op_Explicit): Added a null check.
385 * Engine.cs: Better error message.
387 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
388 IndexOutOfRangeException.
390 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
391 (MarkProjectAsDirty): Set time.
393 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
395 * BuildItemGroup.cs (Clone): Throw exception.
397 * Project.cs (Load): Throw InvalidProjectFileException if anything
400 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
402 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
403 and ConvertToITaskItemArray ().
405 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
407 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
408 classes that were public in Beta 2 and aren't used.
410 * Expression.cs: Added replacement for parsing expressions char by
411 char. It uses regexes to find item/property/metadata references in
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.
418 * ConditionRelationalExpression.cs: Formatting.
420 * OldExpression.cs: Commented everything.
422 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
423 parsing to Expression.
425 * BuildItem.cs: Check if project is from XML in set_Condition and
428 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
431 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
432 can evaluate expression in CanEvaluateToBool ().
434 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
436 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
437 which item group is imported.
439 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
441 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
443 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
444 BuildItemGroupCollection.cs: Little changes related to
447 * ImportCollection.cs: Use GroupingCollection not an internal list.
449 * Import.cs (Evaluate): Split to functions and check if
450 EvaluatedProjectPath is empty.
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.
456 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
458 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
459 BuildItemGroup> not IDictionary.
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.
465 * Project.cs (Build): Don't throw an exception just return false.
466 (GetEvaluatedProperty): Avoid NullReferenceException.
467 (SetProjectExtensions): Implemented.
469 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
471 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
473 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
474 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
475 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
477 * ImportCollection.cs: Added a note.
479 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
481 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
483 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
484 (UsingTask[] array, int index)
486 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
487 items to Project.EvaluatedItems in PublishItemGroup ();
489 * BuildItemGroup.cs: Added [MonoTODO].
491 * UsingTask.cs: Used expression for AssemblyFile to get around
492 problems with '\' and '/'.
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.
499 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
500 FromXml () instead of null checks.
501 (SetProperty): Escape propertyValue when it is literal.
503 * BuildProperty.cs: Changed exception message.
505 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
507 (GetProjectExtensions): Implemented.
509 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
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
524 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
526 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
528 * BuildItemGroupCollection.cs: Changed exception types.
530 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
532 * Engine.cs: Removed redundant cast.
534 * UsingTaskCollection.cs:
538 * TargetCollection.cs: Comment unused variable.
539 * ConditionTokenizer.cs: Simplified checking if current token is a
541 * Target.cs: Removed old code.
543 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
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
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.
556 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
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
564 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
566 * ConditionRelationalExpression.cs: Change comparers to case
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.
575 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
577 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
579 * BuildItemGroup.cs: Change return to continue.
581 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
583 * ConditionParser.cs: Copyright note.
584 * ExpressionCollection.cs: Fixed arrays passing.
586 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
593 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
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
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:
610 * ConditionNotExpression.cs: Added.
611 * BatchingImpl.cs: Changed to use BoolEvaluate ().
612 * Project.cs: Added checks for condition.
614 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
616 * ConditionalTokenizer.cs, ConditionalExpression.cs,
617 ConditionalParser.cs: Changed name,
619 * ConditionExpression.cs: Added Evaluate ().
620 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
621 * BatchingImpl.cs: Added check if task should be executed.
623 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
625 * UsingTask.cs: Changed properties to return null on empty attribute.
626 * UsingTaskCollection.cs: Added object to SyncRoot.
627 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
629 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
631 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
632 BuildPropertyGroupCollection.cs: Fixed to match the tests.
634 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
642 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
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,
650 Removed literal expression parsing based on tokenizer and
651 parser. It needs to be done by regex.
653 Moved tokenizer to ConditionalTokenizer.cs.
655 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
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
663 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
675 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
677 * ImportedProject.cs: Removed warning.
678 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
681 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
683 * Project.cs: Removed unnecessary variable.
684 * Engine.cs: Added fixme.
686 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
688 * BuildItem.cs: Moved checking if metadata name is reserved to internal
689 class (Mono.XBuild.Utilities.ReservedNameUtils).
691 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
693 * BuildTask.cs: Removed unnecessary variable.
694 * Engine.cs: Added logging of the build start.
695 * Project.cs: Removed unnecessary variable.
697 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
699 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
701 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
703 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
705 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
707 * BuildItem.cs: Fix typo?
709 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
711 * InternalLoggerException.cs, InvalidProjectFileException.cs,
712 Engine.cs, Project.cs: Coding style fixes.
714 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
716 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
718 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
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
725 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
727 * UsingTask.cs: Formatting changes.
729 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
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.
739 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
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.
749 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
751 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
753 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
755 * Engine.cs: API cleanup.
757 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
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
765 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
767 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
768 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
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
774 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
775 * TaskElement.cs: Temporarily removed.
776 * Xml.cs: Changed to static.
778 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
787 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
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
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 ().
816 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
818 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
821 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
843 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
845 * TaskDatabase.cs: Change Shared to Framework.
846 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
847 CaseInsensitiveHashCodeProvider
849 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
851 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
852 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
855 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
857 * InternalLoggerException.cs: Changed protected fields to private.
859 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
861 * Engine.cs: Added check for globalProperties.
862 * Project.cs: Added using path from importedProject.FullFileName when
863 adding UsingTask elements.
865 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
867 * TaskElement.cs: Changed ReflectedType to PropertyType.
868 * ChangeType.cs (TransformToString): Changed to pass proper Type to
871 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
873 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
875 * BuildProperty.cs: Organized PropertyType enum.
876 * Engine.cs: Added setting CommandLine PropertyType of global
879 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
881 * InvalidProjectFileException.cs: Changed Message property.
882 * ChangeType.cs (TransformToString): Added separator between items.
883 * TaskEngineAssemblyResolver.cs: Formatting.
885 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
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* ().
892 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
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).
901 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
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
907 * ItemReference.cs: Fixed for item references without custom
909 * BatchingImpl.cs: Added real inputs/outputs checking.
910 * Engine.cs: Moved global properties setting.
911 * Project.cs: Moved global properties setting.
913 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
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
922 * Project.cs: Fixed project importing.
923 * ImportedProject.cs: Changed to throw exceptions instead of returning
926 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
928 * Engine.cs: Removed FIXME.
929 * Project.cs: Splitted ProcessElements and added project importing.
930 * ImportedProject.cs: Rewritten.
932 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
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
939 * BuildItem.cs: Fixed ToITaskItem ().
940 * PropertyReference.cs: Implemented parsing property references. This
941 also needs validity checking.
943 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
957 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
969 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
976 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
978 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
981 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
990 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
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.
1005 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
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.