Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa

Post on 13-Dec-2014

373 views 3 download

description

Muitos acham que suas contribuições na comunidade resumem-se a subir módulos no CPAN e que colaborar com o "core", com o perl em si, é algo muito distante, quase inalcancável. Essa palestra mostra que, pelo contrário, pra contribuir com o core do Perl 5 você só precisa saber falar inglês. Aprenda como ter seu nome imortalizado numa versão do Perl 5 com contribuições simples e que fazem toda a diferença para quem está na trincheira.

Transcript of Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa

Seja um Perl core hackeré (muito) mais fácil do que você pensa!

Breno G. de Oliveira@garu_rj

Rituais de Passagem

Rituais de Passagem

“Alo, Mundo!”

Rituais de Passagem

“Alo, Mundo!”Colocar um módulo no CPAN

Rituais de Passagem

“Alo, Mundo!”Colocar um módulo no CPANFazer seu próprio sistema de templates

Rituais de Passagem

“Alo, Mundo!”Colocar um módulo no CPANFazer seu próprio sistema de templatesFazer seu próprio framework web

Rituais de Passagem

“Alo, Mundo!”Colocar um módulo no CPANFazer seu próprio sistema de templatesFazer seu próprio framework webFazer seu próprio tratamento de exceções

Rituais de Passagem

“Alo, Mundo!”Colocar um módulo no CPANFazer seu próprio sistema de templatesFazer seu próprio framework webFazer seu próprio tratamento de exceçõescontribuir com o código do perl em si

Rituais de Passagem

“Alo, Mundo!”Colocar um módulo no CPANFazer seu próprio sistema de templatesFazer seu próprio framework webFazer seu próprio tratamento de exceçõescontribuir com o código do perl em si

Perl Core Hacking

Mitos do Core Hacking

Exige conhecimentos avançados de PerlPrecisa saber programar em CPrecisa dominar as entranhas do códigoPrecisa fazer parte do “clube”

FUD

7.6%

21.5%

0.6%5.1%

65.2%

Severidade dos tiquetes do Perl 5

baixa wishlist outras média alta

https://rt.perl.org/rt3/NoAuth/perl5/Overview.html

Inalcançável? Nem tanto ;-)

perl5160delta

Minha primeira contribuição:

commit 959e56628cef2f8ac6555eee22b57e3ce02d9c7fAuthor: Breno G. de Oliveira <garu@cpan.org>Date: Sat May 19 09:29:11 2012 -0400

minor tag consistency fixes for perldelta.pod

Você também pode contribuir!

Você também pode contribuir HOJE!

Repositório oficial:

% git clone git://perl5.git.perl.org/perl.git perl

ou... “Fork us on Github”!

https://github.com/mirrors/perl% git clone git@github.com:mirrors/perl.git perl

% git pull% perldoc Porting/todo.pod

Algumas Tarefas (todo.pod)

Corrigir erros de POD na documentação oficial

Automatizar geração do perldelta

Refatorar testes no t/ para usar o t/test.pl

Escrever descrição para todos os testes

code profiling no script “installman”

configurar instalações Windows usando PowerShell

...MUITO mais!

http://tiny.cc/perl5

“tíquetes que não precisam experiênciacom C, perlguts ou sistemas operacionais”

Algumas Tarefas (RT)

Escrever diagnósticos não listados no perldiag.pod

registrar features experimentais no perlexperiment.pod

Escrever teste para cobertura do README

Criar hook no git commit para previnir mudanças na “esquerda” de um merge

Já sei o que fazer!Mas... e agora?

% git checkout blead% git pull

% git checkout blead% git pull% git checkout -b meunome/descricao

% git checkout blead% git pull% git checkout -b meunome/descricao

<hack, hack, hack, ...>

% git checkout blead% git pull% git checkout -b meunome/descricao

<hack, hack, hack, ...>

% ./Configure -des -Dusedevel% make test

% git checkout blead% git pull% git checkout -b meunome/descricao

<hack, hack, hack, ...>

% ./Configure -des -Dusedevel% make test

Continue até os testes passarem :)

É a sua primeira vez?Adicione-se no arquivo ‘AUTHORS’

% git diff AUTHORSdiff --git a/AUTHORS b/AUTHORSindex b448713..3a47bf2 100644--- a/AUTHORS+++ b/AUTHORS@@ -149,6 +149,7 @@ Bradley Dean <bjdean@bjdean.id.au> Bram <perl-rt@wizbit.be> Brendan O'Dea <bod@debian.org> Brent B. Powers <powers@ml.com>+Breno G. de Oliveira <garu@cpan.org> Brent Dax <brentdax@cpan.org> Brooks D Boyd Brian Callaghan <callagh@itginc.com>

% make test_porting

% git commit -a% git format-patch -M origin..

isso vai gerar um arquivo .patch

Envie seu .patch em um email para perlbug@perl.orgInclua uma descrição (em inglês!) das mudanças

SEU NOME AQUI

Mais informações (perldoc)

perlgit- informações detalhadas sobre git e o repo Perl

perlhack- como fuçar e editar o Perl

perlsource- descreve a estrutura (árvore) do fonte do Perl

Obrigado!Dúvidas?

garu@cpan.orgtwitter.com/garu_rj

(bonus track)

Mergulhando de cabeça

perlinterp - visão geral do interpretador Perl

perlguts - introdução à API do Perl

suplemento: perlguts ilustrado:http://cpansearch.perl.org/src/RURBAN/illguts-0.42/index.html

perlhacktut - exemplo de um patch simples em C

perlhacktips - dicas para Perl core hacking em C

Atenção: contém código C!