|
1 | 1 | ---
|
2 | 2 | layout: page
|
3 |
| -title: "Núcleo de Ruby" |
| 3 | +title: "Núcleo do Ruby" |
4 | 4 | lang: pt
|
5 | 5 | ---
|
6 | 6 |
|
7 |
| -{% include out-of-date.html %} |
8 |
| - |
9 |
| -Agora é o momento mais fantástico para seguir o Ruby, porque o |
10 |
| -desenvolvimento do Ruby 2.0 está a decorrer. Com a atenção acrescida que |
11 |
| -o Ruby tem recebido nos últimos anos, existe uma necessidade crescente |
12 |
| -de bom talento para ajudar a melhorar o Ruby e documentá-lo. Então, por |
13 |
| -onde começar? |
| 7 | +Agora é um momento fantástico para seguir o desenvolvimento do Ruby. Com a |
| 8 | +atenção cada vez maior que o Ruby tem recebido nos últimos anos, existe uma |
| 9 | +necessidade crescente de bom talento para ajudar a melhorar o Ruby e |
| 10 | +documentá-lo. Então, por onde começar? |
14 | 11 | {: .summary}
|
15 | 12 |
|
16 | 13 | Os tópicos relacionados com o desenvolvimento do Ruby cobertos aqui são:
|
17 | 14 |
|
18 |
| -* [Utilizando CVS para Seguir o Desenvolvimento do Ruby](#following-ruby) |
19 |
| -* [Seguindo o Ruby 2.0, a criação da YARV](#following-yarv) |
| 15 | +* [Utilizando Subversion para Seguir o Desenvolvimento do Ruby](#following-ruby) |
| 16 | +* [Como Usar o Git com o Repositório Principal do Ruby](#git-ruby) |
20 | 17 | * [Melhorando o Ruby, *Patch* a *Patch*](#patching-ruby)
|
21 |
| -* [Regras de conduta para Programadores do Núcleo](#coding-standards) |
| 18 | +* [Regras para os _Core Developers_](#coding-standards) |
22 | 19 |
|
23 |
| -### Utilizando CVS para Seguir o Desenvolvimento do Ruby |
| 20 | +### Utilizando Subversion para Seguir o Desenvolvimento do Ruby |
24 | 21 | {: #following-ruby}
|
25 | 22 |
|
26 |
| -Para fazer o *check out* da última versão do código fonte basta fazer |
27 |
| -login na conta *anonymous* do repositório CVS. Da sua linha de comandos: |
| 23 | +Obter a versão mais recente do código fonte do Ruby é uma questão de fazer um |
| 24 | +_checkout_ anônimo do repositório [Subversion][1]. Na sua linha de comando: |
28 | 25 |
|
29 | 26 | {% highlight sh %}
|
30 |
| -$ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src login |
31 |
| - |
32 |
| -CVS password: |
33 |
| -$ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/src co ruby |
| 27 | +$ svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby |
34 | 28 | {% endhighlight %}
|
35 | 29 |
|
36 |
| -Da directoria `ruby` irá agora fazer parte a última versão do código |
37 |
| -fonte para o Ruby 1.9 (Ruby HEAD), que é a versão de desenvolvimento do |
38 |
| -Ruby, a ser distribuída como versão 2.0 mais tarde. |
| 30 | +O diretório `ruby` conterá o código fonte mais recente da versão de |
| 31 | +desenvolvimento do Ruby (ruby-trunk). Os _patches_ atualmente aplicados ao |
| 32 | +_trunk_ são portados para os _branches_ estáveis {{ site.svn.stable.version }}, |
| 33 | +{{ site.svn.previous.version }} e {{ site.svn.old.version }} (veja abaixo). |
39 | 34 |
|
40 |
| -Se desejar seguir a última versão do Ruby 1.8, deverá utilizar a |
41 |
| -etiqueta `ruby_1_8` quando fizer *check out*\: |
| 35 | +Se você gostaria de seguir os _patches_ aplicados ao Ruby |
| 36 | +{{ site.svn.stable.version }}, você deve usar o _branch_ |
| 37 | +`{{ site.svn.stable.branch }}` ao fazer o _check out_: |
42 | 38 |
|
43 | 39 | {% highlight sh %}
|
44 |
| -$ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/src \ |
45 |
| - co -r ruby_1_8 -d ruby-1.8 ruby |
| 40 | +$ svn co http://svn.ruby-lang.org/repos/ruby/branches/{{ site.svn.stable.branch }} |
46 | 41 | {% endhighlight %}
|
47 | 42 |
|
48 |
| -Isto irá fazer *check out* da árvore de desenvolvimento do Ruby 1.8 numa |
49 |
| -directoria `ruby-1.8`. É esperado que os programadores a trabalhar no |
50 |
| -Ruby 1.8 migrem as suas alterações para o Ruby HEAD, tão regularmente |
51 |
| -que os dois ramos são similares, com a excepção dos melhoramentos feitos |
52 |
| -directamente para linguagem pelo Matz e o Nobu. |
53 |
| - |
54 |
| -Se preferir, poderá explorar [O repositório CVS do Ruby via web][1]. |
| 43 | +A mesma coisa para o Ruby {{ site.svn.previous.version }}: |
55 | 44 |
|
56 |
| -Para informações acerca do CVS, veja, por favor o [Manual de CVS][2] e o |
57 |
| -[CVS wiki][3]. Em Alternativa, poderá considerar útil o livro |
58 |
| -introdutório [Pragmatic Version Control with CVS][4] . |
| 45 | +{% highlight sh %} |
| 46 | +$ svn co http://svn.ruby-lang.org/repos/ruby/branches/{{ site.svn.previous.branch }} |
| 47 | +{% endhighlight %} |
59 | 48 |
|
60 |
| -### Seguindo o Ruby 2.0, a Criação da YARV |
61 |
| -{: #following-yarv} |
| 49 | +Isto fará o *check out* da árvore de desenvolvimento em um |
| 50 | +diretório `{{ site.svn.stable.branch }}` ou `{{ site.svn.previous.branch }}`. |
| 51 | +Espera-se que os programadores que trabalham nos _branches_ de |
| 52 | +manutenção migrem as suas alterações para o _trunk_ do Ruby, tão regularmente |
| 53 | +que os dois _branches_ estejam muito similares, com a exceção das melhorias |
| 54 | +feitas diretamente à linguagem por Matz e Nobu. |
62 | 55 |
|
63 |
| -Um dos ingredientes essenciais do desenvolvimento do Ruby 2.0 é o |
64 |
| -[Projecto YARV][5]. Um trabalho de Sasada Koichi, que adiciona um |
65 |
| -máquina virtual para acelerar execução e para oferecer um formato |
66 |
| -bytecode para compilar *scripts* de Ruby. |
| 56 | +Se você preferir, você pode navegar pelo |
| 57 | +[repositório Subversion do Ruby pela web][2]. |
67 | 58 |
|
68 |
| -Poderá fazer *check out* da YARV utilizando Subversion para testes |
69 |
| -pessoais: |
| 59 | +Para mais informações sobre o Subversion, por favor consulte o |
| 60 | +[FAQ do Subversion][3] e o [livro do Subversion][4]. Alternativamente, |
| 61 | +você pode achar útil o livro introdutório |
| 62 | +[_Pragmatic Version Control with Subversion_][5]. |
70 | 63 |
|
71 |
| -{% highlight sh %} |
72 |
| -$ svn co http://www.atdot.net/svn/yarv/trunk yarv |
73 |
| -{% endhighlight %} |
| 64 | +### Como usar o Git com o Repositório Principal do Ruby |
| 65 | +{: #git-ruby} |
74 | 66 |
|
75 |
| -Para instruções de instalação ver o ficheiro README. O programador |
76 |
| -principal, Koichi Sasada, também oferece listas de correio, *bug |
77 |
| -tracking* e declarações no [sítio da YARV][5]. |
| 67 | +Aqueles que preferem usar o [Git][6] ao invés do Subversion, podem encontrar |
| 68 | +as instruções no [_mirror_ no GitHub][7], tanto para |
| 69 | +[quem tem permissão de _commit_][8] |
| 70 | +quanto [todos os demais][9]. |
78 | 71 |
|
79 | 72 | ### Melhorando o Ruby, *Patch* a *Patch*
|
80 | 73 | {: #patching-ruby}
|
81 | 74 |
|
82 |
| -Rubyforge mantem um [*bug tracker*][6] para submissão de *patches* e |
83 |
| -*bug reports* para o Matz e a malta. Estes relatórios são também |
84 |
| -submetidos para a lista de correio Ruby-Core para discussão, para que |
85 |
| -esteja seguro que o seu pedido não passe despercebido. |
| 75 | +A equipe do _core_ mantém um [_issue tracker_][10] para submeter _patches_ |
| 76 | +e reportar bugs para Matz e os demais. Essas informações também são enviadas |
| 77 | +para a [lista de e-mails do _core_ do Ruby][mailing-lists] |
| 78 | +para discussão, então você pode ter certeza de que o seu pedido não passará |
| 79 | +despercebido. Você também pode enviar os seus patches diretamente para |
| 80 | +a lista de e-mails. De qualquer forma, você é encorajado a participar na |
| 81 | +discussão que segue. |
| 82 | + |
| 83 | +Por favor dê uma olhada no [_Patch Writer’s Guide_][11] para ver algumas |
| 84 | +dicas, diretamente do Matz, sobre como fazer com que seus _patches_ |
| 85 | +sejam considerados. |
86 | 86 |
|
87 | 87 | Para resumir, os passos para criar um *patch* são:
|
88 | 88 |
|
89 |
| -1. Fazer *check out* de uma cópia do Ruby 1.8 do repositório CVS, |
90 |
| - utilizando a etiqueta `ruby_1_8`. |
| 89 | +1. Faça o _check out_ de uma cópia do código fonte do Ruby a partir do |
| 90 | + Subversion. Geralmente os _patches_ para correções de bugs ou novas |
| 91 | + funcionalidades devem ser enviados para o _trunk_ do código do Ruby. |
| 92 | + Mesmo que você queira adicionar uma funcionalidade ao Ruby 1.9.3, |
| 93 | + ele deve ser provado no _trunk_ primeiro. |
| 94 | + |
| 95 | + $ svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby |
| 96 | + |
| 97 | + Se você estiver corrigindo um bug que é específico de um _branch_ de |
| 98 | + manutenção, faça o _check out_ do respectivo _branch_, por exemplo |
| 99 | + `{{ site.svn.previous.branch }}`. |
91 | 100 |
|
92 |
| - $ cvs -z4 -d :pserver:[email protected]:/src \ |
93 |
| - co -r ruby_1_8 -d ruby-1.8 ruby |
| 101 | + $ svn co http://svn.ruby-lang.org/repos/ruby/branches/{{ site.svn.previous.branch }} |
94 | 102 |
|
95 |
| -2. Adicione os seus melhoramentos ao código (agora na directoria |
96 |
| - `ruby-1.8`.) |
97 |
| -3. Criar um *patch*. |
| 103 | +2. Faça as suas melhorias no código. |
98 | 104 |
|
99 |
| - $ cvs diff > ruby-1.8-changes.patch |
| 105 | +3. Crie um _patch_. |
100 | 106 |
|
101 |
| -4. [Enviar][7] o seu novo\_patch\_. |
| 107 | + $ svn diff > ruby-changes.patch |
102 | 108 |
|
103 |
| -**Nota:** os *patches* devem ser enviados como um [unified diff][8]. |
104 |
| -Para saber mais sobre como os patches são fundidos ver o [manual do |
105 |
| -diffutils][9]. |
| 109 | +4. Crie um _ticket_ no [_issue tracker_][10] ou envie seu _patch_ por |
| 110 | + e-mail para a [lista de e-maisl do core do Ruby][mailing-lists] |
| 111 | + com uma entrada no _ChangeLog_ descrevendo o _patch_. |
| 112 | + |
| 113 | +5. Se não forem levantados quaisquer problemas sobre o _patch_, |
| 114 | + quem fez o _commit_ receberá a permissão para aplicá-lo. |
| 115 | + |
| 116 | +**Nota:** os *patches* devem ser enviados como um [_unified diff_][12]. |
| 117 | +Para saber mais sobre como os patches são fundidos, consulte o [manual do |
| 118 | +diffutils][13]. |
106 | 119 |
|
107 | 120 | A discussão do desenvolvimento do Ruby converge na
|
108 |
| -[lista de correio Ruby-Core][mailing-lists]. Por isso, se está curioso |
| 121 | +[lista de e-mails Ruby-Core][mailing-lists]. Por isso, se está curioso |
109 | 122 | se o seu *patch* vale a pena ou deseja animar uma discussão sobre o
|
110 |
| -futuro do Ruby, não se faça de hesite e entre a bordo. Avisa-se desde já |
111 |
| -que que conversas fora do contexto não são toleradas nesta lista. Os |
112 |
| -níveis de barulho deverão ser muito baixos, os tópicos deverão ser |
| 123 | +futuro do Ruby, não hesite e entre a bordo. Esteja avisado desde já |
| 124 | +que as conversas fora do contexto não são toleradas nesta lista. Os |
| 125 | +níveis de ruído deverão ser muito baixos, os tópicos deverão ser |
113 | 126 | mencionados, bem concebidos e bem escritos. Já que nos dirigimos ao
|
114 | 127 | criador do Ruby, sejamos reverentes.
|
115 | 128 |
|
116 |
| -Lembre-se que os programadores do núcleo do Ruby vivem no Japão e, |
117 |
| -enquanto muitos falam muito bem Inglês, existe uma diferença |
118 |
| -significativa no fuso horário. Também têm uma estrutura de listas de de |
119 |
| -correio sobre o desenvolvimento para além daquelas existentes em Inglês. |
120 |
| -Seja paciente e se o seu pedido não fôr atendido, seja persistente—tente |
121 |
| -outra vez uns dias mais tarde. |
| 129 | +Lembre-se de que os programadores do núcleo do Ruby vivem no Japão e, |
| 130 | +enquanto muitos falam muito bem o inglês, existe uma diferença |
| 131 | +significativa no fuso horário. Também existe um corpo inteiro de listas |
| 132 | +de e-mail em japonês que existem em paralelo às contrapartes em inglês. |
| 133 | +Seja paciente, e se o seu pedido não for atendido, seja persistente |
| 134 | +– tente outra vez alguns dias mais tarde. |
122 | 135 |
|
123 |
| -### Regras de conduta para Programadores do Núcleo |
| 136 | +### Regras para os Programadores do _Core_ |
124 | 137 | {: #coding-standards}
|
125 | 138 |
|
126 | 139 | Em geral, os programadores de Ruby deverão estar familiarizados com o
|
127 |
| -código fonte e o estilo de programação utilizado pela equipa. Para ficar |
128 |
| -clarificado, as seguintes linhas de conduta deverão ser respeitadas |
129 |
| -quando submeter código no repositório CVS: |
| 140 | +código fonte e o estilo de programação utilizado pela equipe. Para ficar |
| 141 | +mais claro, as seguintes diretrizes deverão ser respeitadas |
| 142 | +quando submeter código no repositório Subversion: |
130 | 143 |
|
131 | 144 | * Todas as submissões deverão ser descritas no `ChangeLog`, seguindo as
|
132 |
| - [convenções GNU][10]. (Muitos programadores de Ruby usam o modo |
133 |
| - `add-log` no Emacs, que poderá ser activado como o commando `C-x 4 |
134 |
| - a`.) |
| 145 | + [convenções GNU][14]. (Muitos programadores de Ruby usam o modo |
| 146 | + `add-log` no Emacs, que poderá ser ativado como o commando `C-x 4 a`.) |
135 | 147 | * Datas de submissão deverão ser dadas na Fuso Horário Japonês (UTC+9).
|
136 |
| -* Os pontos listados do seu ChangeLog também deverão ser colocados na |
137 |
| - mensagem de submissão do CVS. Esta mensagem ser automaticamente |
| 148 | +* Os tópicos listados no seu ChangeLog também deverão ser colocados na |
| 149 | + mensagem de submissão do Subversion. Esta mensagem será automaticamente |
138 | 150 | enviada para a lista Ruby-CVS depois da sua submissão.
|
139 |
| -* Declarações de funções no estilo ANSI são utilizadas por todo o |
140 |
| - código fonte Ruby e em todos as suas extensões. |
141 |
| -* Por favor, não use comentários ao estilo do C++ (`//`). Os |
142 |
| - programadores de Ruby preferem os comentários multi-linha do C |
143 |
| - (`/* .. */`). |
| 151 | +* Protótipos de funções são utilizadas por todo o código fonte Ruby |
| 152 | + e em todos as suas extensões embutidas. |
| 153 | +* Por favor, não use comentários no estilo do C++ (`//`). Os |
| 154 | + programadores do Ruby preferem os comentários de múltiplas linhas |
| 155 | + do C (`/* .. */`). |
| 156 | + |
| 157 | +Veja também as informações no [_issue tracker_ do Ruby][10]. |
144 | 158 |
|
145 | 159 |
|
146 | 160 |
|
147 | 161 | [mailing-lists]: /pt/community/mailing-lists/
|
148 |
| -[1]: /cgi-bin/cvsweb.cgi/ "repositório CVS do Ruby via web" |
149 |
| -[2]: http://www.nongnu.org/cvs/cvs.html |
150 |
| -[3]: http://ximbiot.com/cvs/wiki/index.php?title=Main_Page |
151 |
| -[4]: http://www.pragmaticprogrammer.com/starter_kit/vcc/index.html |
152 |
| -[5]: http://atdot.net/yarv/ |
153 |
| -[6]: http://rubyforge.org/tracker/?func=browse&group_id=426&atid=1698 |
154 |
| -[7]: http://rubyforge.org/tracker/?func=add&group_id=426&atid=1700 "Enviar patch" |
155 |
| -[8]: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html "diff no formato unificado" |
156 |
| -[9]: http://www.gnu.org/software/diffutils/manual/html_node/Merging-with-patch.html#Merging%20with%20patch |
157 |
| -[10]: http://www.gnu.org/prep/standards/standards.html#Change-Logs |
| 162 | +[1]: http://subversion.apache.org/ |
| 163 | +[2]: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/ |
| 164 | +[3]: http://subversion.apache.org/faq.html |
| 165 | +[4]: http://svnbook.org |
| 166 | +[5]: http://www.pragmaticprogrammer.com/titles/svn/ |
| 167 | +[6]: http://git-scm.com/ |
| 168 | +[7]: http://github.com/ruby/ruby |
| 169 | +[8]: http://wiki.github.com/shyouhei/ruby/committerhowto |
| 170 | +[9]: http://wiki.github.com/shyouhei/ruby/noncommitterhowto |
| 171 | +[10]: https://bugs.ruby-lang.org/ |
| 172 | +[11]: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/25139 |
| 173 | +[12]: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html |
| 174 | +[13]: http://www.gnu.org/software/diffutils/manual/html_node/Merging-with-patch.html#Merging%20with%20patch |
| 175 | +[14]: http://www.gnu.org/prep/standards/standards.html#Change-Logs |
0 commit comments