Участие в проекте - Rubinius
Author: Less Than Three. <3. http://less.thanthree.com
Description: Rubinius is an implementation of the Ruby programming language. The Rubinius bytecode virtual machine is written in C++. The bytecode compiler is written in pure Ruby. The vast majority of the core library is also written in Ruby, with some supporting primitives that interact with the VM directly.

1.2.3

## Участие в проекте

Команда Rubinius приветствует Ваш вклад в проект. Существует множество проблем, требующих помощи. Самое важное, чтобы Вы занимались именно тем, что Вам интересно, поскольку это лучший способ поддержать Ваш энтузиазм и желание работать.

Если у вас есть вопросы о Rubinius, лучшим способом найти ответ является общение с нами на IRC канале #rubinius сервера irc.freenode.net.

Ниже приведено несколько идей того, что можно сделать для Rubinius.

## Испытывайте Ваши программы

Зачастую Ваш код сложнее и запутаннее чем спецификации языка. Запустите свое детище под Rubinius и сообщите о возникших проблемах. См. главу «Как создать тикет».

## Обращайтесь за помощью

Мы поможем всем, чем сможем. Вы же, когда возможно, выполняйте собственное исследование проблемы. Rubinius стремится быть продуктом, который легко понять, использовать как учебник, и, надеемся, даже доработать.

Мы обязательно благодарно примем и простые сообщения об ошибках, но к тикетам, содержащим способы повторения проблемы, отнесемся с бóльшим вниманием. Еще лучше, если в тикет будет включен RubySpec, который демонстрирует ошибку и патч, который ее исправляет.

## Пишите спецификации

1. Выполните `bin/mspec tag --list incomplete <папка>`, чтобы просмотреть спецификации, отмеченные как незавершенные. Эти спецификации либо просто нуждаются в пересмотре, либо они отсутствуют для определенного класса.

   Примечание: Вы можете указать псевдо-директорию ‘:files’ для <папки>, чтобы вывести теги для всех спецификаций, которые должны проходить на Rubinius. Можно также указать любую поддиректорию директории `spec/`, чтобы вывести теги для спеков из этой поддиректории.

2. Ищите неспецифическое поведение кода. См. гл. «Написание спецификаций Ruby».

## Исправляйте неудачные спецификации

1. Выполните `bin/mspec tag --list fails <папка>`, чтобы увидеть спецификации, помеченные как неработающие.

   Примечание: Вы можете указать псевдо-директорию ‘:files’ для <папки>, чтобы вывести теги для всех спецификаций, которые должны проходить на Rubinius. Можно также указать любую поддиректорию директории `spec/`, чтобы вывести теги для спеков из этой поддиректории.

2. Выберите интересующую вас спецификацию и попробуйте написать патч, который ее исправляет.

## Пишите документацию

Изучите принципы работы Rubinius и напишите качественную документацию, которая поможет и другим понять детали реализации.

## Вычищайте код

Вопросы стиля программирования обсуждаются в гл. «Стиль программирования».

## Ухаживайте за тикетами

- Оживляйте или закрывайте устаревшие тикеты.
- Делайте небольшие тесты, воспроизводящие ошибки. Убедитесь, что для данной проблемы уже существует RubySpec, а если нет, попробуйте написать его.