Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 207795

Summary: Review Request: perl-Perl-Critic - Critique Perl source code for best-practices
Product: [Fedora] Fedora Reporter: Jose Pedro Oliveira <jose.p.oliveira.oss>
Component: Package ReviewAssignee: Jason Tibbitts <j>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-09-24 12:02:30 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 163779    

Description Jose Pedro Oliveira 2006-09-23 11:09:34 UTC
Spec URL:
ftp://perl.di.uminho.pt/pub/fedora/perl-Perl-Critic.spec

SRPM URL:
ftp://perl.di.uminho.pt/pub/fedora/perl-Perl-Critic-0.2-1.src.rpm

Description:
Perl::Critic is an extensible framework for creating and applying coding
standards to Perl source code. Essentially, it is a static source code
analysis engine. Perl::Critic is distributed with a number of
Perl::Critic::Policy modules that attempt to enforce various coding
guidelines. Most Policy modules are based on Damian Conway's book Perl
Best Practices. However, Perl::Critic is not limited to PBP and will
even support Policies that contradict Conway. You can enable, disable,
and customize those Polices through the Perl::Critic interface. You can
also create new Policy modules that suit your own tastes.

Comment 1 Jason Tibbitts 2006-09-23 15:18:23 UTC
That sure is a large number of submodules with really long names....

* source files match upstream:
   a31ab7c92cdb0501c1a3e298495f61c5  Perl-Critic-0.2.tar.gz
* package meets naming and packaging guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* dist tag is present.
* build root is correct.
* license field matches the actual license.
* license is open source-compatible.  License text included in package.
* latest version is being packaged.
* BuildRequires are proper.
* %clean is present.
* package builds in mock (development, x86_64).
* package installs properly
* rpmlint is silent.
* final provides and requires are sane:
   perl(Perl::Critic) = 0.20
   perl(Perl::Critic::Config) = 0.20
   perl(Perl::Critic::Document) = 0.20
   perl(Perl::Critic::Policy) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction) = 0.20
   perl(Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock) = 0.20
   perl(Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading) = 0.20
   perl(Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA) = 0.20
   perl(Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless) = 0.20
   perl(Perl::Critic::Policy::CodeLayout::ProhibitHardTabs) = 0.20
   perl(Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins) = 0.20
   perl(Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists) = 0.20
   perl(Perl::Critic::Policy::CodeLayout::RequireTidyCode) = 0.20
   perl(Perl::Critic::Policy::CodeLayout::RequireTrailingCommas) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitDeepNests) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode) = 0.20
   perl(Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks) = 0.20
   perl(Perl::Critic::Policy::Documentation::RequirePodAtEnd) = 0.20
   perl(Perl::Critic::Policy::Documentation::RequirePodSections) = 0.20
   perl(Perl::Critic::Policy::ErrorHandling::RequireCarping) = 0.20
   perl(Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators) = 0.20
   perl(Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles) = 0.20
   perl(Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest) = 0.20
   perl(Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect) = 0.20
   perl(Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop) = 0.20
   perl(Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen) = 0.20
   perl(Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint) = 0.20
   perl(Perl::Critic::Policy::Miscellanea::ProhibitFormats) = 0.20
   perl(Perl::Critic::Policy::Miscellanea::ProhibitTies) = 0.20
   perl(Perl::Critic::Policy::Miscellanea::RequireRcsKeywords) = 0.20
   perl(Perl::Critic::Policy::Modules::ProhibitAutomaticExportation) = 0.20
   perl(Perl::Critic::Policy::Modules::ProhibitEvilModules) = 0.20
   perl(Perl::Critic::Policy::Modules::ProhibitMultiplePackages) = 0.20
   perl(Perl::Critic::Policy::Modules::RequireBarewordIncludes) = 0.20
   perl(Perl::Critic::Policy::Modules::RequireEndWithOne) = 0.20
   perl(Perl::Critic::Policy::Modules::RequireExplicitPackage) = 0.20
   perl(Perl::Critic::Policy::Modules::RequireVersionVar) = 0.20
   perl(Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames) = 0.20
   perl(Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseSubs) = 0.20
   perl(Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars) = 0.20
   perl(Perl::Critic::Policy::References::ProhibitDoubleSigils) = 0.20
   perl(Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest) = 0.20
   perl(Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting) = 0.20
   perl(Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching) =
0.20
   perl(Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils) = 0.20
   perl(Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms) = 0.20
   perl(Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity) = 0.20
   perl(Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef) = 0.20
   perl(Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes) = 0.20
   perl(Perl::Critic::Policy::Subroutines::ProtectPrivateSubs) = 0.20
   perl(Perl::Critic::Policy::Subroutines::RequireFinalReturn) = 0.20
   perl(Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict) = 0.20
   perl(Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings) = 0.20
   perl(Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict) = 0.20
   perl(Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings) = 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma) = 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes) = 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters) =
0.20
  
perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals)
= 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros) = 0.20
  
perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators)
= 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes) = 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings) = 0.20
  
perl(Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars)
= 0.20
   perl(Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators) = 0.20
  
perl(Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator)
= 0.20
  
perl(Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator)
= 0.20
   perl(Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations) = 0.20
   perl(Perl::Critic::Policy::Variables::ProhibitLocalVars) = 0.20
   perl(Perl::Critic::Policy::Variables::ProhibitMatchVars) = 0.20
   perl(Perl::Critic::Policy::Variables::ProhibitPackageVars) = 0.20
   perl(Perl::Critic::Policy::Variables::ProhibitPunctuationVars) = 0.20
   perl(Perl::Critic::Policy::Variables::ProtectPrivateVars) = 0.20
   perl(Perl::Critic::Policy::Variables::RequireInitializationForLocalVars) = 0.20
   perl(Perl::Critic::Policy::Variables::RequireLexicalLoopIterators) = 0.20
   perl(Perl::Critic::Policy::Variables::RequireNegativeIndices) = 0.20
   perl(Perl::Critic::TestUtils) = 0.20
   perl(Perl::Critic::Utils) = 0.20
   perl(Perl::Critic::Violation) = 0.20
   perl-Perl-Critic = 0.2-1.fc6
  =
   /usr/bin/perl
   perl(:MODULE_COMPAT_5.8.8)
   perl(Carp)
   perl(Config::Tiny)
   perl(English)
   perl(File::Spec)
   perl(File::Spec::Unix)
   perl(Getopt::Long)
   perl(IO::String)
   perl(List::MoreUtils)
   perl(List::Util)
   perl(Module::Pluggable)
   perl(PPI)
   perl(PPI::Document)
   perl(Perl::Critic)
   perl(Perl::Critic::Config)
   perl(Perl::Critic::Document)
   perl(Perl::Critic::Utils)
   perl(Perl::Critic::Violation)
   perl(Perl::Tidy)
   perl(Pod::PlainText)
   perl(Pod::Usage)
   perl(Scalar::Util)
   perl(String::Format)
   perl(base)
   perl(overload)
   perl(strict)
   perl(warnings)
* %check is present and all tests pass:
   All tests successful.
   Files=26, Tests=1588, 24 wallclock secs (23.14 cusr +  1.35 csys = 24.49 CPU)
* package is not relocatable.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* no scriptlets present.
* code, not content.
* documentation is small, so no -docs subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.

APPROVED

Comment 2 Jose Pedro Oliveira 2006-09-23 17:19:34 UTC
Tibbs,

Thanks for the review.
The package has been imported and already built for devel.
I will close this ticket as soon as the package gets built for FC-5 (branch
pending).

jpo

Comment 3 Jose Pedro Oliveira 2006-09-24 12:02:30 UTC
Just built for FC-5.