Upload
-
View
76
Download
1
Embed Size (px)
Citation preview
Как сделать контрибут в Ruby on Rails
Ярослав МаркинМосква, апрель 2009
Привет?
• Ярослав Маркин• evilmartians.ru — небольшая команда рельсовиков (разработка и консультации)
• Где вы меня видели? github (gem russian), контрибуты в Rails
• В далеком 2006 вместе с Юликом Тархановым и Ильей Немихиным сделали лист ror2ru и начали работу над rubyonrails.ru
Для кого?
• Новички — с чего начать, как помочь Rails, как научиться?
• Опытные — как сделать так чтобы патч все-таки приняли?
Это не так сложно!
1. Для новичков: способы контрибута
• Lighthouse: rails.lighthouseapp.com
• Bug
• Security Bug
• Docpatch
• Новая feature
Bug
• Нормальный заголовок и описание как можно подробнее
• Окружение (Версия ОС, Ruby, Rails, используемые gem и плагины)
• Пример кода, в котором есть проблемы
• Важно: Failing tests
• Важно: Кто закоммитил патч, который все сломал?
• Если источника проблемы не видно и нельзя назначить ответственного — патч будет висеть очень долго
Security Bug
• Вы уверены? Вы правда уверены?
• Не делайте bug в Lighthouse
• Пишите: [email protected]
Docpatch
• Отличный вариант для тех, кто начинает разбираться, «как это работает»
• http://github.com/lifo/docrails
• Права на коммит можно получить у Pratik Naik (github.com/lifo) — пишите через GitHub
• Обязательно прочитайте гайдлайны — http://github.com/lifo/docrails/wikis
• Спрашивайте совета в IRC
• Можно работать над Rails Guides
• Docpatch не считается официальным контрибутом в Rails
Новая feature
• Нужна реализация, а не идея. К реализации вернемся во второй части
• Даже если тикет оформлен грамотно, шансы на его рассмотрение близки к нулю, если нет патчей и обоснования
• Можно попробовать список рассылки, но без патча смысла нет
• Если есть реализация, она всегда может быть отклонена для того чтобы стать плагином — расстраиваться не стоит
• Вообще говоря, можно начать с плагина (из последнего — named_scope)
2. Для опытных
• Над чем бы поработать?
• Очевидные вещи (git, git format-patch, тесты)
• Как же сделать чтобы патч все-таки приняли?
Над чем бы поработать?
• Подпишитесь на RSS rails.lighthouseapp.com
• Watch http://github.com/rails/rails
• Обзор Lighthouse: подтверждение багов, попытки пофиксить баги
• lifo: I'd just say, monitor Rails commits. Don’t use RDoc, look into the source. Look for incomplete tickets and complete them if you wanna take a step further
Новый патч: очевидные вещи
• git clone git://github.com/rails/rails.git
• NB: делать fork не имеет смысла, разве что вы не предлагаете сотую версию переделки ActiveModel
• http://www.tpope.net/rails-git-best-practices
• git checkout / rebase / format-patch
• Тесты!
Что делать для принятия патча? «Отвечает команда знатоков»
• nzkoz: Mailing list threads get more attention than just a patch
• nzkoz: I try to stay no more than ~10 days behind on the mailing list
• nzkoz: find a few people here or wherever to help you think through the changes, then write to the core mailing list when you've got something concrete
К кому обратиться для принятия патча?
• ror2ru! Попросите оценить патч
• irc.freenode.net #rails-contrib
• Список рассылки http://groups.google.com/group/rubyonrails-core
• Rails Core Committer (нет персональной отвественности) — через IRC или Lighthouse
DHH — для хороших и безумных идей, все что нужно чтобы «было хорошо», всегда можно получить фидбек. Можно «поймать» в IRC.
Jeremy — «работяга» Rails, практически все области + I18n, несложно добиться ревью. Раньше можно было «поймать» в IRC.
Koz — много областей, бывает в IRC и просматривает список рассылкиRick — ранее много областей (в том числе AR, AM и Engines), сейчас нет активности в Rails
Pratik — в настоящее время чуть ли не главный контрибутор, легко можно «поймать» на IRC, принмает патчи для всех частей Rails, ведет docrails. Новые тикеты можно смело назначать на него.
Josh — AC, Rack. Найти его в IRC не удавалось, можно найти в списке рассылки.
Yehuda — AC, ActiveORM, Rails 3.0 в целом.
«Расширенный состав»
• Frederick Cheung, Geoff Buesing, Manfred Stienstra, Eloy Duran, ...
• #rails-contrib
• Mike Gunderloy — поможет с докпатчами и гидами Rails
• Sven Fuchs — ответственный за I18n
Lighthouse Ticket
• Нужно назначить на кого-то конкретного• Начать с IRC, если реакции нет либо патч спорный — список рассылки
• Никаких «+1»! Если уже есть 3-4 «+1» — нет смысла добавлять. Спам «по друзьям» легко заметить.
• Теги: bug — исправляет ошибку, patch, verified — если патч подтвердили 3 и более человека
Самое время для контрибута
• Большой Merge (Rails 3.0: ActionPack, ActiveORM, ActiveSupport on diet...)
• Небольшая активность Core контрибуторов
• Google Summer of Code, anyone?
Вопросы?
• twitter.com/yaroslav
• github.com/yaroslav
• http://evilmartians.ru