# How-To - Исправление неработающей спецификации - Rubinius
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.
Author: Less Than Three. <3. http://less.thanthree.com

1.2.3

## How-To - Исправление неработающей спецификации

Убедитесь, что вы прочитали следующие разделы:

- Приступая к работе
- Спецификации

После этого, для исправления неработающей спецификации проделайте следующее:

1. Выполните `rake` для проверки, что все CI спецификации работают.
2. Выполните `bin/mspec spec/some/spec_file.rb` и убедитесь, что спецификация не проходит.
3. Отредактируйте нужный файл в Rubinius (скорей всего файл будет из директории kernel).
4. Выполните `rake build`, чтобы пересобрать проект с изменениями.
5. Выполните `bin/mspec spec/some/spec_file.rb` для проверки проходит ли спецификация.
6. Повторяйте шаги пока спецификация не пройдет.
7. Выполните `rake` чтобы убедится, что все спецификации проходят.
8. Перейдите в корневую директорию Rubinius (если вы еще не там).
9. Выполните `git status, git add, git commit` и т.д. Любые изменения, сделанные в директории spec/ruby должны быть оформлены отдельным коммитом.
10. Запустите `git format-patch origin`, эта команда соберет все коммиты, сделанные в текущей ветке с момента последнего pull-a или `git format-patch -N’, где N – число (1, 2, и т.п.) коммитов, из которых вы хотите сделать патчи.
11. Создайте gist с вашим патчем и добавьте ссылку на него в тикет в трекере https://github.com/rubinius/rubinius/issues. В один тикет можно помещать несколько патчей.

Когда ваш патч принят в Rubinius вы можете стать коммитером проекта. Свяжитесь с evan-ом, сообщив ему ваш юзернейм на сайте Github.