Зараз чудовий час, щоб стежити за розвитком Ruby. З огляду на підвищену
увагу до Ruby в останні роки, зростає потреба в талановитих людях, які
допоможуть покращувати Ruby та документувати його частини.
Тож з чого почати?
{: .summary}

Тут розглядаються такі теми розвитку Ruby:

* [Використання Git для відстеження розвитку Ruby](#following-ruby)
* [Покращення Ruby, патч за патчем](#patching-ruby)
* [Примітка про гілки](#branches-ruby)

### Використання Git для відстеження розвитку Ruby
{: #following-ruby}

Поточний основний репозиторій найсвіжішого вихідного коду Ruby —
[git.ruby-lang.org/ruby.git][gitrlo].
Також є [дзеркало на GitHub][7]. Зазвичай, будь ласка, використовуйте саме це дзеркало.

Отримати найновіший вихідний код Ruby можна за допомогою Git.
У командному рядку:

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>git clone https://github.com/ruby/ruby.git</code></pre></figure>

Каталог `ruby` тепер міститиме найновіший вихідний код
для девелоперської версії Ruby (ruby-trunk).

Див. також [Non-committer’s HOWTO to join our development][noncommitterhowto].

Якщо у вас є доступ для комітів і ви хочете щось запушити,
використовуйте основний репозиторій.

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>git clone git@git.ruby-lang.org:ruby.git</code></pre></figure>

### Покращення Ruby, патч за патчем
{: #patching-ruby}

Команда core підтримує [issue tracker][10] для подання патчів і звітів
про помилки для Matz і команди. Ці повідомлення також надходять до
[поштової розсилки Ruby-Core][mailing-lists] для обговорення, тож ви можете
бути впевнені, що ваш запит не залишиться непоміченим. Ви також можете
надсилати патчі безпосередньо до розсилки. У будь-якому разі вас
заохочують долучатися до обговорення.

Будь ласка, перегляньте [Посібник з написання патчів][writing-patches]
для порад від Matz про те, як зробити так, щоб ваші патчі розглядалися.

Коротко, кроки створення патча:

1.  Клонувати вихідний код Ruby з GitHub.
    Зазвичай патчі для виправлення помилок або нових можливостей слід
    подавати для trunk гілки Ruby.

        $ git clone https://github.com/ruby/ruby.git

    Якщо ви виправляєте помилку, специфічну для однієї гілки підтримки,
    переключіться на відповідну гілку.

        $ git checkout ruby_X_X

    X_X слід замінити на версію, яку ви хочете отримати.

2.  Додайте свої покращення в код.

3.  Створіть патч.

        $ git diff > ruby-changes.patch

4.  Створіть тікет в [issue tracker][10] або надішліть патч до
    [поштової розсилки Ruby-Core][mailing-lists] із записом ChangeLog,
    що описує патч.

5.  Якщо щодо патча не виникло проблем, комітерам буде надано
    дозвіл на його застосування.

**Зверніть увагу:** патчі слід подавати як [unified diff][12].
Більше про те, як патчі об’єднуються, дивіться у
[довідці diffutils][13].

Обговорення розвитку Ruby зосереджується в
[поштовій розсилці Ruby-Core][mailing-lists]. Тож якщо вам цікаво,
чи вартий ваш патч уваги, або якщо ви хочете започаткувати обговорення
про майбутнє Ruby — сміливо долучайтеся. Зауважте, що офтоп-обговорення
в цій розсилці не допускаються: рівень шуму має бути дуже низьким,
теми — точними, добре продуманими та добре сформульованими. Ми звертаємося
до творця Ruby, тож тримаймо відповідний рівень поваги.

Пам’ятайте, що багато core-розробників Ruby живуть у Японії, і хоча
багато хто добре володіє англійською, існує значна різниця в часових
поясах. Також існує цілий набір японськомовних розсилок розробки, що
функціонують паралельно з англомовними. Будьте терплячими: якщо ваше
питання не вирішено, наполягайте — спробуйте ще раз через кілька днів.


### Примітка про гілки
{: #branches-ruby}

Вихідний код Ruby керувався репозиторієм Subversion до 22 квітня 2019 року.
Тож деякі гілки й досі можуть підтримуватися у Subversion.
Ви можете переглянути SVN-репозиторій.

* [&lt;URL:https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?root=ruby&gt;][svn-viewvc]

Проте вам не потрібно про це турбуватися (якщо тільки ви не супроводжуєте гілку).
Ви можете переключатися на гілки у своїй робочій копії Git.
Наприклад, виконайте таку команду:

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>git checkout ruby_X_X</code></pre></figure>

X_X слід замінити на версію, яку ви хочете отримати.

Якщо ви хочете змінювати гілки, відкрийте issue у нашому [issue tracker][10].
Дивіться також наступний розділ.

[gitrlo]: https://git.ruby-lang.org/ruby.git
[mailing-lists]: /uk/community/mailing-lists/
[writing-patches]: /uk/community/ruby-core/writing-patches/
[noncommitterhowto]: https://github.com/shyouhei/ruby/wiki/noncommitterhowto
[svn-viewvc]: https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?root=ruby
[7]: https://github.com/ruby/ruby
[10]: https://bugs.ruby-lang.org/
[12]: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html
[13]: http://www.gnu.org/software/diffutils/manual/html_node/Merging-with-patch.html#Merging%20with%20patch
