[SP-pm] Acho que fui enganado!
Thiago Rondon
thiago at aware.com.br
Sun Dec 5 13:36:08 PST 2010
Em 05-12-2010 12:57, Adriano Ferreira escreveu:
>
>
> 2010/12/5 Alexei Znamensky <russoz em gmail.com <mailto:russoz em gmail.com>>
>
>
> Eu procurei por Business::BR::Ids (que é módulo, mas que também é
> o nome =~ s/-/::/g do tar ball. Na hora, presumi que funcionaria isso.
>
>
> O negócio é que as distribuições (ou tarballs) como coleções de
> packages podem mudar à vontade do desenvolvedor (embora isto não
> aconteça muito na prática, mas que acontece, acontece). Mas só esta
> possibilidade cria um problema muito grande para mapear dependências
> de módulos (ou packages) para distribuições.
>
> Pensando um pouco, o negócio é que as dependências dos packages em uma
> distribuição deviam incluir os packages da própria distribuição, algo
> assim:
>
> Business::BR::CPF depende de Business::BR::Id (esteja ou não no
> mesmo pacote)
>
> mas isto é um "can of worms" devido à dificuldade de descobir
> dependências olhando em código fonte Perl – é fácil encontrar "require
> M" e "use M", mas que tal
>
> $M->require (com UNIVERSAL::require)
> load($M) (com Module::load)
> eval STRING
>
> e muitas outras formas de fazer o "link" dinâmico entre módulos. E tem
> mais, alguns destes "statements" serão dependências reais e outros
> módulos que colaboram. Neste último caso, só análise semântica feita
> por um humano seria capaz em alguns casos de fazer uma decisão
> acertada a respeito.
>
Outro fator, é a inclusão de módulos novos em distribuições novas do
Perl, ou seja um módulo pode ser dependente na versão 5.8 e na versão
5.10 não... e dependendo do teu cenário você pode "se esquecer" de
adicionar esta dependência.
Russo,
Talvez você espera-se algo como o Test::UseAllModules ou Test::Compile,
porem mesmo assim você terá problemas dependendo do teu cenário.
Por isto o CPAN::Testers é sensacional. :-) Acredito que a função das
dependências é estritamente para oferecer o pacote no maior número de
cenários possiveis, seja plataforma, distribuições, versões e etc.. E
não uma inteligencia para saber se alguém escreveu determinado módulo,
acredito que isto com informações (nome, documentação) para ser
encontrados basta, afinal é por isto que falamos e falam tanto do CPAN.
Por exemplo, o módulo que você criticou pela dependência "errada",
segundo o CPAN::Testers resolve bem o problema na questão de funcionalidade:
http://www.cpantesters.org/distro/M/MooseX-Types-CPF.html#MooseX-Types-CPF-0.02
Graças ao trabalho do Adriano no Bussiness::BR que já é um módulo de
qualidade para a tarefa e ao Moose::Types, a minha tarefa foi apenas
apontar para eles. ;-)
Abs!
-Thiago Rondon
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20101205/841036a5/attachment.html>
More information about the SaoPaulo-pm
mailing list