+2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
+ reserved property.
+
+2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
+ Add () calls when processing a project from Import and
+ evaluate_iterator for evaluation.
+
+2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
+ and prepend relative directory of importing project to full path of
+ imported project.
+
+2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * BuildWhen.cs, BuildPropertyGroupCollection.cs,
+ BuildItemGroupCollection.cs, Project.cs: Track API changes.
+
+ * GroupingCollection.cs: Now it needs Project reference so added it.
+
+ * BuildTask.cs: Formatting.
+
+ * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
+
+ * ConditionParser.cs (ParseAndEvaluate): Added.
+
+ * BuildItem.cs: Changed exception message.
+
+2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * BuildWhen.cs, BuildPropertyGroupCollection.cs,
+ BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
+ GroupingCollection doesn't need Project reference.
+
+ * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
+
+ * BuildItemGroup.cs: Added new readOnly parameter to ctor.
+ (Project.EvaluatedItems is a read only item group.)
+ (ReplaceWith): Added.
+
+ * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
+ global property group causes reevaluation of its project.
+
+ * Project.cs: ProcessXml () is internal and can be "safely" invoked by
+ other classes.
+
+ * OldExpression.cs: Removed.
+
+ * BuildProperty.cs (Evaluate): Simplified.
+
+ * ChangeType.cs (TemporaryTransform): Simplified.
+
+ * BuildItem.cs: There are now 3 types of build items: from XML, having
+ parent from XML, virtual. Added SplitParentItem ().
+
+2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * Utilities.cs: Added Unescape ().
+
+ * BuildItemGroup.cs, BuildItem.cs: Pass null project to
+ BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
+ groups (at the moment just unescape).
+
+ * Expression.cs (CopyToExpressionList): Unescape strings.
+
+2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * Target.cs (ctor): Added ImportedProject argument and removed
+ set_IsImported.
+ (AddNewTask): Implemented.
+
+ * TargetCollection.cs (AddNewTarget): Implemented.
+
+ * Project.cs: Track API changes.
+
+2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * Target.cs (Build): Don't throw anything in case of error, just
+ return false.
+
+ * BuildItemGroup.cs (set_Condition): Throw an exception if group is
+ not from XML.
+
+ * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
+ SetMetadata ().
+
+ * BuildProperty.cs (ToString): Throw an exception if property is not
+ from XML.
+ (op_Explicit): Added a null check.
+
+ * Engine.cs: Better error message.
+
+ * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
+ IndexOutOfRangeException.
+
+ * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
+ (MarkProjectAsDirty): Set time.
+
+2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
+
+ * BuildItemGroup.cs (Clone): Throw exception.
+
+ * Project.cs (Load): Throw InvalidProjectFileException if anything
+ goes wrong.
+
2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
* ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()