Camillo we should really spend some time updating the plots in the jenkins job : https://ci.inria.fr/pharo/job/Pharo-3.0-CodeCritics-Beta/ . Because then for Pharo 3.0 release we could advertse saying look at the plots it is the code quality improvements for this release. 2013/5/16 Camillo Bruni <camillobruni@gmail.com>
I spent some time yesterday evening with ben to compile a set of nice validation rules for the monkey, this is what we came up with ;) :
CIRunTestsRule & "Only after the tests succeeded validate anything else" ( "Hard rules that lead to immediate WorkNeeded state:" RBUnclassifiedMethodsRule harden, RBUndeclaredReferenceRule harden, RBNoClassCommentRule harden, RBDefinesEqualNotHashRule harden, RBEquivalentSuperclassMethodsRule harden, RBJustSendsSuperRule harden, RBSubclassResponsibilityNotDefinedRule harden, RBTempVarOverridesInstVarRule harden, RBUndeclaredReferenceRule harden, RBVariableNotDefinedRule harden, RBEqualNotUsedRule harden, RBOnlyReadOrWrittenTemporaryRule harden, RBPrecedenceRule harden, RBSendsDeprecatedMethodToGlobalRule harden, RBSizeCheckRule harden, RBUnconditionalRecursionRule harden, RBUnoptimizedToDoRule harden, RBBetweenAndRule harden, RBCodeCruftLeftInMethodsRule harden,
"Soft rules that only lead to warnings:" RBInstanceVariableCapitalizationRule, RBClassVariableCapitalizationRule, RBMissingSubclassResponsibilityRule, RBOverridesSpecialMessageRule, RBRefersToClassRule, RBBadMessageRule, RBUsesTrueRule, RBSendsDifferentSuperRule, RBInconsistentMethodClassificationRule, RBInstVarInSubclassesRule, RBSentNotImplementedRule, RBLongMethodsRule, RBCollectionProtocolRule, RBConsistencyCheckRule, RBContainsRule, RBDetectContainsRule, RBEmptyExceptionHandlerRule, RBEndTrueFalseRule, RBEqualsTrueRule, RBExtraBlockRule, RBFileBlocksRule, RBFloatEqualityComparisonRule, RBLiteralArrayCharactersRule, RBMissingYourselfRule, RBModifiesCollectionRule, RBReturnsIfTrueRule, RBSearchingLiteralRule, RBUnnecessaryAssignmentRule, RBNotEliminationRule, RBAtIfAbsentRule, RBAllAnyNoneSatisfyRule, RBClassNameInSelectorRule );
Don't be scared nor offended if your issue submission will get a lot of feedback in the near future. We're tweaking the rules to get decent feedback and not just blind noise.
-- Clément Béra Mate Virtual Machine Engineer Bâtiment B 40, avenue Halley 59650 *Villeneuve d'Ascq*