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 - Review Request: perl-Perl-Critic - Critique Perl source code for best-practices
Summary: Review Request: perl-Perl-Critic - Critique Perl source code for best-practices
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jason Tibbitts
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks: FE-ACCEPT
TreeView+ depends on / blocked
 
Reported: 2006-09-23 11:09 UTC by Jose Pedro Oliveira
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-09-24 12:02:30 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.