[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