[SP-pm] Critic... too much

Alexei Znamensky russoz at gmail.com
Sat Feb 19 06:16:14 PST 2011


Matei a cobra, agora vou mostrar o pau.

2011/2/19 Eden Cardim <edencardim em gmail.com>
[...]

> Observa que ele tá reclamando das violações na linha 3, então acho que o
> blib/lib/Queue/Base.pm está dessincronizado com esse código que você
> mostrou. Tenta re-executar o perlcritic passando o caminho explícito pro
> Queue::Base, aqui eu obtive o mesmo resultado do breno:
>

Repeti aqui e, obtive o mesmo resultado que vocês. Foi aí que eu comecei a
olhar para as
coisas-que-não-deveriam-influenciar-nisso-mas-não-há-nenhum-outro-bode-para-levar-a-culpa.
O
primeiro release que eu fiz do Queue::Base foi basicamente o módulo do autor
anterior com algumas pequenas alterações de código e eu troquei o
Makefile.PL de MakeMaker para Module::Install.

Nos últimos dias, no entanto, eu comecei a fuçar no Dist::Zilla, e o
Queue::Base foi a minha cobaia para isso. Na verdade, eu não coloquei o
teste de perl critic no modulo. Eu coloquei a linha

[CriticTests]

no dist.ini, e ele fez o resto. Além disso, eu também estou com o

[PkgVersion]

que, and I quote: "add a $VERSION to your packages". O problema é que, o
PkgVersion faz isso injetando o código:

------------------ cut here ------------------
BEGIN {
    $Queue::Base::VERSION = '2.1_02';
}
------------------ cut here ------------------

logo após o statement *package* do módulo, e antes do strict e do warning, o
que gera o erro no teste do Perl::Critic.

>>>>> "breno" == breno  <breno em rio.pm.org> writes:
>
>    breno> "blib"?
>
> >>>>> "Thiago" == Thiago  <thiagoglauco em ticursos.net> writes:
>
>    Thiago> blib/lib é a pasta onde o Queue::Base esta instalada na maquina
> dele.
>
> Apesar de poder instalar o módulo num diretório arbitrariamente chamado
> blib se quiser, blib ("build lib") costuma ser o diretório onde os
> builders/installers (ExtUtils::MakeMaker, Module::Install,
> Module::Build) usam pra fazer o build/staging do módulo antes de
> instalar. Então é possível que a source tree e o blib do russo esteja
> dessincronizada.
>

No caso, o blib é o diretório de build (como assim vocês não sabiam???
rsrsrs). Eden, dificilmente estaria dessincronizado nesse ponto, uma vez que
o Makefile iria atualizar de acordo com os timestamps.

Logo, o problema é que, o código que é efetivamente gerado (pelo plugin do
Dist::Zilla) não é Perl::Critic-friendly. Para reproduzir o problema, testem
com o arquivo do CPAN, não com o do git:

------------------ cut here ------------------
12:08:47 BRST ~ $ cpan
cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan[1]> look Queue::Base
...
cpan[1]> look Queue::BaseCPAN: File::Temp loaded ok (v0.22)
...

12:09:45 BRST ~/.local/share/.cpan/build/Queue-Base-2.1-BBsUi1 $ perlcritic
--brutal lib/Queue/Base.pm
...

Code before strictures are enabled at line 4, column 1.  See page 429 of
PBP.  (Severity: 5)
Code before warnings are enabled at line 4, column 1.  See page 431 of PBP.
 (Severity: 4)
------------------ cut here ------------------



-- 
Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [
www.flickr.com/photos/alexeiz]
«Only love / Can bring the rain / That makes you yearn to the sky»
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110219/dca5165e/attachment-0001.html>


More information about the SaoPaulo-pm mailing list