[SP-pm] Critic... too much

Alexei Znamensky russoz at gmail.com
Sun Feb 20 05:17:35 PST 2011


2011/2/20 breno <breno em rio.pm.org>
[...]

> suficiente. Agora que vc detalhou melhor o problema e as
> circunstâncias associadas, ficou mais fácil :)
>

idem ;-)

[...]

> 1. Remover o [PkgVersion] do seu dist.ini e configurar $VERSION
> manualmente. Mas se vc está usando o dzil, suponho que o principal
> motivo seja a preguiça, e quando a gente começa a atualizar versão
>

exatamente. #1 is out


> 2. Colocar o "header da alegria" antes da definição do pacote. Ou seja:
>
> --------------8<--------------
> use strict;
> use warnings;
> package Queue::Base;
> ...
> -------------->8--------------
>
> Testei aqui com o Queue::Base e o "dzil build" criou um Base.pm que
> passava no critic --brutal (pelo menos em relação ao teste em
> questão);
>

Eu havia tentado isso e ele tinha reclamado - mas pode ser que a reclamação
dele tenha sido causada também pelo BEGIN { } antes do package - eu não
refiz esse teste após o entendimento do problema.


> 2.5. Usar o plugin [Prepender] com as linhas do "header da alegria",
> pra não precisar fazer o passo 2 manualmente;
>

Essa solução é a que me foi indicada no canal #distzilla, mas confesso que
não gostei muito dela, ainda que eu não saiba explicar exatamente o porquê.


> 3. Utilizar o [OurPkgVersion] em vez do [PkgVersion]. Também resolve o
> problema.
> http://search.cpan.org/perldoc?Dist::Zilla::Plugin::OurPkgVersion


#3 foi a solução adotada. Ela tem um outro problema, mas um no qual eu posso
atuar mais facilmente: o OurPkgVersion gera um código, para uma versão 3.4.5
(por exemplo), que é assim:

our $VERSION = 3.4.5;

- sem aspas em torno do número de versão. Eu não lembro (e estou com
preguiça agora de procurar) as regras de parsing do Perl para coisas
numéricas com vários pontos no meio, mas isso pra mim tem cheiro de coisa
que vai feder depois e vai demorar até lembrar que isso é o problema.

Já estou gerando um patch para o OurPkgVersion para gerar o código COM
aspas.


> 4. Adicionar a tag mágica  ## no critic (RequireUseStrict,
> RequireUseWarnings);  (não recomendo)
>

Nem eu ;-)


> 5. Fazer um patch para as políticas associadas:
> Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict,
> Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings, para
> permitir blocos de compile-time (como BEGIN {} ). Já existe um pedido
> pra isso no RT do Perl::Critic
> (https://rt.cpan.org/Public/Bug/Display.html?id=65839) mas o autor não
> parece muito inclinado a fazer isso, pelo menos não com os argumentos
> fornecidos (e sem um patch já pronto). Há uma discussão maior sobre a
> mesma questão em https://rt.cpan.org/Public/Bug/Display.html?id=28676
> - acho que ainda não decidiram se é um bug ou uma feature :)
>

Bom, se já tem nego trabalhando nisso, e já há controvérsia, isso é garantia
de que esta solução demoraria muito para ser implementada, se é que seria.
Dado que a #3 funciona (e eventualmente o patch poderá entrar mais rápido),
não justifica ir por este caminho. #5 is out.

Há uma opção #6: fazer um patch para o PkgVersion, para que ele gere o BEGIN
{ ... } *após* os headers "da alegria", mas essa alternativa tem outros
problemas que precisariam ser resolvidos.


> Espero ter ajudado!
>

As always! :-)

[]s,
-- 
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/20110220/4e4859fb/attachment-0001.html>


More information about the SaoPaulo-pm mailing list