csharpfftfsharpintegrationinterpolationlinear-algebramathdifferentiationmatrixnumericsrandomregressionstatisticsmathnet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
521 lines
19 KiB
521 lines
19 KiB
2010-09-05 Version 2.8.0
|
|
|
|
First release in the 2.8.x serie which will lead to the 3.0
|
|
release. Many rules were enhanced and a lot of work was done
|
|
to make Gendarme adhere to its own rules (self-test).
|
|
|
|
This release also includes 10 new rules (221 rules total):
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* PreferParamsArrayForVariableArgumentsRule [Sebastien Pouliot]
|
|
* PreferTryParseRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Correctness
|
|
* UseNoInliningWithGetCallingAssemblyRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design
|
|
* ProvideTryParseAlternativeRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design.Generic
|
|
* AvoidDeclaringCustomDelegatesRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Maintainability
|
|
* RemoveDependenceOnObsoleteCodeRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Interoperability
|
|
* CentralizePInvokesIntoNativeMethodsTypeRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Performance
|
|
* AvoidConcatenatingCharsRule [Sebastien Pouliot]
|
|
* AvoidLocalDataStoreSlotRule [Sebastien Pouliot]
|
|
* AvoidRepetitiveCallsToPropertiesRule [Sebastien Pouliot]
|
|
|
|
Contributors for this release are:
|
|
Antoine Vandecreme, JB Evain, Rolf Bjarne Kvinge and Sebastien
|
|
Pouliot.
|
|
|
|
2009-12-20 Version 2.6
|
|
|
|
Released just in time for xmas Gendarme 2.6 comes with a lot of
|
|
enhancements and bug fixes. Rule documentation (wiki) and our MAN
|
|
pages were also greatly enhanced by the work of Jesse Jones.
|
|
|
|
In the ecosystem Daniel Nauck contributed Gendarme support for
|
|
CC.NET and a new NAnt task with reduced dependencies. With this
|
|
Gendarme should be easier than ever to use on your projects.
|
|
|
|
This release includes 12 new rules (207 rules total):
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* DoNotUseEnumIsAssignableFromRule [JB Evain]
|
|
* OnlyUseDisposeForIDisposableTypesRule [Jesse Jones]
|
|
* PreferSafeHandleRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Concurrency
|
|
* DoNotUseThreadStaticWithInstanceFieldsRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Correctness
|
|
* ProvideValidXmlStringRule [Cedric Vivier]
|
|
* ProvideValidXPathExpressionRule [Cedric Vivier]
|
|
|
|
Gendarme.Rules.Design
|
|
* PreferXmlAbstractionsRule [Cedric Vivier]
|
|
* UseCorrectDisposeSignaturesRule [Jesse Jones]
|
|
* UseFlagsAttributeRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Exceptions
|
|
* UseObjectDisposedExceptionRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Interoperability
|
|
* DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule [Rolf Bjarne Kvinge]
|
|
|
|
Gendarme.Rules.Performance
|
|
* ReviewLinqMethodRule [Jesse Jones]
|
|
|
|
Contributors for this release are:
|
|
Cedric Vivier, Daniel Nauck, JB Evain, Jesse Jones, Rolf Bjarne
|
|
Kvinge and Sebastien Pouliot.
|
|
|
|
2009-01-20 Version 2.4
|
|
|
|
This release was the shortest (about 2 months) release cycle ever
|
|
for Gendarme. Nevertheless it contains a lot of enhancements for
|
|
rules builders (e.g. logging support, makefile helpers) provided
|
|
by Jesse Jones.
|
|
|
|
This release also includes 12 new rules (195 rules total):
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* PreferEmptyInstanceOverNullRule [Cedric Vivier]
|
|
|
|
Gendarme.Rules.Correctness
|
|
* DoNotRecurseInEqualityRule [Jesse Jones]
|
|
* EnsureLocalDisposalRule [Cedric Vivier]
|
|
* ProvideCorrectRegexPatternRule [Cedric Vivier]
|
|
* ReviewInconsistentIdentityRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Design.Generic
|
|
* DoNotExposeNestedGenericSignaturesRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Exceptions
|
|
* DoNotThrowInUnexpectedLocationRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Maintainability
|
|
* AvoidAlwaysNullFieldRule [Jesse Jones]
|
|
|
|
Gendarme.Rules.Naming
|
|
* AvoidTypeInterfaceInconsistencyRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Performance
|
|
* PreferCharOverloadRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Security
|
|
* DoNotShortCircuitCertificateChecksRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Smells
|
|
* AvoidSwitchStatementsRule [Nestor Salceda]
|
|
|
|
Contributors for this release are:
|
|
Andres G. Aragoneses, Cedric Vivier, JB Evain, Jesse Jones,
|
|
Nestor Salceda, Sebastien Pouliot.
|
|
|
|
2008-11-10 Version 2.2
|
|
|
|
This release includes the development results of the last four
|
|
months, including some major events like the Novell Hack Week 3
|
|
and the second half of GSoC 2008 work done by Nestor Salceda.
|
|
|
|
Major highlights includes:
|
|
|
|
* improvement to the framework by the addition of engines that
|
|
can build extra information to extend the model Cecil gives us
|
|
to work with.
|
|
|
|
* New [FxCopCompatibility] attribute to match between Gendarme
|
|
and FxCop rules. This will be used to support [SuppressMessage]
|
|
inside assemblies in a future release.
|
|
|
|
* New TearDown capability on rules and runners allow rules to
|
|
defer the reporting of defects until the analysis is completed.
|
|
|
|
* New "Audit" severity. This is used to denotate defects that,
|
|
too often, can't be fixed (i.e. will always be reported) but
|
|
needs to be audited (e.g. security items).
|
|
|
|
* By default the console runner now reports only when both
|
|
Severity > Low
|
|
i.e. skipping Low and Audit severity defects
|
|
Confidence > Low
|
|
i.e. skipping Low confidence defects
|
|
|
|
This is to help reduce false positives and get smaller reports
|
|
with the most important defects. You can override both option,
|
|
with lower or higher values, with new command switches. E.g.
|
|
|
|
gendarme --severity=audit,critical ...
|
|
gendarme --confidence=all ...
|
|
|
|
* The wizard runner is now, by default, limited to 1000 defects
|
|
on the visible API and will, like the console runner, report
|
|
only defects when both Severity > Low and Confidence > Low. A
|
|
new step in the wizard allow users to change those settings
|
|
before the analysis (defaults can be modified and saved).
|
|
|
|
* You can now save your rule selection as the new default in
|
|
the wizard. The same set will be enable next time you restart
|
|
the wizard.
|
|
* Known issue: does not work under Mono, bug #439943
|
|
|
|
and a lot of new rules including:
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* AvoidAssemblyVersionMismatchRule [Sebastien Pouliot]
|
|
* DoNotUseGetInterfaceToCheckAssignabilityRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Concurrency
|
|
* DoNotUseMethodImplOptionsSynchronizedRule [Sebastien Pouliot]
|
|
* ReviewLockUsedOnlyForOperationsOnVariablesRule [Cedric Vivier]
|
|
* ProtectCallToEventDelegatesRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Correctness
|
|
* AttributeStringLiteralsShouldParseCorrectlyRule [Nestor Salceda]
|
|
* CheckParametersNullityInVisibleMethodsRule [Sebastien Pouliot]
|
|
* ProvideCorrectArgumentsToFormattingMethodsRule [Nestor Salceda]
|
|
* ReviewCastOnIntegerDivisionRule [Sebastien Pouliot]
|
|
* ReviewCastOnIntegerMultiplicationRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design
|
|
* AvoidSmallNamespaceRule [Sebastien Pouliot]
|
|
* ConsiderAddingInterfaceRule [Cedric Vivier]
|
|
* DeclareEventHandlersCorrectlyRule [Nestor Salceda]
|
|
* DoNotDeclareVirtualMethodsInSealedTypeRule [Sebastien Pouliot]
|
|
* InternalNamespacesShouldNotExposeTypesRule [Sebastien Pouliot]
|
|
* MarkAssemblyWithAssemblyVersionRule [Sebastien Pouliot]
|
|
* MarkAssemblyWithCLSCompliantRule [Sebastien Pouliot]
|
|
* MarkAssemblyWithComVisibleRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design.Generic
|
|
* AvoidMethodWithUnusedGenericTypeRule [Sebastien Pouliot]
|
|
* UseGenericEventHandlerRule [Sebastien Pouliot]
|
|
* PreferGenericsOverRefObjectRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design.Linq
|
|
* AvoidExtensionMethodOnSystemObjectRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Exceptions
|
|
* InstantiateArgumentExceptionCorrectlyRule [Nestor Salceda]
|
|
|
|
Gendarme.Rules.Interoperability
|
|
* MarshalBooleansInPInvokeDeclarationsRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Naming
|
|
* AvoidDeepNamespaceHierarchyRule [Sebastien Pouliot]
|
|
* AvoidRedundancyInMethodNameRule [Cedric Vivier]
|
|
* AvoidRedundancyInTypeNameRule [Cedric Vivier]
|
|
|
|
Gendarme.Rules.Performance
|
|
* AvoidUnneededFieldInitializationRule [Sebastien Pouliot]
|
|
* PreferLiteralOverInitOnlyFieldsRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Security.Cas
|
|
* ReviewSuppressUnmanagedCodeSecurityUsageRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Serialization
|
|
* MarkEnumerationsAsSerializableRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Smells
|
|
* AvoidMessageChainsRule [Nestor Salceda]
|
|
|
|
Lots of rules have been updated and, in a few cases, renamed or
|
|
moved, to provide extended functionalities.
|
|
|
|
Move/merge changes:
|
|
* CAS-related Security rules were moved into Security.Cas
|
|
* DisposableFieldsShouldBeDisposedRule was moved from Design
|
|
into Correctness
|
|
* EnumNotEndsWithEnumOrFlagsSuffixRule was merged with
|
|
UseCorrectSuffixRule (Naming)
|
|
* FinalizersShouldCallBaseClassFinalizerRule was moved from
|
|
Design into Correctness
|
|
* ImplementGenericCollectionInterfacesRule was moved from
|
|
Design into Design.Generic
|
|
|
|
Contributors for this release are:
|
|
Peter Johanson, Nestor Salceda, Cedric Vivier, Jesse Jones,
|
|
Alan McGovern, Sebastien Pouliot.
|
|
|
|
2008-07-14 Version 0.2.0.0
|
|
|
|
This release includes the development results of the last six
|
|
months, including some major events like the Novell Hack Week
|
|
(Winter 2008 edition), which changed much of the Gendarme
|
|
framework, the first "Gendarme Rule Day" and the first part of
|
|
GSoC 2008 work by Nestor Salceda.
|
|
|
|
General highlights:
|
|
|
|
* Performance enhancements, memory usage reduction (mostly
|
|
inside Cecil but the gains are very visible in Gendarme)
|
|
* MDB/PDB support: source files and line numbers are now
|
|
provided with defects [Sebastien Pouliot]
|
|
* New Windows installer: You can now easily enjoy Gendarme, and
|
|
it's wizard, from Windows computers [Sebastien Pouliot]
|
|
* .desktop file for the Wizard runner [Daniel Nauck]
|
|
* Console runner now uses color when displaying on the console
|
|
[Cedric Vivier]
|
|
* Albeit a bit invisible to end users, we started using the new
|
|
unit test helpers made during GHOP [Daniel Abramov]
|
|
* Bug fixes: works continue, like previous releases, to remove
|
|
false positives from existing rules;
|
|
|
|
and a lot of new rules including:
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* AvoidCallingProblematicMethodsRule [Nestor Salceda]
|
|
* AvoidVisibleConstantFieldRule [Sebastien Pouliot]
|
|
* DoNotForgetNotImplementedMethodsRule [Cedric Vivier]
|
|
* DisableDebuggingCodeRule [Sebastien Pouliot]
|
|
* ObsoleteMessagesShouldNotBeEmptyRule [Sebastien Pouliot]
|
|
* ReplaceIncompleteOddnessCheckRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Concurrency
|
|
* DoNotLockOnThisOrTypesRule [Sebastien Pouliot]
|
|
* DoNotLockOnWeakIdentityObjectsRule [Sebastien Pouliot]
|
|
* DoNotUseLockedRegionOutsideMethodRule [Andres G. Aragoneses]
|
|
|
|
Gendarme.Rules.Correctness
|
|
* DoNotRoundIntegersRule [Sebastien Pouliot]
|
|
* ReviewDoubleAssignmentRule [Sebastien Pouliot]
|
|
* ReviewSelfAssignmentRule [Sebastien Pouliot]
|
|
* ReviewUselessControlFlow [Sebastien Pouliot]
|
|
* ReviewUseOfInt64BitsToDoubleRule [Sebastien Pouliot]
|
|
* ReviewUseOfModuloOneOnIntegersRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design
|
|
* AvoidMultidimensionalIndexerRule [Sebastien Pouliot]
|
|
* AvoidRefAndOutParametersRule [Sebastien Pouliot]
|
|
* AvoidVisibleNestedTypesRule [Sebastien Pouliot]
|
|
* ConsiderConvertingFieldToNullableRule [Cedric Vivier]
|
|
* ConsiderUsingStaticTypeRule.cs [Sebastien Pouliot]
|
|
* ImplementGenericCollectionInterfacesRule [Daniel Abramov]
|
|
* ImplementIComparableCorreclyRule [Sebastien Pouliot]
|
|
* PreferIntegerOrStringForIndexersRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Exception
|
|
* AvoidArgumentExceptionDefaultConstructorRule [Sebastien Pouliot]
|
|
* AvoidThrowingBasicExceptionsRule [Daniel Abramov]
|
|
* DoNotThrowReservedExceptionRule [Sebastien Pouliot]
|
|
* ExceptionShouldBeVisibleRule [Sebastien Pouliot]
|
|
* MissingExceptionConstructorsRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Interoperability
|
|
* DoNotCastIntPtrToInt32Rule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Maintainability (new)
|
|
* AvoidComplexMethodsRule [Cedric Vivier]
|
|
* AvoidDeepInheritanceTreeRule [Sebastien Pouliot]
|
|
* AvoidLackOfCohesionOfMethodRule [Cedric Vivier]
|
|
* ConsiderUsingStopwatchRule [Cedric Vivier]
|
|
* PreferStringIsNullOrEmptyRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Naming
|
|
* DoNotPrefixEventsWithAfterOrBeforeRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Performance
|
|
* AvoidLargeNumberOfLocalVariablesRule [Sebastien Pouliot]
|
|
* AvoidLargeStructureRule [Sebastien Pouliot]
|
|
* AvoidRepetitiveCastsRule [Sebastien Pouliot]
|
|
* AvoidTypeGetTypeWhenPossibleRule [Sebastien Pouliot]
|
|
* AvoidUnusedPrivateFieldsRule [Sebastien Pouliot]
|
|
* AvoidUnneededUnboxingRule [Sebastien Pouliot]
|
|
* AvoidUnsealedUninheritedInternalClassesRule [Scott Peterson]
|
|
* ImplementEqualsTypeRule [Sebastien Pouliot]
|
|
* OverrideValueTypeDefaultsRule [Sebastien Pouliot]
|
|
* RemoveUnusedLocalVariablesRule [Sebastien Pouliot]
|
|
* UseIsOperatorRule [Seo Sanghyeon]
|
|
* UseTypeEmptyTypesRule [JB Evain]
|
|
|
|
Gendarme.Rules.Portability
|
|
* DoNotHardcodePathsRule [Daniel Abramov]
|
|
|
|
Gendarme.Rules.Serialization (new)
|
|
* CallBaseMethodsOnISerializableTypesRule [Nestor Salceda]
|
|
* DeserializeOptionalFieldRule [Sebastien Pouliot]
|
|
* ImplementISerializableCorrectlyRule [Nestor Salceda]
|
|
* MarkAllNonSerializableFieldsRule [Nestor Salceda]
|
|
* MissingSerializableAttributeOnISerializableTypeRule [Sebastien Pouliot]
|
|
* MissingSerializationConstructorRule [Sebastien Pouliot]
|
|
* UseCorrectSignatureForSerializationMethodsRule [Sebastien Pouliot]
|
|
|
|
Contributors for this release are:
|
|
Andres G. Aragoneses, Cedric Vivier, Daniel Abramov, JB Evain,
|
|
Nestor Salceda, Scott Peterson, Sebastien Pouliot, Seo Sanghyeon.
|
|
|
|
2008-01-31 Version 0.0.5
|
|
|
|
This time Google Highly Open Participation (GHOP) was the main
|
|
source of new rules for Gendarme (Daniel Abramov, Andreas Noever,
|
|
Adrian Tsai) and even a Gendarme logo (Steve P).
|
|
Many thanks to all of them and to Google!
|
|
|
|
Other news includes:
|
|
|
|
* More rules: while GHOP added 40 rules, other contributors added
|
|
7 more rules.
|
|
* Gendarme.Framework.Rocks: A new namespace, inside gendarme's
|
|
framework, introduce several extensions methods to ease rule
|
|
creation and avoid code duplication.
|
|
* Updated rules to be more friendly toward C# 3 code (e.g.
|
|
auto-implemented properties)
|
|
* Enhancements to existing rules to reduce false-positives. Even
|
|
with all the new rules the number of false-positives is lower
|
|
than before and Gendarme's self-test looks even better!
|
|
|
|
New rules by alphabetical order:
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* CheckNewExceptionWithoutThrowingRule [Andreas Noever]
|
|
* CheckNewThreadWithoutStartRule [Andreas Noever]
|
|
* ConstructorShouldNotCallVirtualMethodsRule [Daniel Abramov]
|
|
* GetEntryAssemblyMayReturnNullRule [Daniel Abramov]
|
|
|
|
Gendarme.Rules.Concurrency
|
|
* NonConstantStaticFieldsShouldNotBeVisible [Andreas Noever]
|
|
|
|
Gendarme.Rules.Correctness
|
|
* DontCompareWithNaNRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Design
|
|
* AbstractTypesShouldNotHavePublicConstructorsRule [Sebastien Pouliot]
|
|
* AttributeArgumentsShouldHaveAccessors [Daniel Abramov]
|
|
* AvoidEmptyInterfaceRule [Sebastien Pouliot]
|
|
* AvoidPropertiesWithoutGetAccessorRule [Sebastien Pouliot]
|
|
* AvoidPublicInstanceFieldsRule [Adrian Tsai]
|
|
* ConsiderConvertingMethodToPropertyRule [Adrian Tsai]
|
|
* DisposableFieldsShouldBeDisposedRule [Andreas Noever]
|
|
* DisposableTypesShouldHaveFinalizerRule [Andreas Noever]
|
|
* EnsureSymmetryForOverloadedOperatorsRule [Andreas Noever]
|
|
* EnumsShouldDefineAZeroValueRule [Sebastien Pouliot]
|
|
* FinalizersShouldBeProtectedRule [Daniel Abramov]
|
|
* FinalizersShouldCallBaseClassFinalizerRule [Daniel Abramov]
|
|
* FlagsShouldNotDefineAZeroValueRule [Sebastien Pouliot]
|
|
* MainShouldNotBePublicRule [Daniel Abramov]
|
|
* MissingAttributeUsageOnCustomAttributeRule [Daniel Abramov]
|
|
* OperatorEqualsShouldBeOverloadedRule [Andreas Noever]
|
|
* OverrideEqualsMethodRule [Andreas Noever]
|
|
* ProvideAlternativeNamesForOperatorOverloadsRule [Andreas Noever]
|
|
* TypesShouldBeInsideNamespacesRule [Sebastien Pouliot]
|
|
* TypesWithDisposableFieldsShouldBeDisposableRule [Andreas Noever]
|
|
* TypesWithNativeFieldsShouldBeDisposableRule [Andreas Noever]
|
|
|
|
Gendarme.Rules.Interoperability (new)
|
|
* GetLastErrorMustBeCalledRightAfterPInvokeRule [Andreas Noever]
|
|
* MarshalStringsInPInvokeDeclarationsRule [Daniel Abramov]
|
|
* PInvokeShouldNotBeVisibleRule [Andreas Noever]
|
|
* UseManagedAlternativesToPInvokeRule [Daniel Abramov]
|
|
|
|
Gendarme.Rules.Naming
|
|
* DoNotPrefixValuesWithEnumNameRule [Andreas Noever]
|
|
* DoNotUseReservedInEnumValueNamesRule [Andreas Noever]
|
|
* ParameterNamesShouldMatchOverridenMethodRule [Andreas Noever]
|
|
* UseCorrectCasing [Daniel Abramov]
|
|
* UseCorrectPrefixRule [Daniel Abramov]
|
|
* UseCorrectSuffixRule [Daniel Abramov]
|
|
* UsePreferredTermsRule [Daniel Abramov]
|
|
|
|
Gendarme.Rules.Performance
|
|
* AvoidReturningArraysOnPropertiesRule [Adrian Tsai]
|
|
* AvoidUnsealedConcreteAttributesRule [Daniel Abramov]
|
|
|
|
Gendarme.Rules.Portability
|
|
* ExitCodeIsLimitedOnUnixRule [Daniel Abramov]
|
|
* FeatureRequiresRootPrivilegeOnUnixRule [Andreas Noever]
|
|
* MonoCompatibilityReviewRule [Andreas Noever]
|
|
|
|
Gendarme.Rules.Security
|
|
* ArrayFieldsShouldNotBeReadOnlyRule [Andreas Noever]
|
|
* NativeFieldsShouldNotBeVisibleRule [Andreas Noever]
|
|
* StaticConstructorsShouldBePrivateRule [Daniel Abramov]
|
|
|
|
Gendarme.Rules.Ui
|
|
* UseSTAThreadAttributeOnSWFEntryPointsRule [Daniel Abramov]
|
|
|
|
2007-12-20 Version 0.0.4
|
|
|
|
After a long time, many fixes, useful features (e.g. inclusion and
|
|
exclusion) and hours trimming down false positives, we're proud to
|
|
announce Gendarme 0.0.4!
|
|
|
|
Many of the new rules were contributed during the Google Summer
|
|
of Code 2007.
|
|
|
|
Gendarme.Rules.BadPractice
|
|
* CloneMethodShouldNotReturnNullRule [Nidhi Rawal]
|
|
* EqualShouldHandleNullArgRule [Nidhi Rawal]
|
|
* ImplementingEqualsButNotGetHashCodeAndViceVersaRule [Nidhi Rawal]
|
|
* ToStringReturnsNullRule [Nidhi Rawal]
|
|
|
|
Gendarme.Rules.Concurrency
|
|
* WriteStaticFieldFromInstanceMethodRule [Sebastien Pouliot]
|
|
|
|
Gendarme.Rules.Correcness
|
|
* AvoidConstructorsInStaticTypesRule [Lukasz Knop]
|
|
* CallingEqualsWithNullArgRule [Nidhi Rawal]
|
|
* FloatComparisonRule [Lukasz Knop]
|
|
* MethodCanBeMadeStaticRule [JB Evain]
|
|
* UseValueInPropertySetterRule [Lukasz Knop]
|
|
|
|
Gendarme.Rules.Design (new)
|
|
* DontDeclareProtectedFieldsInSealedClassRule [Nidhi Rawal]
|
|
* UsingCloneWithoutImplementingICloneableRule [Nidhi Rawal]
|
|
|
|
Gendarme.Rules.Exceptions
|
|
* DontSwallowErrorsCatchingNonspecificExceptionRule [Nestor Salceda]
|
|
|
|
Gendarme.Rules.Naming (new)
|
|
* AttributesEndsWithAttributeSuffixRule [Nestor Salceda]
|
|
* DetectNonAlphaNumericsInTypeNamesRule [Nidhi Rawal]
|
|
* EnumsNotEndsWIthEnumOrFlagsSuffixRule [Nestor Salceda]
|
|
* UsePluralNameInEnumFlagsRule [Nestor Salceda]
|
|
* UseSingularNameInEnumsUnlessAreFlagsRule [Nestor Salceda]
|
|
|
|
Gendarme.Rules.Performance
|
|
* AvoidToStringOnStringRule [Lukasz Knop]
|
|
* AvoidUncalledPrivateCodeRule [Nidhi Rawal]
|
|
* AvoidUninstantiatedInternalClassesRule [Nidhi Rawal]
|
|
* AvoidUnusedParametersRule [Nestor Salceda]
|
|
* DontIgnoreMethodResultRule [Lukasz Knop]
|
|
|
|
Gendarme.Rules.Smells (new)
|
|
* AvoidCodeDuplicatedInSameClassRule [Nestor Salceda]
|
|
* AvoidCodeDuplicatedInSiblingClassesRule [Nestor Salceda]
|
|
* AvoidLargeClassRule [Nestor Salceda]
|
|
* AvoidLongMethodsRule [Nestor Salceda]
|
|
* AvoidLongParameterListsRule [Nestor Salceda]
|
|
* AvoidSpeculativeGeneralityRule [Nestor Salceda]
|
|
|
|
Gendarme.Rules.Ui (new)
|
|
* GtkSharpExecutableTargetRule [Sebastien Pouliot]
|
|
* SystemWindowsFormsExecutableTargetRule [Sebastien Pouliot]
|
|
|
|
A special thanks to Nestor Salceda for his continuing dedication
|
|
to the project including a lot of "not so fun" (but so important)
|
|
tasks, like merging, rule documentation & bug hunting. You rock!
|
|
|
|
2006-10-16 Version 0.0.3
|
|
|
|
* New rule for String.Empty [Sebastien Pouliot]
|
|
* New XML and HTML (via XSL transform) output [Christian Birkl,
|
|
Sebastien Pouliot]
|
|
* Updated to latest Cecil API [JBEvain]
|
|
|
|
2006-06-19 Version 0.0.2
|
|
|
|
* Aaron Tomb added new rules for Concurrency and Correctness (based
|
|
on his works in Google's Summer of Code 2005) and updated the
|
|
framework;
|
|
* Russell Morris added new rules for exceptions management.
|
|
|
|
2005-11-03 Version 0.0.1
|
|
|
|
* Initial version. Expect everything to change before 0.0.2 ;-)
|
|
|