30 changed files with 732 additions and 7 deletions
@ -0,0 +1,17 @@ |
|||
Sebastien Pouliot <sebastien@ximian.com> |
|||
Aaron Tomb <atomb@soe.ucsc.edu> |
|||
Russell Morris <russell@russellsprojects.com> |
|||
Christian Birkl <christian.birkl@gmail.com> |
|||
Néstor Salceda <nestor.salceda@gmail.com> |
|||
Nidhi Rawal <sonu2404@gmail.com> |
|||
Lukasz Knop <lukasz.knop@gmail.com> |
|||
JB Evain <jbevain@novell.com> |
|||
Daniel Abramov <ex@vingrad.ru> |
|||
Andreas Noever <andreas.noever at gmail.com> |
|||
Adrian Tsai <adrian_tsai@hotmail.com> |
|||
Seo Sanghyeon <sanxiyn@gmail.com> |
|||
Scott Peterson <lunchtimemama@gmail.com> |
|||
Cedric Vivier <cedricv@neonux.com> |
|||
Andres G. Aragoneses <aaragoneses@novell.com> |
|||
Peter Johanson <peter@peterjohanson.com> |
|||
Jesse Jones <jesjones@mindspring.com> |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,21 @@ |
|||
Copyright (c) 2005-2008 Novell, Inc and the individuals listed on the |
|||
ChangeLog entries. |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining |
|||
a copy of this software and associated documentation files (the |
|||
"Software"), to deal in the Software without restriction, including |
|||
without limitation the rights to use, copy, modify, merge, publish, |
|||
distribute, sublicense, and/or sell copies of the Software, and to |
|||
permit persons to whom the Software is furnished to do so, subject to |
|||
the following conditions: |
|||
|
|||
The above copyright notice and this permission notice shall be |
|||
included in all copies or substantial portions of the Software. |
|||
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
|||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
|||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,443 @@ |
|||
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 ;-) |
|||
@ -0,0 +1,28 @@ |
|||
Gendarme README |
|||
|
|||
User-level documentation is available from the Mono:: project wiki |
|||
http://www.mono-project.com/Gendarme |
|||
|
|||
ROADMAP |
|||
http://www.mono-project.com/Gendarme.Roadmap |
|||
|
|||
Mailing list |
|||
http://groups.google.com/group/gendarme |
|||
|
|||
Newsgroup gateway to the mailing list |
|||
nntp://news.gmane.org/gmane.comp.gnome.mono.gendarme |
|||
|
|||
Developer documentation |
|||
http://groups.google.com/group/gendarme |
|||
|
|||
|
|||
IMPORTANT NOTES |
|||
|
|||
* Gendarme "official" build system is based on the auto*/Makefile files |
|||
and tested on monobuild. See mono-tools on http://mono.ximian.com/monobuild/ |
|||
(checking out gendarme without its parent dir 'mono-tools' is not supported) |
|||
|
|||
* Visual Studio solutions and projects files (usable by both MonoDevelop |
|||
and Visual Studio .NET 2008) are NOT always up to date with Makefiles. |
|||
This depends on the developer making changes and his personal access to |
|||
the developing environments. |
|||
Binary file not shown.
@ -0,0 +1,102 @@ |
|||
.\" |
|||
.\" Gendarme manual page. |
|||
.\" |
|||
.\" Author: |
|||
.\" Sebastien Pouliot <sebastien@ximian.com> |
|||
.\" |
|||
.\" Copyright (C) 2005-2006,2008 Novell, Inc (http://www.novell.com) |
|||
.\" |
|||
|
|||
.de Sp |
|||
.if t .sp .5v |
|||
.if n .sp |
|||
.. |
|||
.TH Gendarme "Gendarme 2.4.0.0" |
|||
.SH NAME |
|||
Gendarme \- Rule-based code analysis for Mono:: |
|||
.SH SYNOPSIS |
|||
.PP |
|||
.B gendarme [--config configfile] [--set ruleset] [--log file | --xml file | --html file] [options] assemblies ... |
|||
.SH DESCRIPTION |
|||
\fIGendarme\fP is a extensible rule-based tool to find problems in .NET |
|||
applications and libraries. Gendarme inspects programs and libraries that |
|||
contain code in ECMA CIL format (Mono and .NET) and looks for common |
|||
problems with the code, problems that compiler do not typically check or |
|||
have not historically checked. |
|||
.SH OPTIONS |
|||
.TP |
|||
.I "--config configfile" |
|||
Specify the configuration file. Default is 'rules.xml'. |
|||
.TP |
|||
.I "--set ruleset" |
|||
Specify the set of rules to verify. Default is '*'. |
|||
.TP |
|||
.I "--log file" |
|||
Save the text output to the specified file. |
|||
.TP |
|||
.I "--xml file" |
|||
Save the output, formatted as XML, to the specified file. |
|||
.TP |
|||
.I "--html file" |
|||
Save the output, formatted as HTML, to the specified file. |
|||
.TP |
|||
.I "--ignore ignore-file" |
|||
Do not report the known defects that are part of the specified file. |
|||
.TP |
|||
.I "--limit N" |
|||
Stop reporting after N defects are found. |
|||
.TP |
|||
.I "--severity [all | audit[+] | low[+|-] | medium[+|-] | high[+|-] | critical[-]],... |
|||
Filter the reported defects to include the specified severity levels. |
|||
Default is 'medium+' (i.e. low and audit levels are ignored). |
|||
.TP |
|||
.I "--confidence [all | low[+] | normal[+|-] | high[+|-] | total[-]],... |
|||
Filter the reported defects to include the specified confidence levels. |
|||
Default is 'normal+' (i.e. low level is ignored). |
|||
.TP |
|||
.I "--quiet" |
|||
Display minimal output (results) from the runner. |
|||
.TP |
|||
.I "--v|verbose" |
|||
Enable debugging output. You can supply several -v to augment debugging verbosity. |
|||
.TP |
|||
.I "--version" |
|||
Display Gendarme's version number. This number match the Mono release |
|||
where it was released. |
|||
.TP |
|||
.I "assemblies ..." |
|||
Specify the assemblies to verify. You can specify multiple filenames, |
|||
including masks (? and *). You can also provide a file that list several |
|||
assemblies (one by line) by prefixing the filename with @ on the command |
|||
line. |
|||
.SH FILES |
|||
.TP |
|||
.I rules.xml |
|||
This files contains a list of all the rulesets available to Gendarme. Each |
|||
ruleset includes a list of assemblies in which some, or all, rules can be |
|||
verified (include) or not (exclude). |
|||
+.TP |
|||
+.I gendarme.exe.config |
|||
+Used by debug versions of Gendarme to enable logging for rules. A config |
|||
+file will be generated automatically by the make file. To enable logging |
|||
+for a rule add a switch using the rule's name and set the value to 1. |
|||
.SH ENVIRONMENT VARIABLES |
|||
.TP |
|||
.I GENDARME_COLOR |
|||
The runner will use colors when displaying defects on the console. |
|||
By default colors are dark in order to display correctly on any |
|||
background. You can change this default to "light" (lighter colors |
|||
looks nice on a dark background, or "none" so no colors will be used. |
|||
E.g. |
|||
.nf |
|||
GENDARME_COLOR=none gendarme ... |
|||
.fi |
|||
.SH COPYRIGHT |
|||
Copyright (C) 2005-2008 Novell, Inc (http://www.novell.com) |
|||
.SH MAILING LISTS |
|||
Mailing lists are listed at the |
|||
http://groups.google.com/group/gendarme |
|||
.SH WEB SITE |
|||
http://www.mono-project.com/Gendarme |
|||
.SH SEE ALSO |
|||
.BR mono(1) |
|||
Binary file not shown.
@ -0,0 +1,111 @@ |
|||
<gendarme> |
|||
<ruleset name="self-test"> |
|||
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Concurrency.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Correctness.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Design.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Design.Generic.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Design.Linq.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Exceptions.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Naming.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Performance.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Portability.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Security.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Security.Cas.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Serialization.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Smells.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Ui.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Maintainability.dll"/> |
|||
</ruleset> |
|||
|
|||
<ruleset name="default"> |
|||
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Concurrency.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Correctness.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Design.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Design.Generic.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Design.Linq.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Exceptions.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Naming.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Performance.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Portability.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Security.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Security.Cas.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Serialization.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Ui.dll" /> |
|||
<rules include="*" from="Gendarme.Rules.Maintainability.dll"/> |
|||
<!-- no rule from Smells is included in this set --> |
|||
</ruleset> |
|||
|
|||
<ruleset name="mono-bcl"> |
|||
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Concurrency.dll"/> |
|||
<rules include="*" exclude="AvoidConstructorsInStaticTypesRule | MethodCanBeMadeStaticRule | NullDerefRule" |
|||
from="Gendarme.Rules.Correctness.dll"/> |
|||
<!-- no rule from Design is included in this set --> |
|||
<rules include="DontDestroyStackTraceRule" from="Gendarme.Rules.Exceptions.dll"/> |
|||
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/> |
|||
<!-- no rule from Naming is included in this set --> |
|||
<rules include="IDisposableWithDesctuctorWithoutSupressFinalizeRule | DontIgnoreMethodResultRule | |
|||
UseStringEmptyRule | AvoidToStringOnStringsRule | UsingStringLengthInsteadOfCheckingEmptyStringRule" |
|||
from="Gendarme.Rules.Performance.dll"/> |
|||
<rules include="*" exclude="MonoCompatibilityReviewRule" from="Gendarme.Rules.Portability.dll"/> |
|||
<rules include="*" exclude="ArrayFieldsShouldNotBeReadOnlyRule | NativeFieldsShouldNotBeVisibleRule" |
|||
from="Gendarme.Rules.Security.dll"/> |
|||
<!-- no rule from Ui is included in this set --> |
|||
</ruleset> |
|||
|
|||
<ruleset name="concurrency"> |
|||
<rules include="*" from="Gendarme.Rules.Concurrency.dll" /> |
|||
</ruleset> |
|||
<ruleset name="correctness"> |
|||
<rules include="*" from="Gendarme.Rules.Correctness.dll" /> |
|||
</ruleset> |
|||
<ruleset name="security"> |
|||
<rules include="*" from="Gendarme.Rules.Security.dll" /> |
|||
</ruleset> |
|||
<ruleset name="security-cas"> |
|||
<rules include="*" from="Gendarme.Rules.Security.Cas.dll" /> |
|||
</ruleset> |
|||
<ruleset name="performance"> |
|||
<rules include="*" from="Gendarme.Rules.Performance.dll" /> |
|||
</ruleset> |
|||
<ruleset name="portability"> |
|||
<rules include="*" from="Gendarme.Rules.Portability.dll" /> |
|||
</ruleset> |
|||
<ruleset name="exceptions"> |
|||
<rules include="*" from="Gendarme.Rules.Exceptions.dll" /> |
|||
</ruleset> |
|||
<ruleset name="ui"> |
|||
<rules include="*" from="Gendarme.Rules.Ui.dll" /> |
|||
</ruleset> |
|||
<ruleset name="naming"> |
|||
<rules include="*" from="Gendarme.Rules.Naming.dll"/> |
|||
</ruleset> |
|||
<ruleset name="smells"> |
|||
<rules include="*" from="Gendarme.Rules.Smells.dll"/> |
|||
</ruleset> |
|||
<ruleset name="badpractice"> |
|||
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/> |
|||
</ruleset> |
|||
<ruleset name="design"> |
|||
<rules include="*" from="Gendarme.Rules.Design.dll"/> |
|||
</ruleset> |
|||
<ruleset name="design-generic"> |
|||
<rules include="*" from="Gendarme.Rules.Design.Generic.dll"/> |
|||
</ruleset> |
|||
<ruleset name="design-linq"> |
|||
<rules include="*" from="Gendarme.Rules.Design.Linq.dll"/> |
|||
</ruleset> |
|||
<ruleset name="interoperability"> |
|||
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/> |
|||
</ruleset> |
|||
<ruleset name="serialization"> |
|||
<rules include="*" from="Gendarme.Rules.Serialization.dll"/> |
|||
</ruleset> |
|||
<ruleset name="maintainability"> |
|||
<rules include="*" from="Gendarme.Rules.Maintainability.dll"/> |
|||
</ruleset> |
|||
</gendarme> |
|||
Loading…
Reference in new issue