1 2009-03-27 Jonathan Chambers <joncham@gmail.com>
3 * BuildWhen.cs: Add basic implementation.
4 * BuildChoose.cs: Add basic implementation.
5 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
6 EvaluatedItemsIgnoringCondition.
7 * GroupingCollection.cs: Add evaluation of BuildChoose items.
9 2009-03-26 Jonathan Chambers <joncham@gmail.com>
11 * TaskDatabase.cs (RegisterTask): Search for class by name
12 if task was not found using GetType (which uses namespace).
14 2009-02-26 Ankit Jain <jankit@novell.com>
16 * Target.cs: Handle target with no tasks. Log errors.
18 2009-02-24 Ankit Jain <jankit@novell.com>
20 Lazily load UsingTask tasks.
21 * UsingTask.cs (Evaluate): Register 'this' with task database,
22 but don't load it yet. Register only if condition evaluates to true.
23 Move the load logic to ..
24 (Load): .. here. Register with the specified task database.
25 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
26 in a table keyed by task name, but don't load it yet.
27 (GetTypeFromClassName): Try to load UsingTask if task is not already
28 loaded. Move loading logic to ..
29 (GetTypeFromClassNameInternal): .. here.
30 (CopyTasks): Copy the usingTasks table also.
32 2009-02-23 Ankit Jain <jankit@novell.com>
34 * BuildItem.cs (AddMetadata): Allow overwriting older values.
36 2009-02-22 Ankit Jain <jankit@novell.com>
38 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
39 instead of XmlElement. Eg. XmlComment
41 2009-02-21 Ankit Jain <jankit@novell.com>
43 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
44 * Project.cs (Load): Use FromMSBuildPath on the path.
45 (InitializeProperties): Set "MSBuildToolsPath" also.
47 2009-02-20 Ankit Jain <jankit@novell.com>
50 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
51 transforms) in conditions.
52 * ConditionParser.cs: Parse unquoted item, property references.
53 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
54 * Token.cs (Token.ToString): Override.
55 (TokenType.Transform): Uncomment.
57 2009-02-12 Jonathan Chambers <joncham@gmail.com>
59 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
60 no XmlElement.InnerText. This allows properties to be additional
63 2009-02-01 Ankit Jain <jankit@novell.com>
65 * BuildEngine.cs (BuildProjectFile): Use
66 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
67 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
68 built. Move logging of project start/finish to ..
69 * Project.cs: .. here. Build a target only if hasn't been built already.
70 Keep track of target outputs, and return those even if an already built
71 target has been invoked again.
72 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
74 2009-01-31 Ankit Jain <jankit@novell.com>
76 * BatchingImpl.cs: Split into ..
77 * BatchingImplBase.cs: .. this,
78 * TaskBatchingImpl.cs: .. this ..
79 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
81 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
82 (Log*): Move to TargetBatchingImpl .
86 2009-01-30 Ankit Jain <jankit@novell.com>
88 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
91 2009-01-29 Ankit Jain <jankit@novell.com>
93 * BuildItem.cs (child_items): Change type from BuildItemGroup to
95 (HasParent): Rename to ..
96 (HasParentItem): .. this.
97 (ParentItemGroup): Add setter.
99 * BuildItemGroup.cs (.ctor): Add overload with @project param.
101 (AddItem): Correctly set the ParentItemGroup for new build items.
102 (ParentProject): Add setter.
103 * Project.cs: Set the project for new BuildItemGroup instances.
104 * TaskEngine.cs (PublishItemGroup): Likewise.
106 2009-01-06 Ankit Jain <jankit@novell.com>
108 * Project.cs (Build): Honor InitialTargets list.
110 2009-01-06 Ankit Jain <jankit@novell.com>
112 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
113 the property type also.
114 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
117 2009-01-06 Ankit Jain <jankit@novell.com>
119 * Project.cs (Build): Correctly handle null targetNames argument.
121 2009-01-06 Ankit Jain <jankit@novell.com>
123 * Engine.cs (LogProjectStarted): Add a null check.
125 2009-01-01 Ankit Jain <jankit@novell.com>
127 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
128 * ChangeType (ToBuildItemGroup): Add 'split' param.
130 * Expression.cs (Parse): Add a new overload with a 'split' param.
131 * ExpressionCollection.cs (Add): Add new overload for IReference,
132 remove the ones for Item/Metadata/PropertyReference.
133 (ConvertToArray): Implement correctly.
134 (ConvertToString): Track api changes.
135 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
136 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
137 (AddItemsToArray): New.
138 (ConvertToITaskItemArrayFromString): Refactor a bit.
139 (ThrowCantConcatError): New.
140 * ItemReference.cs: Update.
141 * MetadataReference.cs: Update.
142 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
144 * BuildPropertyGroup.cs: Track api changes.
145 * TaskEngine.cs (PublishOutput): Improve exception message.
146 * Project.cs (DoLoad): Improve exception message. Add a null check.
148 2008-12-30 Ankit Jain <jankit@novell.com>
150 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
151 metadata values for unqualified references.
152 (BuildItemGroupToITaskItemArray): Rename to ..
153 (BuildItemGroupToITaskItems): .. this.
156 2008-12-18 Ankit Jain <jankit@novell.com>
158 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
160 2008-12-17 Ankit Jain <jankit@novell.com>
162 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
163 only one instance of unique metadata value is required.
165 2008-11-22 Ankit Jain <jankit@novell.com>
167 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
169 * MetadataReference.cs (ConvertToITaskItemArray): New.
170 * Project.cs (GetAllItemGroups): New.
172 2008-11-21 Ankit Jain <jankit@novell.com>
174 * BatchingImpl.cs: Add task batching implementation.
175 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
176 * ExpressionCollection.cs (Count): New.
177 (ConvertToString): Handle MetadataReference.
178 * ItemReference.cs (ConvertToString):
179 (ConvertToITaskItemArray): Use the batching api.
181 * MetadataReference.cs (ConvertToString): New.
183 * Project.cs: Add api for accessing batched items and metadata.
184 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
187 2008-10-01 Ankit Jain <jankit@novell.com>
189 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
190 (BuildProjectFile): If filename is null (project.LoadXml) then use
192 * BuildTask.cs (InitializeTask): Track api change.
193 * Expression.cs (Parse): Skip empty entries in the expression.
195 2008-09-24 Ankit Jain <jankit@novell.com>
197 * Engine.cs: Add argument checks.
198 * Project.cs: Likewise.
200 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
202 * Project.cs (Build): Add outputs to targetOutputs.
204 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
206 * ExpressionCollection.cs (ConvertToArray): Simplify.
208 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
210 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
211 simplified. It still needs tests and refactoring.
213 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
215 * BuildEngine.cs (BuildProjectFile): Don't crash on null
218 * Target.cs: Add Outputs property.
220 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
222 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
223 (). Support condition.
225 * BatchingImpl.cs (BatchBuildTask): Simplify.
227 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
229 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
232 * ConditionFunctionExpression.cs: Removed warnings.
234 * BuildTask.cs (Execute): Write exceptions to std err (they should be
235 logged but it's better than swallowing).
237 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
239 * ConditionTokenizer.cs: Add Putback ().
241 * ConditionParser.cs: Add parsing of functions.
243 * ConditionFunctionExpression.cs: Add.
245 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
247 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
248 set property in persisted property group.
250 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
252 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
255 * ConsoleLogger.cs (TargetFinishedHandler)
256 (TaskFinishedHandler): Increment error count.
258 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
260 * BuildItem.cs (RemoveMetadata): Remove from XML.
261 (SetMetadata): Trigger project reevaluation.
263 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
265 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
268 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
270 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
271 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
272 BatchingImpl.cs, BuildProperty.cs: Track API changes.
274 * Expression.cs (Parse): Added allowItems parameter and made regexes
277 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
278 will try to import a.ext when given a.EXT.
280 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
282 * BuildItemGroup.cs: Store information saying what is the last item
283 group that contains build item name.
285 * Project.cs (Build): Pass empty array (build default targets).
287 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
289 * Token.cs: Commented Transform and LiteralSubExpression and added
292 * ConditionParser.cs: Removed redundant casts, rewrote
293 ParseFactorExpression () and added parsing of '!'.
295 * ConditionTokenizer.cs: Always skip whitespaces when getting next
296 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
297 Moved ReadChar () in front of all ifs.
299 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
301 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
302 from XML. (not to escape items that have parents twice).
304 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
306 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
307 (Project): Renamed to ParentProject.
309 * BuildItem.cs (ctor)
310 (CopyCustomMetadata): Add null check.
312 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
313 (RemoveProperty): Added null check.
315 * TargetCollection.cs (RemoveTarget): Added null check.
317 * Engine.cs (UnloadProject): Added null check.
319 * GroupingCollection.cs (Remove): Check if removed group belongs to
322 * Project.cs (AddNewItem): Implemented.
323 (RemoveItem): Reorganized.
324 (SetProjectExtensions): Added null check.
326 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
328 * BuildItemGroup.cs (Detach): Added.
330 (RemoveItemAt): Used Detach ().
332 * BuildItem.cs: Made FromXml and HasParent internal and added
333 ParentItem and ParentItemGroup properties (internal).
336 * GroupingCollection.cs (Remove): Used Detach ().
338 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
340 (GetEvaluatedItemsByNameIgnoringCondition)
341 (GetEvaluatedItemsByName)
342 (GetEvaluatedProperty): Reevaluate if needed.
344 (RemoveAllItemGroups)
345 (RemoveAllPropertyGroups): Implemented.
346 (DoLoad): Added closing of TextReader.
348 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
350 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
351 change but just mark that it needs it.
353 * Project.cs: Reevaluate when it needs reevaluation and one of
354 Evaluated* properties is used.
356 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
358 * Target.cs: Throw an exception when <OnError> is not last element in
361 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
363 * TargetCollection.cs: If a target is already there replace it with
366 * BuildProperty.cs: Added XmlElement property.
368 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
370 * ImportCollection.cs: Don't add imports that are already added.
372 * BuildItemGroup.cs: MonoTODOs.
374 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
375 condition can't be evaluated to bool.
377 * BuildPropertyGroup.cs (Evaluate): Simplify.
379 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
381 * BuildWhen.cs: Moved BindToXml () code to ctor.
383 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
384 property needed for removing groups.
386 * Engine.cs: Added StartBuild () that logs build start when Build ()
389 * GroupingCollection.cs: Added Remove () for item and property groups.
391 * Project.cs (AddNewImport): Implemented.
392 (AddNewItemGroup): Implemented.
393 (AddNewPropertyGroup): Implemented.
394 (AddNewUsingTaskFromAssemblyFile): Implemented.
395 (AddNewUsingTaskFromAssemblyName): Implemented.
396 (RemoveItemGroup): Implemented.
397 (RemovePropertyGroup): Implemented.
399 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
401 * BuildItemGroup.cs (Clear): Remove from XML.
403 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
404 to Project.EvaluatedProperties.
405 (Clear): Remove from XML.
407 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
409 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
412 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
414 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
415 Add () calls when processing a project from Import and
416 evaluate_iterator for evaluation.
418 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
420 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
421 and prepend relative directory of importing project to full path of
424 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
426 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
427 BuildItemGroupCollection.cs, Project.cs: Track API changes.
429 * GroupingCollection.cs: Now it needs Project reference so added it.
431 * BuildTask.cs: Formatting.
433 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
435 * ConditionParser.cs (ParseAndEvaluate): Added.
437 * BuildItem.cs: Changed exception message.
439 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
441 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
442 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
443 GroupingCollection doesn't need Project reference.
445 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
447 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
448 (Project.EvaluatedItems is a read only item group.)
449 (ReplaceWith): Added.
451 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
452 global property group causes reevaluation of its project.
454 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
457 * OldExpression.cs: Removed.
459 * BuildProperty.cs (Evaluate): Simplified.
461 * ChangeType.cs (TemporaryTransform): Simplified.
463 * BuildItem.cs: There are now 3 types of build items: from XML, having
464 parent from XML, virtual. Added SplitParentItem ().
466 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
468 * Utilities.cs: Added Unescape ().
470 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
471 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
472 groups (at the moment just unescape).
474 * Expression.cs (CopyToExpressionList): Unescape strings.
476 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
478 * Target.cs (ctor): Added ImportedProject argument and removed
480 (AddNewTask): Implemented.
482 * TargetCollection.cs (AddNewTarget): Implemented.
484 * Project.cs: Track API changes.
486 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
488 * Target.cs (Build): Don't throw anything in case of error, just
491 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
494 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
497 * BuildProperty.cs (ToString): Throw an exception if property is not
499 (op_Explicit): Added a null check.
501 * Engine.cs: Better error message.
503 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
504 IndexOutOfRangeException.
506 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
507 (MarkProjectAsDirty): Set time.
509 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
511 * BuildItemGroup.cs (Clone): Throw exception.
513 * Project.cs (Load): Throw InvalidProjectFileException if anything
516 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
518 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
519 and ConvertToITaskItemArray ().
521 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
523 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
524 classes that were public in Beta 2 and aren't used.
526 * Expression.cs: Added replacement for parsing expressions char by
527 char. It uses regexes to find item/property/metadata references in
530 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
531 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
532 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
534 * ConditionRelationalExpression.cs: Formatting.
536 * OldExpression.cs: Commented everything.
538 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
539 parsing to Expression.
541 * BuildItem.cs: Check if project is from XML in set_Condition and
544 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
547 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
548 can evaluate expression in CanEvaluateToBool ().
550 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
552 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
553 which item group is imported.
555 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
557 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
559 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
560 BuildItemGroupCollection.cs: Little changes related to
563 * ImportCollection.cs: Use GroupingCollection not an internal list.
565 * Import.cs (Evaluate): Split to functions and check if
566 EvaluatedProjectPath is empty.
568 * GroupingCollection.cs, Project.cs: Move evaluation to
569 GroupingCollection. Change algorithm to use 2 passes: first for property
570 groups and imports and second for item groups.
572 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
574 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
575 BuildItemGroup> not IDictionary.
577 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
578 evaluated to false because we want to add every item to
579 Project.EvaluatedItemsByNameIgnoringCondition.
581 * Project.cs (Build): Don't throw an exception just return false.
582 (GetEvaluatedProperty): Avoid NullReferenceException.
583 (SetProjectExtensions): Implemented.
585 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
587 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
589 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
590 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
591 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
593 * ImportCollection.cs: Added a note.
595 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
597 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
599 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
600 (UsingTask[] array, int index)
602 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
603 items to Project.EvaluatedItems in PublishItemGroup ();
605 * BuildItemGroup.cs: Added [MonoTODO].
607 * UsingTask.cs: Used expression for AssemblyFile to get around
608 problems with '\' and '/'.
610 * BuildItem.cs (ctor): Added null checks.
611 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
612 (SetMetadata): Don't escape evaluatedMetadata and escape
613 unevaluatedMetadata only when treatPropertyValueAsLiteral.
615 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
616 FromXml () instead of null checks.
617 (SetProperty): Escape propertyValue when it is literal.
619 * BuildProperty.cs: Changed exception message.
621 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
623 (GetProjectExtensions): Implemented.
625 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
627 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
628 GetParameterValue (), use expressions in ContinueOnError.
629 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
630 instead of InvalidOperationException ().
631 * ImportCollection.cs: Implement CopyTo ().
632 * Target.cs: Remove redundant variables (XmlAttributes), return
633 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
634 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
635 * Import.cs: Throw an exception when file does not exist.
636 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
637 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
638 need to treat item as a token probably
640 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
642 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
644 * BuildItemGroupCollection.cs: Changed exception types.
646 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
648 * Engine.cs: Removed redundant cast.
650 * UsingTaskCollection.cs:
654 * TargetCollection.cs: Comment unused variable.
655 * ConditionTokenizer.cs: Simplified checking if current token is a
657 * Target.cs: Removed old code.
659 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
661 * Target.cs: Changed "" to String.Empty.
662 * TaskEngine.cs: Don't try to convert a parameter to specific type if
663 string was evaluated to String.Empty.
664 * InternalLoggerException.cs:
665 * InvalidProjectFileException.cs: Added LinkDemand before
667 * ConsoleLogger.cs: Changed "" to String.Empty.
668 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
669 with change to generics).
670 * Project.cs: Made Build () throw more meaningful exception.
672 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
674 * Target.cs: Reformatted.
675 * TaskEngine.cs: Removed redundant code.
676 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
677 * Engine.cs: Made BuildProjectFile () load project file if it's not
680 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
682 * ConditionRelationalExpression.cs: Change comparers to case
684 * ImportCollection.cs: Add NotImplementedExceptions.
685 * BuildPropertyGroup.cs: Reformatted a bit.
686 * BuildProperty.cs: The same.
687 * Project.cs: Moved evaluation of imports before evaluation of
688 properties. This may "work" until importing projects is redesigned but
689 probably isn't correct.
691 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
693 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
695 * BuildItemGroup.cs: Change return to continue.
697 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
699 * ConditionParser.cs: Copyright note.
700 * ExpressionCollection.cs: Fixed arrays passing.
702 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
704 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
705 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
706 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
707 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
709 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
711 * Token.cs: Changed names: removed "than".
712 * ConditionRelationalExpression.cs: Added.
713 * ConditionFactorExpression.cs: Added.
714 * BuildItemGroup.cs: Changed Condition property return value to return
715 String.Empty instead of null.
716 * ConditionParser.cs: Added support for parsing relational expressions
718 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
719 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
720 and CanEvaluateToBool (), CanEvaluateToNumber () and
721 CanEvaluateToString ().
722 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
723 appropriately to ConditionExpression base class.
724 * ConditionTokenizer.cs: Added null check and changed names in enums:
726 * ConditionNotExpression.cs: Added.
727 * BatchingImpl.cs: Changed to use BoolEvaluate ().
728 * Project.cs: Added checks for condition.
730 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
732 * ConditionalTokenizer.cs, ConditionalExpression.cs,
733 ConditionalParser.cs: Changed name,
735 * ConditionExpression.cs: Added Evaluate ().
736 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
737 * BatchingImpl.cs: Added check if task should be executed.
739 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
741 * UsingTask.cs: Changed properties to return null on empty attribute.
742 * UsingTaskCollection.cs: Added object to SyncRoot.
743 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
745 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
747 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
748 BuildPropertyGroupCollection.cs: Fixed to match the tests.
750 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
752 * Utilities.cs: Implemented Escape ().
753 * BuildItem.cs: Added null checks.
754 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
755 * Project.cs: Commented out redundant Evaluate ().
756 * BuildChoose.cs: Minor changes.
758 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
760 * Token: Added new few missing tokens.
761 * Target.cs, Project.cs: Patch from Matthew Metnesky.
762 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
763 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
764 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
766 Removed literal expression parsing based on tokenizer and
767 parser. It needs to be done by regex.
769 Moved tokenizer to ConditionalTokenizer.cs.
771 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
773 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
774 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
775 methods converting reference to string from ToString () to
776 ConvertToString () to avoid mistakes like using ToString () provided
779 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
781 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
782 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
783 PropertyReference.cs, BuildProperty.cs: Changed Expression to
784 OldExpression and changed To* functions to one ConvertTo ().
785 * TaskEngine.cs: Fixed PublishOutput ().
786 * OldExpression.cs: Added. It will be temporarily used before
787 LiteralExpression will be written using Tokenizer.
788 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
789 ExpressionParseException.cs, LiteralExpression.cs: Added.
791 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
793 * ImportedProject.cs: Removed warning.
794 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
797 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
799 * Project.cs: Removed unnecessary variable.
800 * Engine.cs: Added fixme.
802 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
804 * BuildItem.cs: Moved checking if metadata name is reserved to internal
805 class (Mono.XBuild.Utilities.ReservedNameUtils).
807 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
809 * BuildTask.cs: Removed unnecessary variable.
810 * Engine.cs: Added logging of the build start.
811 * Project.cs: Removed unnecessary variable.
813 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
815 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
817 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
819 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
821 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
823 * BuildItem.cs: Fix typo?
825 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
827 * InternalLoggerException.cs, InvalidProjectFileException.cs,
828 Engine.cs, Project.cs: Coding style fixes.
830 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
832 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
834 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
836 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
837 to pass tests. Wrote serialization constructor.
838 * Engine.cs, Project.cs: Global engine and project unloading, test and
841 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
843 * UsingTask.cs: Formatting changes.
845 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
847 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
848 to lists instead of hashtables.
849 * Import.cs: Cleaned up, moved importing from Project.cs
850 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
851 * Engine.cs: Cleaned up properties.
852 * Project.cs: Moved importing to Import.cs, cleaned up properties,
853 Separated evaluation and loading.
855 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
857 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
858 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
859 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
860 binding and evaluation, merge xml binding in constructors.
861 * DirectoryScanner.cs: Includes CAN be empty.
862 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
863 * ConsoleLogger.cs: Fix compilation warning.
865 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
867 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
869 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
871 * Engine.cs: API cleanup.
873 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
875 * Project.cs: Cleaned up add.
876 * Expression.cs: Hacked to transform \ and / to path separators.
877 * BuildPropertyGroup.cs: Small cleanup.
878 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
881 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
883 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
884 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
886 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
887 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
888 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
890 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
891 * TaskElement.cs: Temporarily removed.
892 * Xml.cs: Changed to static.
894 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
896 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
897 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
898 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
899 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
900 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
901 IBuildPropertyGroupCollection.cs: Removed.
903 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
905 * BuildItem.cs: Removed IBuildItem references.
906 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
907 IBuildItemGroup references. Changed Evaluate to internal.
908 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
909 reference and hidden constructors.
910 * BuildProperty.cs: Removed IBuildProperty reference.
911 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
912 IBuildPropertyGroup references. Changed Evaluate to internal.
913 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
914 reference and hidden constructors.
915 * ConsoleLogger.cs: Updated names of event handlers.
916 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
917 Escape. Added UnloadAllProjects () and UnloadProject ().
918 * FileLogger.cs: Removed ApplyParameter ().
919 * GroupingCollection.cs: Hidden.
920 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
921 * ItemPropertyGroupingBase.cs: Commented.
922 * ProcessingPass.cs: Hidden.
923 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
925 * Target.cs: Removed ITarget reference.
926 * TargetCollection.cs: Removed ITargetCollection reference.
927 * TaskElement.cs: Removed ITaskElement reference.
928 * TaskEngineAssemblyResolver.cs: Hidden.
929 * Utilities.cs: Made static class, removed CheckPath (),
930 ValidateCulture (), GetSupportedCultures () and added Escape ().
932 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
934 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
937 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
939 * Project.cs: Added MonoTODO attributes.
940 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
941 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
942 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
943 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
944 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
945 BuildItemGroup.cs, InvalidProjectFileException.cs,
946 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
947 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
948 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
949 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
950 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
951 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
952 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
953 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
954 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
955 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
956 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
957 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
959 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
961 * TaskDatabase.cs: Change Shared to Framework.
962 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
963 CaseInsensitiveHashCodeProvider
965 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
967 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
968 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
971 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
973 * InternalLoggerException.cs: Changed protected fields to private.
975 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
977 * Engine.cs: Added check for globalProperties.
978 * Project.cs: Added using path from importedProject.FullFileName when
979 adding UsingTask elements.
981 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
983 * TaskElement.cs: Changed ReflectedType to PropertyType.
984 * ChangeType.cs (TransformToString): Changed to pass proper Type to
987 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
989 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
991 * BuildProperty.cs: Organized PropertyType enum.
992 * Engine.cs: Added setting CommandLine PropertyType of global
995 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
997 * InvalidProjectFileException.cs: Changed Message property.
998 * ChangeType.cs (TransformToString): Added separator between items.
999 * TaskEngineAssemblyResolver.cs: Formatting.
1001 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1003 * DirectoryScanner.cs: Added.
1004 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1005 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1006 * Project.cs: Removed Evalute* ().
1008 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1010 * Target.cs: Formatting.
1011 * Expression.cs: Added check if array == null.
1012 * BuildItem.cs: Removed 'break' to remove warnings.
1013 * ConsoleLogger.cs: Formatting.
1014 * Engine.cs: Added handling of default target(s).
1015 * Project.cs: Added handling of default target(s).
1017 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1019 * TaskElement.cs: Added check for parameters.
1020 * Target.cs: Added logging of target skipping.
1021 * Expression.cs: Changed returning object[] to string[], bool[]... in
1023 * ItemReference.cs: Fixed for item references without custom
1025 * BatchingImpl.cs: Added real inputs/outputs checking.
1026 * Engine.cs: Moved global properties setting.
1027 * Project.cs: Moved global properties setting.
1029 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1031 * Target.cs: Added checks for target existence.
1032 * BuildItemGroup.cs: Changed to use transforms.
1033 * MetadataReference.cs: Wrote real implementation.
1034 * ItemReference.cs: Rewritten to use transforms.
1035 * BuildItem.cs: Changes for transforms and metadata.
1036 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1038 * Project.cs: Fixed project importing.
1039 * ImportedProject.cs: Changed to throw exceptions instead of returning
1042 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1044 * Engine.cs: Removed FIXME.
1045 * Project.cs: Splitted ProcessElements and added project importing.
1046 * ImportedProject.cs: Rewritten.
1048 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1050 * TaskElement.cs: Added getting of objects of every type.
1051 * BuildItemGroup.cs: Added ToITaskItemArray ().
1052 * Expression.cs: Implemented part that is not using metadata.
1053 * ItemReference.cs: Implemented parsing item references. Need to fix
1055 * BuildItem.cs: Fixed ToITaskItem ().
1056 * PropertyReference.cs: Implemented parsing property references. This
1057 also needs validity checking.
1059 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1061 * TaskElement.cs: Added Output element handling.
1062 * Target.cs: Cleaned up.
1063 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1064 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1065 ItemReference.cs, ChangeType.cs: Added.
1066 * BuildItem.cs: Added creating BuildItem from TaskItem.
1067 * BuildPropertyGroup.cs: Small changes.
1068 * BatchingImpl.cs: Fixed to return real task execution result.
1069 * BuildProperty.cs: Fixed FinalValue property.
1070 * Engine.cs: Reformatted logging.
1071 * Project.cs: Added check to EvaluateProperty.
1073 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1075 * TaskElement.cs: Added part of execution engine.
1076 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1077 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1078 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1079 * BuildItem.cs: Added handling of built-in metadata and referencing
1080 Items by name not FullName.
1081 * BatchingImpl.cs: Added temporary task "batching".
1082 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1083 * Project.cs: Added Evaluate. It will be moved to separate class.
1085 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1087 * EventSource.cs, Engine.cs: Added CriticalEvents.
1088 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1089 Project.cs: Added some support for items.
1090 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1092 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1094 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1097 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1099 * BatchingImpl.cs: Added.
1100 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1101 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1102 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1103 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1104 GroupingCollection.cs: Updated.
1106 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1108 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1109 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1110 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1111 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1112 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1113 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1114 InternalLoggerException.cs, InvalidProjectFileException.cs,
1115 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1116 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1117 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1118 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1119 Initial check-in of implementations.
1121 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1123 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1124 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1125 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1126 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1127 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1128 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1129 Initial check-in of interfaces and a syntax file, real classes are
1130 changing a lot so I'll wait a moment with checking them in.