<div dir="ltr">garu++<div><br></div><div>Samir:</div><div><a href="http://www.troll.me/images/the-chuck-norris/chuck-norris-approved-ship-it.jpg">http://www.troll.me/images/the-chuck-norris/chuck-norris-approved-ship-it.jpg</a><br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-05-23 11:22 GMT-03:00 breno <span dir="ltr"><<a href="mailto:oainikusama@gmail.com" target="_blank">oainikusama@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Samir, lança logo o módulo que agora eu to curioso :D<br>
<br>
Não se prenda por "não tem testes", "não tá pronto", "não tá<br>
perfeito", ou "o que vão pensar de mim". Lembre que não é estático e<br>
que você sempre pode lançar outras versões depois - quantas vc quiser!<br>
- corrigindo ou melhorando. Lembra também que só vai usar quem quiser.<br>
<br>
O próprio Tokuhiro Matsuno, um dos autores mais assíduos do CPAN,<br>
criador de módulos como Test::Pretty, Minilla, HTML::Escape e tantos<br>
outros, costuma lançar seus primeiros módulos sem testes ou<br>
documentação, e vai melhorando gradativamente. O Ricardo Signes,<br>
mantenedor do Perl e maior autor do CPAN com módulos como Dist::Zilla<br>
CPAN::Mini, Email::Sender entre vários outros, é conhecido por lançar<br>
módulos sem documentação na primeira versão, e ir melhorando nas<br>
seguintes. Há até casos extremos que não concordo muito mas acontecem,<br>
como a primeira versão do Mojo, que quando o sri lançou era só um<br>
placeholder pra reservar o namespace!<br>
<br>
Não tenha medo de lançar seu código para o mundo. O pior que pode<br>
acontecer é ninguém usar (nem você) ;-)<br>
<br>
go go go! Aperta o botão! Você vai ver que não é nada de mais e<br>
rapidinho estará lançando um módulo atrás do outro :D<br>
<br>
<br>
[]s<br>
<br>
-b<br>
<br>
<br>
<br>
2014-05-23 10:56 GMT-03:00 Renato Santos <<a href="mailto:renato.cron@gmail.com">renato.cron@gmail.com</a>>:<br>
<div class="HOEnZb"><div class="h5">> Eu não dou tanto valor pro número,<br>
><br>
> a primeira versão pode ser a 10.02.56 que eu não vo ligar, desde que a<br>
> proxima seja maior.<br>
><br>
> e ai sim, entra o negocio de usar versões impares, tipo, 10.03_55 pra<br>
> publicar algum pre-release e testar sob o cpan inteiro.<br>
><br>
><br>
><br>
><br>
> 2014-05-23 6:55 GMT-03:00 Aureliano Guedes <<a href="mailto:guedes_1000@hotmail.com">guedes_1000@hotmail.com</a>>:<br>
><br>
>> De novo, posso esta falando besteira, me corrijam se eu tiver errado. Mas<br>
>> acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já seriam<br>
>> números de versões funcionais.<br>
>> Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e<br>
>> correções de pequenos bugs ou revisão de acordo com a versão do perl atual<br>
>> se preciso, entao o 3.0 seria realmente implementações de novas<br>
>> funcionalidades ou mesmo a exclusão de alguma outra já existente.<br>
>><br>
>> --- Mensagem Original ---<br>
>><br>
>> De: "Samir Cury" <<a href="mailto:samircurys@gmail.com">samircurys@gmail.com</a>><br>
>> Enviado: 23 de Maio de 2014 01:37<br>
>> Para: "Perl Mongers Rio de Janeiro" <<a href="mailto:rio-pm@pm.org">rio-pm@pm.org</a>><br>
>> Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN<br>
>><br>
>> Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de<br>
>> subir o modulo.<br>
>><br>
>> Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de<br>
>> 2012 por nao ter testes decentes. Agora que tem estou procurando nao deixar<br>
>> o otimo ser inimigo do bom. "release early, release often"<br>
>><br>
>> Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), dai<br>
>> fica obvio.<br>
>><br>
>> Abs<br>
>><br>
>><br>
>> 2014-05-22 8:00 GMT-07:00 breno <<a href="mailto:breno@rio.pm.org">breno@rio.pm.org</a>>:<br>
>><br>
>> Samir,<br>
>><br>
>> O método que Blabos e Cron indicaram está corretíssimo, mas costuma<br>
>> ser mais usado quando você já tem uma versão pública estável. Por<br>
>> exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão<br>
>> "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e<br>
>> ela será marcada como "trial" e só poderá ser instalada via caminho<br>
>> explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão<br>
>> "estável".<br>
>><br>
>> Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão<br>
>> mais em torno de API ou se o módulo faz direito tudo que você quer,<br>
>> você pode sempre colocar um aviso em letras garrafais no início da sua<br>
>> documentação avisando que o módulo está em estágio alfa, beta, etc.,<br>
>> que a API pode mudar e que a pessoa deve usar sob sua própria conta e<br>
>> risco. Por exemplo:<br>
>><br>
>> <a href="https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING" target="_blank">https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING</a><br>
>><br>
>> <a href="https://metacpan.org/pod/Stepford#DESCRIPTION" target="_blank">https://metacpan.org/pod/Stepford#DESCRIPTION</a><br>
>><br>
>> <a href="https://metacpan.org/pod/Debug::Client#DESCRIPTION" target="_blank">https://metacpan.org/pod/Debug::Client#DESCRIPTION</a><br>
>><br>
>> Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você<br>
>> sempre pode tomar uma cerveja e lançar outra versão :)<br>
>><br>
>> []s<br>
>><br>
>> -b<br>
>><br>
>><br>
>><br>
>><br>
>> 2014-05-21 12:17 GMT-03:00 Samir Cury <<a href="mailto:samircurys@gmail.com">samircurys@gmail.com</a>>:<br>
>> > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do<br>
>> > underline. Vou tentar desse jeito entao pra validar o processo do inicio<br>
>> > ao<br>
>> > fim antes de um release publico. Que bom saber que agora os<br>
>> > procedimentos<br>
>> > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando<br>
>> > o<br>
>> > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz<br>
>> > que<br>
>> > precise de algo mais para criar a distribuicao que vai subir pro CPAN.<br>
>> ><br>
>> > Abs<br>
>> ><br>
>> ><br>
>> > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe <<a href="mailto:blabos@gmail.com">blabos@gmail.com</a>>:<br>
>> ><br>
>> >> Ao colocar o underline na versão, vc evita que os instaladores usem<br>
>> >> essa<br>
>> >> versão inadvertidamente, embora ela ainda seja instalável se for<br>
>> >> especificado o caminho completo para o pacote.<br>
>> >><br>
>> >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o<br>
>> >> seu<br>
>> >> módulo antes de um release público, sem prejudicar quem já está usando<br>
>> >> uma<br>
>> >> versão estável do seu módulo.<br>
>> >><br>
>> >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos<br>
>> >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar<br>
>> >> com<br>
>> >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate<br>
>> >> da<br>
>> >> sua frente.<br>
>> >><br>
>> >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias<br>
>> >> fases do processo de desenvolvimento, desde o startup do módulo até o<br>
>> >> release no cpan.<br>
>> >><br>
>> >> Eventualmente você pode dividir esse processo em algo como:<br>
>> >><br>
>> >> 1) Fase 1: Fazer o bootstrap do seu pacote.<br>
>> >><br>
>> >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os<br>
>> >> arquivos auxiliares.<br>
>> >><br>
>> >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus<br>
>> >> módulos é o <a href="https://metacpan.org/pod/Module::Starter" target="_blank">https://metacpan.org/pod/Module::Starter</a><br>
>> >><br>
>> >> Com ele você pode escolher qual builder você vai utilizar pra montar o<br>
>> >> seu<br>
>> >> pacote.<br>
>> >><br>
>> >> 2) Fase 2: code, code, code<br>
>> >><br>
>> >> 3) Fase 3: Build<br>
>> >><br>
>> >> No processo de build, uma peça de software é utilizada para juntar tudo<br>
>> >> que o seu pacote vai precisar para ser instalado em uma máquina<br>
>> >> qualquer.<br>
>> >><br>
>> >> Essa etapa pode ser baseada em vários builders como:<br>
>> >><br>
>> >> <a href="https://metacpan.org/pod/ExtUtils::MakeMaker" target="_blank">https://metacpan.org/pod/ExtUtils::MakeMaker</a><br>
>> >> <a href="https://metacpan.org/pod/Module::Build" target="_blank">https://metacpan.org/pod/Module::Build</a><br>
>> >> <a href="https://metacpan.org/pod/Module::Install" target="_blank">https://metacpan.org/pod/Module::Install</a><br>
>> >><br>
>> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc)<br>
>> >> para a partir de apontamentos que você faz, verificar as dependências,<br>
>> >> criar<br>
>> >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias<br>
>> >> para<br>
>> >> tornar o seu módulo instalável.<br>
>> >><br>
>> >> Quando vc instala um módulo manualmente, normalmente o processo é:<br>
>> >><br>
>> >> a) Baixar e descompactar o .tar.gz<br>
>> >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo<br>
>> >> Makefile<br>
>> >> adaptado pra sua máquina.<br>
>> >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando<br>
>> >> XS, se for o caso, etc<br>
>> >> d) make test. Lê o Makefile para executar os testes do seu módulo.<br>
>> >> e) make install<br>
>> >><br>
>> >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz:<br>
>> >><br>
>> >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo<br>
>> >> Makefile<br>
>> >> adaptado pra sua máquina.<br>
>> >> b) make manifest. Isso vai criar uma lista com todos os arquivos que<br>
>> >> precisam ser distribuídos dentro do seu .tar.gz<br>
>> >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual,<br>
>> >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile.<br>
>> >><br>
>> >> Os arquivos *.PL precisam ser executados no momento da instalação para<br>
>> >> que<br>
>> >> o Makefile seja montado de acordo com a máquina onde ele está sendo<br>
>> >> instalado e não de acordo com a máquina onde o módulo foi criado.<br>
>> >><br>
>> >><br>
>> >> 4) Release.<br>
>> >><br>
>> >> Consiste em enviar o seu módulo para o CPAN.<br>
>> >><br>
>> >> ***<br>
>> >><br>
>> >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão<br>
>> >> antiga<br>
>> >> lançada e nenhum outro módulo do cpan o utiliza<br>
>> >> (<a href="https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]" target="_blank">https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]</a>).<br>
>> >><br>
>> >> ***<br>
>> >><br>
>> >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre<br>
>> >> todas as etapas listadas acima e mais algumas outras, como integração<br>
>> >> com o<br>
>> >> seu sistema de controle de versão e simplificação da criação de POD,<br>
>> >> por<br>
>> >> exemplo.<br>
>> >><br>
>> >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou<br>
>> >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou<br>
>> >> outra,<br>
>> >> ou ainda combiná-las entre si.<br>
>> >><br>
>> >> Eu particularmente tenho módulos que usam o dzil<br>
>> >> (<a href="https://github.com/blabos/Dancer2-Plugin-Paginator" target="_blank">https://github.com/blabos/Dancer2-Plugin-Paginator</a>) e módulos que não<br>
>> >> usam<br>
>> >> (<a href="https://github.com/blabos/Paginator-Lite" target="_blank">https://github.com/blabos/Paginator-Lite</a>).<br>
>> >><br>
>> >> E quando não uso, tenho preferência por criar o módulo com o<br>
>> >> Module::Starter (não confundir com<br>
>> >> <a href="https://metacpan.org/pod/Module::Start" target="_blank">https://metacpan.org/pod/Module::Start</a>)<br>
>> >> usando como builder o Module::Install.<br>
>> >><br>
>> >> ***<br>
>> >><br>
>> >> Finalizando, só preste atenção no que você deseja fazer e escolha a<br>
>> >> ferramenta que achar mais adequada, tendo em mente que embora seja<br>
>> >> relativamente simples criar um módulo e botar no CPAN, há várias etapas<br>
>> >> envolvidas, que na maioria das vezes já são até instintivas, mas que se<br>
>> >> você<br>
>> >> misturar as coisas, pode dar a maior confusão.<br>
>> >><br>
>> >> []'s<br>
>> >><br>
>> >><br>
>> >><br>
>> >><br>
>> >><br>
>> >><br>
>> >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes <<a href="mailto:guedes_1000@hotmail.com">guedes_1000@hotmail.com</a>>:<br>
>> >><br>
>> >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa<br>
>> >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram<br>
>> >>> > >Module::Build<br>
>> >>> > e Module::Make.<br>
>> >>><br>
>> >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O<br>
>> >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente<br>
>> >>> o<br>
>> >>> 'mais recomendado'.<br>
>> >>><br>
>> >>> ________________________________<br>
>> >>> Date: Tue, 20 May 2014 11:52:43 -0700<br>
>> >>> From: <a href="mailto:samircurys@gmail.com">samircurys@gmail.com</a><br>
>> >>> To: <a href="mailto:rio-pm@pm.org">rio-pm@pm.org</a><br>
>> >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN<br>
>> >>><br>
>> >>><br>
>> >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa<br>
>> >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram<br>
>> >>> Module::Build e<br>
>> >>> Module::Make.<br>
>> >>><br>
>> >>> Lendo melhor, parece que rola uma discussao entre usar as flags<br>
>> >>> oficiais<br>
>> >>> do CPAN ou _ na versao. Hum.<br>
>> >>><br>
>> >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _<br>
>> >>> na<br>
>> >>> versao. Mas o argumento da confusao no metacpan faz sentido.<br>
>> >>><br>
>> >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la<br>
>> >>> :<br>
>> >>><br>
>> >>> <a href="http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm" target="_blank">http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm</a><br>
>> >>><br>
>> >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no<br>
>> >>> POD.<br>
>> >>><br>
>> >>> Abs<br>
>> >>><br>
>> >>><br>
>> >>> 2014-05-20 11:39 GMT-07:00 Renato Santos <<a href="mailto:renato.cron@gmail.com">renato.cron@gmail.com</a>>:<br>
>> >>><br>
>> >>> *<br>
>> >>><br>
>> >>> <a href="http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html" target="_blank">http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html</a><br>


>> >>><br>
>> >>> #fastreply<br>
>> >>><br>
>> >>><br>
>> >>> 2014-05-20 15:35 GMT-03:00 Samir Cury <<a href="mailto:samircurys@gmail.com">samircurys@gmail.com</a>>:<br>
>> >>><br>
>> >>> Pessoal,<br>
>> >>><br>
>> >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como<br>
>> >>> "beta"<br>
>> >>><br>
>> >>> Como estou no passo intermediario para o meu primeiro modulo<br>
>> >>> "decente",<br>
>> >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda.<br>
>> >>> Pesquisando<br>
>> >>> um pouco esbarrei com todas essas definicoes :<br>
>> >>><br>
>> >>> <a href="http://search.cpan.org/dlsip?bpmOp" target="_blank">http://search.cpan.org/dlsip?bpmOp</a><br>
>> >>><br>
>> >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei<br>
>> >>> interessante subir como beta, e lancar novas releases quando fizer<br>
>> >>> mais<br>
>> >>> refatoracoes.<br>
>> >>><br>
>> >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que<br>
>> >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como<br>
>> >>> beta.<br>
>> >>><br>
>> >>> Pra quem estiver curioso este e o modulo :<br>
>> >>><br>
>> >>> <a href="https://github.com/samircury/HTCondor--Queue--Parser" target="_blank">https://github.com/samircury/HTCondor--Queue--Parser</a><br>
>> >>><br>
>> >>> Abs,<br>
>> >>> Samir<br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>> _______________________________________________<br>
>> >>> Rio-pm mailing list<br>
>> >>> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> >>> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>> --<br>
>> >>> Saravá,<br>
>> >>> Renato CRON<br>
>> >>> <a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>
>> >>> @renato_cron<br>
>> >>><br>
>> >>> _______________________________________________<br>
>> >>> Rio-pm mailing list<br>
>> >>> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> >>> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>> _______________________________________________ Rio-pm mailing list<br>
>> >>> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>> >>><br>
>> >>> _______________________________________________<br>
>> >>> Rio-pm mailing list<br>
>> >>> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> >>> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>> >><br>
>> >><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> Rio-pm mailing list<br>
>> >> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> >> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>> ><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > Rio-pm mailing list<br>
>> > <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> > <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>> _______________________________________________<br>
>> Rio-pm mailing list<br>
>> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Rio-pm mailing list<br>
>> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
>> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
><br>
><br>
><br>
><br>
> --<br>
> Saravá,<br>
> Renato CRON<br>
> <a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>
> @renato_cron<br>
><br>
> _______________________________________________<br>
> Rio-pm mailing list<br>
> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Bruno C. Buss<br><a href="http://www.brunobuss.net" target="_blank">http://www.brunobuss.net</a>
</div>