Slide 1

Slide 1 text

Как сделать контрибут в Ruby on Rails Ярослав Маркин Москва, апрель 2009

Slide 2

Slide 2 text

Привет? • Ярослав Маркин • evilmartians.ru — небольшая команда рельсовиков (разработка и консультации) • Где вы меня видели? github (gem russian), контрибуты в Rails • В далеком 2006 вместе с Юликом Тархановым и Ильей Немихиным сделали лист ror2ru и начали работу над rubyonrails.ru

Slide 3

Slide 3 text

Для кого? • Новички — с чего начать, как помочь Rails, как научиться? • Опытные — как сделать так чтобы патч все-таки приняли?

Slide 4

Slide 4 text

Это не так сложно!

Slide 5

Slide 5 text

1. Для новичков: способы контрибута • Lighthouse: rails.lighthouseapp.com • Bug • Security Bug • Docpatch • Новая feature

Slide 6

Slide 6 text

Bug • Нормальный заголовок и описание как можно подробнее • Окружение (Версия ОС, Ruby, Rails, используемые gem и плагины) • Пример кода, в котором есть проблемы • Важно: Failing tests • Важно: Кто закоммитил патч, который все сломал? • Если источника проблемы не видно и нельзя назначить ответственного — патч будет висеть очень долго

Slide 7

Slide 7 text

Security Bug • Вы уверены? Вы правда уверены? • Не делайте bug в Lighthouse • Пишите: [email protected]

Slide 8

Slide 8 text

Docpatch • Отличный вариант для тех, кто начинает разбираться, «как это работает» • http://github.com/lifo/docrails • Права на коммит можно получить у Pratik Naik (github.com/lifo) — пишите через GitHub • Обязательно прочитайте гайдлайны — http://github.com/lifo/docrails/wikis • Спрашивайте совета в IRC • Можно работать над Rails Guides • Docpatch не считается официальным контрибутом в Rails

Slide 9

Slide 9 text

Новая feature • Нужна реализация, а не идея. К реализации вернемся во второй части • Даже если тикет оформлен грамотно, шансы на его рассмотрение близки к нулю, если нет патчей и обоснования • Можно попробовать список рассылки, но без патча смысла нет • Если есть реализация, она всегда может быть отклонена для того чтобы стать плагином — расстраиваться не стоит • Вообще говоря, можно начать с плагина (из последнего — named_scope)

Slide 10

Slide 10 text

2. Для опытных • Над чем бы поработать? • Очевидные вещи (git, git format-patch, тесты) • Как же сделать чтобы патч все-таки приняли?

Slide 11

Slide 11 text

Над чем бы поработать? • Подпишитесь на 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

Slide 12

Slide 12 text

Новый патч: очевидные вещи • git clone git://github.com/rails/rails.git • NB: делать fork не имеет смысла, разве что вы не предлагаете сотую версию переделки ActiveModel • http://www.tpope.net/rails-git-best-practices • git checkout / rebase / format-patch • Тесты!

Slide 13

Slide 13 text

Что делать для принятия патча? «Отвечает команда знатоков» • 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

Slide 14

Slide 14 text

К кому обратиться для принятия патча? • ror2ru! Попросите оценить патч • irc.freenode.net #rails-contrib • Список рассылки http://groups.google.com/group/rubyonrails-core • Rails Core Committer (нет персональной отвественности) — через IRC или Lighthouse

Slide 15

Slide 15 text

DHH — для хороших и безумных идей, все что нужно чтобы «было хорошо», всегда можно получить фидбек. Можно «поймать» в IRC. Jeremy — «работяга» Rails, практически все области + I18n, несложно добиться ревью. Раньше можно было «поймать» в IRC.

Slide 16

Slide 16 text

Koz — много областей, бывает в IRC и просматривает список рассылки Rick — ранее много областей (в том числе AR, AM и Engines), сейчас нет активности в Rails

Slide 17

Slide 17 text

Pratik — в настоящее время чуть ли не главный контрибутор, легко можно «поймать» на IRC, принмает патчи для всех частей Rails, ведет docrails. Новые тикеты можно смело назначать на него. Josh — AC, Rack. Найти его в IRC не удавалось, можно найти в списке рассылки.

Slide 18

Slide 18 text

Yehuda — AC, ActiveORM, Rails 3.0 в целом.

Slide 19

Slide 19 text

«Расширенный состав» • Frederick Cheung, Geoff Buesing, Manfred Stienstra, Eloy Duran, ... • #rails-contrib • Mike Gunderloy — поможет с докпатчами и гидами Rails • Sven Fuchs — ответственный за I18n

Slide 20

Slide 20 text

Lighthouse Ticket • Нужно назначить на кого-то конкретного • Начать с IRC, если реакции нет либо патч спорный — список рассылки • Никаких «+1»! Если уже есть 3-4 «+1» — нет смысла добавлять. Спам «по друзьям» легко заметить. • Теги: bug — исправляет ошибку, patch, verified — если патч подтвердили 3 и более человека

Slide 21

Slide 21 text

Самое время для контрибута • Большой Merge (Rails 3.0: ActionPack, ActiveORM, ActiveSupport on diet...) • Небольшая активность Core контрибуторов • Google Summer of Code, anyone?

Slide 22

Slide 22 text

Вопросы? • [email protected] • twitter.com/yaroslav • github.com/yaroslav • http://evilmartians.ru