diff --git a/build/build.proj b/build/build.proj index 566bc8ae..9591143e 100644 --- a/build/build.proj +++ b/build/build.proj @@ -1,10 +1,11 @@ + + + Debug False - - @@ -33,12 +34,14 @@ - - - - + + + + - + + + \ No newline at end of file diff --git a/tools/Gendarme-2.4/AUTHORS b/tools/Gendarme-2.4/AUTHORS new file mode 100644 index 00000000..55c17ea8 --- /dev/null +++ b/tools/Gendarme-2.4/AUTHORS @@ -0,0 +1,17 @@ +Sebastien Pouliot +Aaron Tomb +Russell Morris +Christian Birkl +Néstor Salceda +Nidhi Rawal +Lukasz Knop +JB Evain +Daniel Abramov +Andreas Noever +Adrian Tsai +Seo Sanghyeon +Scott Peterson +Cedric Vivier +Andres G. Aragoneses +Peter Johanson +Jesse Jones diff --git a/tools/Gendarme-2.4/Gendarme.Framework.dll b/tools/Gendarme-2.4/Gendarme.Framework.dll new file mode 100644 index 00000000..8bb27d62 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Framework.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.BadPractice.dll b/tools/Gendarme-2.4/Gendarme.Rules.BadPractice.dll new file mode 100644 index 00000000..b88619a4 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.BadPractice.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Concurrency.dll b/tools/Gendarme-2.4/Gendarme.Rules.Concurrency.dll new file mode 100644 index 00000000..791b4a60 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Concurrency.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Correctness.dll b/tools/Gendarme-2.4/Gendarme.Rules.Correctness.dll new file mode 100644 index 00000000..4ca6511a Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Correctness.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Design.Generic.dll b/tools/Gendarme-2.4/Gendarme.Rules.Design.Generic.dll new file mode 100644 index 00000000..830f3b51 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Design.Generic.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Design.Linq.dll b/tools/Gendarme-2.4/Gendarme.Rules.Design.Linq.dll new file mode 100644 index 00000000..a68043db Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Design.Linq.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Design.dll b/tools/Gendarme-2.4/Gendarme.Rules.Design.dll new file mode 100644 index 00000000..b59a2921 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Design.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Exceptions.dll b/tools/Gendarme-2.4/Gendarme.Rules.Exceptions.dll new file mode 100644 index 00000000..4c957674 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Exceptions.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Interoperability.dll b/tools/Gendarme-2.4/Gendarme.Rules.Interoperability.dll new file mode 100644 index 00000000..4e7a537a Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Interoperability.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Maintainability.dll b/tools/Gendarme-2.4/Gendarme.Rules.Maintainability.dll new file mode 100644 index 00000000..c09a61f8 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Maintainability.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Naming.dll b/tools/Gendarme-2.4/Gendarme.Rules.Naming.dll new file mode 100644 index 00000000..ebb81409 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Naming.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Performance.dll b/tools/Gendarme-2.4/Gendarme.Rules.Performance.dll new file mode 100644 index 00000000..b5410218 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Performance.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Portability.dll b/tools/Gendarme-2.4/Gendarme.Rules.Portability.dll new file mode 100644 index 00000000..dea5e601 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Portability.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Security.Cas.dll b/tools/Gendarme-2.4/Gendarme.Rules.Security.Cas.dll new file mode 100644 index 00000000..79c30055 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Security.Cas.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Security.dll b/tools/Gendarme-2.4/Gendarme.Rules.Security.dll new file mode 100644 index 00000000..da876f25 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Security.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Serialization.dll b/tools/Gendarme-2.4/Gendarme.Rules.Serialization.dll new file mode 100644 index 00000000..8bb5cf36 Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Serialization.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Smells.dll b/tools/Gendarme-2.4/Gendarme.Rules.Smells.dll new file mode 100644 index 00000000..e3a265ac Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Smells.dll differ diff --git a/tools/Gendarme-2.4/Gendarme.Rules.Ui.dll b/tools/Gendarme-2.4/Gendarme.Rules.Ui.dll new file mode 100644 index 00000000..57fdf22f Binary files /dev/null and b/tools/Gendarme-2.4/Gendarme.Rules.Ui.dll differ diff --git a/tools/Gendarme-2.4/MIT.X11 b/tools/Gendarme-2.4/MIT.X11 new file mode 100644 index 00000000..34a52c9e --- /dev/null +++ b/tools/Gendarme-2.4/MIT.X11 @@ -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. diff --git a/tools/Gendarme-2.4/Mono.Cecil.Mdb.dll b/tools/Gendarme-2.4/Mono.Cecil.Mdb.dll new file mode 100644 index 00000000..3b9a8e60 Binary files /dev/null and b/tools/Gendarme-2.4/Mono.Cecil.Mdb.dll differ diff --git a/tools/Gendarme-2.4/Mono.Cecil.Pdb.dll b/tools/Gendarme-2.4/Mono.Cecil.Pdb.dll new file mode 100644 index 00000000..6c8668c6 Binary files /dev/null and b/tools/Gendarme-2.4/Mono.Cecil.Pdb.dll differ diff --git a/tools/Gendarme-2.4/Mono.Cecil.dll b/tools/Gendarme-2.4/Mono.Cecil.dll new file mode 100644 index 00000000..ffc515ce Binary files /dev/null and b/tools/Gendarme-2.4/Mono.Cecil.dll differ diff --git a/tools/Gendarme-2.4/NEWS b/tools/Gendarme-2.4/NEWS new file mode 100644 index 00000000..4887c278 --- /dev/null +++ b/tools/Gendarme-2.4/NEWS @@ -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 ;-) diff --git a/tools/Gendarme-2.4/README b/tools/Gendarme-2.4/README new file mode 100644 index 00000000..900cc612 --- /dev/null +++ b/tools/Gendarme-2.4/README @@ -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. diff --git a/tools/Gendarme-2.4/gendarme-wizard.exe b/tools/Gendarme-2.4/gendarme-wizard.exe new file mode 100644 index 00000000..0c20cae4 Binary files /dev/null and b/tools/Gendarme-2.4/gendarme-wizard.exe differ diff --git a/tools/Gendarme-2.4/gendarme.1 b/tools/Gendarme-2.4/gendarme.1 new file mode 100644 index 00000000..e765270d --- /dev/null +++ b/tools/Gendarme-2.4/gendarme.1 @@ -0,0 +1,102 @@ +.\" +.\" Gendarme manual page. +.\" +.\" Author: +.\" Sebastien Pouliot +.\" +.\" 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) diff --git a/tools/Gendarme-2.4/gendarme.exe b/tools/Gendarme-2.4/gendarme.exe new file mode 100644 index 00000000..f28c0e4c Binary files /dev/null and b/tools/Gendarme-2.4/gendarme.exe differ diff --git a/tools/Gendarme-2.4/rules.xml b/tools/Gendarme-2.4/rules.xml new file mode 100644 index 00000000..890f499e --- /dev/null +++ b/tools/Gendarme-2.4/rules.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +