2008-08-28  Sebastien Pouliot  <sebastien@ximian.com>

	* OperatorEqualsShouldBeOverloadedRule.cs: This does not apply to
	delegates.

2008-08-10  Sebastien Pouliot  <sebastien@ximian.com>

	* AbstractTypesShouldNotHavePublicConstructorsRule.cs, 
	AvoidEmptyInterfaceRule.cs, AvoidPropertiesWithoutGetAccessorRule.cs,
	DisposableTypesShouldHaveFinalizerRule.cs,
	DontDeclareProtectedFieldsInSealedClassRule.cs, 
	EnumsShouldDefineAZeroValueRule.cs, FinalizersShouldBeProtectedRule.cs,
	FinalizersShouldCallBaseClassFinalizerRule.cs, 
	FlagsShouldNotDefineAZeroValueRule.cs, 
	MissingAttributeUsageOnCustomAttributeRule.cs, 
	OverrideEqualsMethodRule.cs, TypesShouldBeInsideNamespacesRule.cs,
	UsingCloneWithoutImplementingICloneableRule.cs: Use shorter override.

2008-08-06  Peter Johanson  <peter@peterjohanson.com>

	* AvoidPublicInstanceFieldsRule.cs: Make the rule not apply
	to private or internal nested types.

2008-08-02  Sebastien Pouliot  <sebastien@ximian.com>

	* ConsiderConvertingFieldToNullableRule.cs: Don't duplicate FX check
	in both Initialize and CheckType (removed).
	* ImplementGenericCollectionInterfacesRule.cs: Move FX check into
	the Initialize method - this will make it faster for 1.x assemblies.

2008-07-23  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* ConsiderUsingStaticTypeRule.cs: Fix the rule in order to avoid false
	positives with empty clases and inheritance.

2008-07-13  Sebastien Pouliot  <sebastien@ximian.com> 

	* AvoidMultidimensionalIndexerRule.cs: New. Rule that warns if 
	indexers using multidimentional indexes are found.
	* PreferIntegerOrStringForIndexersRule.cs: New. Rule that warns 
	if indexers uses something other that string, integers or object as 
	their index.
	* Gendarme.Rules.Design.mdp: Add rule to MD project file.
	* Makefile.am: Add rule and test to the build.

2008-07-13  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRefAndOutParametersRule.cs: New. Rule to warn for visible API
	that expose ref or out parameters. This help keeping the public API 
	as simple as possible.
	* ConsiderConvertingFieldToNullableRule.cs: Change some methods (using
	ref) from protected (no need) to private.
	* Gendarme.Rules.Design.mdp: Add rule to MD project file.
	* Makefile.am: Add rule and test to the build.

2008-07-12  Sebastien Pouliot  <sebastien@ximian.com>

	* ConsiderUsingStaticTypeRule.cs: New. Rule that warn if a type 
	could be changed into a static type. This rule is 2.0+ specific.
	* Makefile.am: Add rule and test to the build.

2008-07-08  Sebastien Pouliot  <sebastien@ximian.com>

	* Makefile.am: Rebuild if the framework has changed.

2008-06-08  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidVisibleNestedTypesRule.cs: New. Rule that warn about nested 
	types that are visible.
	* Gendarme.Rules.Design.mdp: Add rule to MD project file.
	* Makefile.am: Add rule and test to the build.

2008-05-04  Sebastien Pouliot  <sebastien@ximian.com> 

	* DisposableFieldsShouldBeDisposedRule.cs: Simplify finding 
	Dispose	methods a bit (self-test).

2008-05-04  Sebastien Pouliot  <sebastien@ximian.com>

	* UsingCloneWithoutImplementingICloneableRule.cs: Change rule
	not to warn when Clone return something else than System.Object 
	since implementing ICloneable won't be enough anyway (and changing
	to System.Object just add unneeded casts).

2008-05-01  Sebastien Pouliot  <sebastien@ximian.com>

	* ConsiderConvertingFieldToNullableRule.cs: New. Rule to promote
	the use of nullable fields inside types [Cedric Vivier].
	* Makefile.am: Add rule and test to the build.

2008-04-26  Sebastien Pouliot  <sebastien@ximian.com>

	* ConsiderConvertingMethodToPropertyRule.cs: Add checks for 
	methods starting with Has*. Patch from Cedric Vivier.

2008-04-12  Sebastien Pouliot  <sebastien@ximian.com>

	* OperatorEqualsShouldBeOverloadedRule.cs: Fix Problem/Solution
	attributes to match the rule. Found by Ben Motmans.

2008-04-11  Sebastien Pouliot  <sebastien@ximian.com>

	* ConsiderConvertingMethodToPropertyRule.cs: Don't apply the rule
	to overrides. Don't check Set* methods but report them if we find an
	appropriate Get* method (single defect).

2008-04-09  Sebastien Pouliot  <sebastien@ximian.com>

	* ImplementEqualsAndGetHashCodeInPairRule.cs: Fix message (spotted
	by Andy Hume).

2008-04-08  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* TypesWithDisposableFieldsShouldBeDisposableRule.cs: Fixed a typo.

2008-04-03  Daniel Abramov <ex@vingrad.ru>

	* ImplementGenericCollectionInterfacesRule.cs: New rule to check
	if the class implementing IEnumerable implements IEnumerable<T>
	too (only for .NET 2.0+).
	* Gendarme.Rules.Design.mdp: Add rule to MD project file.
	* Makefile.am: Add rule and test to the build.

2008-03-30  Sebastien Pouliot  <sebastien@ximian.com>

	* ImplementIComparableCorreclyRule.cs: New. Rule to check that 
	IComparable, and it's generic version: IComparable<T>, are 
	implemented correctly, i.e. override Equals and provide the ==, 
	!=, < and > operators.
	* Gendarme.Rules.Design.mdp: Add rule to MD project file.
	* Makefile.am: Add rule and test to the build.

2008-03-16  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidPublicInstanceFieldsRule.cs: Ignore code generated by CSC 
	for anonymous types (i.e. inner type that defines public fields).

2008-03-12  Sebastien Pouliot  <sebastien@ximian.com>

	* Makefile.am: Add reference to Test.Rules to the unit test assembly.

2008-02-16  Sebastien Pouliot  <sebastien@ximian.com> 

	* TypesWithDisposableFieldsShouldBeDisposableRule.cs: Don't check
	code generated by compilers or tools since the developer cannot do
	(much) on them.

2008-02-15  Sebastien Pouliot  <sebastien@ximian.com> 

	* AvoidEmptyInterfaceRule.cs: Oops, wrong/duplicate rule.

2008-02-15  Sebastien Pouliot  <sebastien@ximian.com>

	* AbstractTypesShouldNotHavePublicConstructorsRule.cs
	* AttributeArgumentsShouldHaveAccessorsRule.cs
	* AvoidEmptyInterfaceRule.cs
	* AvoidPropertiesWithoutGetAccessorRule.cs
	* AvoidPublicInstanceFieldsRule.cs
	* ConsiderConvertingMethodToPropertyRule.cs
	* DefineAZeroValueRule.cs
	* DisposableFieldsShouldBeDisposedRule.cs
	* DisposableTypesShouldHaveFinalizerRule.cs
	* DontDeclareProtectedFieldsInSealedClassRule.cs
	* EnsureSymmetryForOverloadedOperatorsRule.cs
	* EnumsShouldDefineAZeroValueRule.cs
	* EnumsShouldUseInt32Rule.cs
	* FinalizersShouldBeProtectedRule.cs
	* FinalizersShouldCallBaseClassFinalizerRule.cs
	* FlagsShouldNotDefineAZeroValueRule.cs
	* ImplementEqualsAndGetHashCodeInPairRule.cs
	* MainShouldNotBePublicRule.cs
	* MissingAttributeUsageOnCustomAttributeRule.cs
	* OperatorEqualsShouldBeOverloadedRule.cs
	* OverrideEqualsMethodRule.cs
	* ProvideAlternativeNamesForOperatorOverloadsRule.cs
	* TypesShouldBeInsideNamespacesRule.cs
	* TypesWithDisposableFieldsShouldBeDisposableRule.cs
	* TypesWithNativeFieldsShouldBeDisposableRule.cs
	* UsingCloneWithoutImplementingICloneableRule.cs:
		Update rules wrt framework changes.

2008-02-07  Sebastien Pouliot  <sebastien@ximian.com>

	* EnumsShouldUseInt32Rule.cs: New. Rule to warn about enumations that
	are not based on Int32.
	* Gendarme.Rules.Design.mdp: Update project file.
	* Gendarme.Rules.Design.xml.in: Add new rule description.
	* Makefile.am: Add new rule/test to the build.

2008-02-07  Nestor Salceda  <nestor.salceda@gmail.com>

	* DisposableTypesShouldHaveFinalizerRule.cs,
	FinalizersShouldCallBaseClassFinalizerRule.cs,
	FinalizersShouldBeProtectedRule.cs: Replaced TypeDefinition.GetFinalizer
	with TypeDefinition.GetMethod for avoid some warnings when compiling.

2008-01-29  Sebastien Pouliot  <sebastien@ximian.com>

	* ProvideAlternativeNamesForOperatorOverloadsRule.cs: Change
	op_Inequality alternative to (not) Equals instead of Compare.

2008-01-28  Sebastien Pouliot  <sebastien@ximian.com>

	* ProvideAlternativeNamesForOperatorOverloadsRule.cs: Adapt for
	API changes in MethodSignature.

2008-01-27  Sebastien Pouliot  <sebastien@ximian.com>

	* TypesShouldBeInsideNamespacesRule.cs: Don't report nested types 
	since the declaring type will already be reported and a single *fix*
	is required (and more related to the declaring type than then nested
	one).

2008-01-24  Sebastien Pouliot  <sebastien@ximian.com>

	* ImplementEqualsAndGetHashCodeInPairRule.cs: This replace Gendarme.
	Rule.BadPractice.ImplementingEqualsButNotGetHashCodeAndViceVersaRule.
	Renamed, moved & rockified.
	* Gendarme.Rules.Design.xml.in: Moved description.
	* Makefile.am: Added (moved) rule and tests.

2008-01-18  Sebastien Pouliot  <sebastien@ximian.com>

	* DisposableHelper.cs: Removed.
	* EnsureSymmetryForOverloadedOperatorsTest.cs: New. Rule that 
	ensure operators are overloaded in symmetry [Andreas Noever].
	* DisposableFieldsShouldBeDisposedRule.cs: Adapted to use rocks
	instead of DisposableHelper.
	* OperatorEqualsShouldBeOverloadedTest.cs: New. Rule that ensure 
	that operator == is overloaded when required [Andreas Noever].
	* OverrideEqualsMethodTest.cs: New. Rule that ensure that method 
	Equals is overriden when required [Andreas Noever].
	* ProvideAlternativeNamesForOperatorOverloadsTest.cs: New. Rule
	that ensure alternate methods are provided for operators [Andreas Noever].
	* TypesWithDisposableFieldsShouldBeDisposableRule.cs: Adapted to 
	use rocks instead of DisposableHelper.
	* TypesWithNativeFieldsShouldBeDisposableRule.cs: Adapted to use 
	rocks instead of DisposableHelper.
	* Gendarme.Rules.Design.xml.in: Add new rule descriptions.
	* Makefile.am: Add new rules/tests to the build.

2008-01-14  Sebastien Pouliot  <sebastien@ximian.com>

	* DisposableFieldsShouldBeDisposedRule.cs: Exclude generated code
	from results (to reduce false positives).
	* FinalizersShouldBeProtectedRule.cs: New. Rule to ensure that every
	finalizer is protected.
	* FinalizersShouldCallBaseClassFinalizerRule.cs: New. Rule to ensure
	that every finalizer calls it's base class.
	* Gendarme.Rules.Design.mdp: Add new files to MD project file.
	* Gendarme.Rules.Design.xml.in: Added new rule descriptions.
	* Makefile.am: Add new rules/tests to the build.

2008-01-13  Sebastien Pouliot  <sebastien@ximian.com>

	* DisposableFieldsShouldBeDisposedRule.cs: Add check for static 
	fields.
	* DisposableTypesShouldHaveFinalizerRule.cs: Add check for static 
	fields.
	* TypesWithDisposableFieldsShouldBeDisposableRule.cs: Add checks 
	for structs and static fields.
	* TypesWithNativeFieldsShouldBeDisposableRule.cs: Add checks 
	for structs and static fields.

2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>

	* DisposableFieldsShouldBeDisposedRule.cs: New. Rule that check that
	disposable fields are disposed by the Dispose method. [Andreas Noever]
	* DisposableHelper.cs: Helper methods for new rules [Andreas Noever]
	* DisposableTypesShouldHaveFinalizerRule.cs: New. Rule that check
	that classes with disposable fields have a finalizer. [Andreas Noever]
	* TypesWithDisposableFieldsShouldBeDisposableRule.cs: New. Rule that
	check that classes with disposable types implements IDisposable 
	[Andreas Noever].
	* TypesWithNativeFieldsShouldBeDisposableRule.cs: New. Rule that 
	check that classes with native fields implements IDisposable 
	[Andreas Noever]
	* Gendarme.Rules.Design.mdp: Add new files to MD project file.
	* Gendarme.Rules.Design.xml.in: Added new rule descriptions.
	* Makefile.am: Add new rules/tests to the build.

2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>

	* AttributeArgumentsShouldHaveAccessorsRule.cs: New. Rule that check 
	that all attribute's constructors have read-only properties (get) that
	match their parameters [Daniel Abramov]
	* Gendarme.Rules.Design.xml.in: Added new rule descriptions.
	* Makefile.am: Add new rules/tests to the build.

2008-01-05  Sebastien Pouliot  <sebastien@ximian.com>

	* MissingAttributeUsageOnCustomAttributeRule.cs: New. Rule that checks
	for attributes without a [AttributeUsage] attribute [Daniel Abramov]
	* Gendarme.Rules.Design.xml.in: Added new rule descriptions.
	* Gendarme.Rules.Design.mdp: Added files to MonoDevelop project file.
	* Makefile.am: Add new rules/tests to the build.

2008-01-04  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidPublicInstanceFieldsRule.cs: New. Rule to check for public
	instance fields that could be converted into properties [Adrian Tsai]
	* ConsiderConvertingMethodToPropertyRule.cs: New. Rule to check
	for methods that could be converted into properties [Adrian Tsai]
	* Gendarme.Rules.Design.xml.in: Added new rule descriptions.
	* Gendarme.Rules.Design.mdp: Added files to MonoDevelop project file.
	* Makefile.am: Add new rules/tests to the build.

2007-12-28  Sebastien Pouliot  <sebastien@ximian.com>

	* MainShouldNotBePublicRule.cs: New. Rule to check that the Main 
	entry point isn't visible outside it's assembly. By Daniel Abramov.
	* Gendarme.Rules.Design.xml.in: Added new rule description.
	* Gendarme.Rules.Design.mdp: Add new file to MonoDevelop project file.
	* Makefile.am: Add new rule/tests to the build.

2007-12-26  Sebastien Pouliot  <sebastien@ximian.com>

	* AbstractTypesShouldNotHavePublicConstructorsRule.cs: New. Rule
	to check for public constructors inside abstract classes.
	* AvoidEmptyInterfaceRule.cs: New. Rule to check for empty interfaces
	* AvoidPropertiesWithoutGetAccessorRule.cs: New. Rule to check for
	properties with only a setter.
	* DefineAZeroValueRule.cs: New. Abstract base class for 
	[EnumsShould|FlagsShouldNot]DefineAZeroValueRule.
	* DontDeclareProtectedFieldsInSealedClassRule.cs: Updated to use
	simpler Location ctor.
	* EnumsShouldDefineAZeroValueRule.cs: New. Rule to check that all
	enums, except flags, provide a 0 value.
	* FlagsShouldNotDefineAZeroValueRule.cs: New. Rule to check that all
	flags don't provide a 0 value.
	* TypesShouldBeInsideNamespacesRule.cs: New. Rule to check that 
	types are defined inside namspaces.
	* UsingCloneWithoutImplementingICloneableRule.cs: Updated to use
	simpler Location ctor and rocks.
	* Gendarme.Rules.Design.mdp: Add new files to MonoDevelop project file.
	* Gendarme.Rules.Design.xml.in: Update rules descriptions.
	* Makefile.am: Add new rules to the build.

2007-11-22  Sebastien Pouliot  <sebastien@ximian.com>

	* DontDeclareProtectedFieldsInSealedClassRule.cs: Avoid creating
	MessageCollection unless needed.
	* UsingCloneWithoutImplementingICloneableRule.cs: Avoid creating
	MessageCollection unless needed. Also check Clone methods that return
	the current type (not just System.Object)

2007-10-27  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* Gendarme.Rules.Design.xml.in:  Added Uri with the documentation for
	the rules.

2007-10-07  Sebastien Pouliot  <sebastien@ximian.com>

	* DontDeclareProtectedFieldsInSealedClassRule.cs: New rule (Nidhi 
	Rawal, GSoC 2007)
	* UsingCloneWithoutImplementingICloneableRule.cs: New rule (Nidhi 
	Rawal, GSoC 2007)
	* Gendarme.Rules.Design.mdp: New. Project file for MonoDevelop.
	* Gendarme.Rules.Design.xml.in: New. Rule descriptions.
	* Makefile.am: New. Build file for rules and unit tests.
