[Rio-pm] MakeFile

breno breno em rio.pm.org
Quinta Junho 7 11:32:16 PDT 2012


2012/6/7 Aureliano Guedes <guedes_1000 em hotmail.com>:
> Assim, toda distribuição, quando o autor submete ao CPAN, tem uma
> documentação. Essa documentação vai junto ao *.tar.gz?? Ela é o arquivo
> README, certo??
> Tem alguma formatação especial para o arquivo README ou eu posso escrever
> essa documentação da forma que eu preferir??
> Ela precisa estar em formato html ou pode ser escrito normal?
>

Você quer subir uma nova distribuição para o CPAN, é isso?

Peraí, tem algo errado...Essa sua mensagem só tem 1 hora, mas a sua
conta no CPAN tem uma distribuição "P50Tools" que subiu a 2 dias
atrás, já está na versão 0.5 e não tem README nem Changes. O ideal
nessas horas é perguntar *antes* de fazer, né?

Bom, enfim. Respondendo a sua pergunta: uma distribuição Perl vem com
3 arquivos essenciais de documentação:

 * README - dá informações genéricas da distribuição, em especial o
que é, como instalar e quem procurar em caso de dúvidas. Costuma ser
gerada automaticamente;

 * Changes - contém a lista de principais mudanças em cada versão.
Recomenda-se seguir o padrão em
https://metacpan.org/module/CPAN::Changes::Spec. A primeira versão
deste arquivo costuma ser criada automaticamente, e depois vc
incrementa ele manualmente a cada nova versão;

 * POD - Plain Old Documentation - documentação que você cria (ou que
é criada automaticamente pra vc) sobre cada um de seus módulos, como
decrição, lista de métodos, como utilizar, bugs, copyright, etc. POD é
uma linguagem de marcação simples baseada em tags na forma "=NNN".
Pode ficar em um arquivo separado, mas a maioria dos autores escreve
no próprio módulo.

Pode ser escrito "inline":

---------------------8<---------------------
package Bla;

=head2 new

cria o seu objeto. Recebe opcionalmente os seguintes parametros: .....

=end

sub new { ... }
--------------------->8---------------------

Ou, mais recomendado por alguns, no final do arquivo, após uma tag de __END__

---------------------8<---------------------
package Bla;

sub new { ... }

__END__

=head2 new

cria o seu objeto. Recebe opcionalmente os seguintes parametros: .....

=end
--------------------->8---------------------

Mais informações sobre o formato POD vc encontra em "perldoc perlpod".

Se tivesse usado o Module::Starter, um esqueleto de todos esses
arquivos teria sido criado para você. O Dist::Zilla também deveria ter
feito algo parecido, acho. Infelizmente não posso te ajudar nessa pq,
bem... não uso o Dist::Zilla.

Minha vez de perguntar: O que é o arquivo "mkf.pl" ? O que é o arquivo
"make"? Parecem coisas que você colocou sem querer dentro da dist. O
arquivo "MANIFEST" inclui a lista de arquivos que vão entrar no seu
.tar.gz. Retirar os arquivos dessa lista significa que você pode
usá-los sem se preocupar com eles entrando na sua distribuição. Muitos
autores preferem usar um MANIFEST.SKIP que cria um MANIFEST
automaticamente incluindo tudo menos o que vc definir no arquivo
(incluindo expressões regulares para nomes de arquivos que vc não quer
botar). O Dist::Zilla deve ter uma opção pra isso, sinceramente não me
lembro.

Mais importante: onde estão os seus testes?

Não tão importante mas que me deixou muito curioso: pq uma
distribuição para pentest se chama "P50Tools"?

[]s

-b


Mais detalhes sobre a lista de discussão Rio-pm