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

Как сделать контрибут в Ruby on Rails

  • Upload
    -

  • View
    76

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Как сделать контрибут в Ruby on Rails

Как сделать контрибут в Ruby on Rails

Ярослав МаркинМосква, апрель 2009

Page 2: Как сделать контрибут в Ruby on Rails

Привет?

• Ярослав Маркин• evilmartians.ru — небольшая команда рельсовиков (разработка и консультации)

• Где вы меня видели? github (gem russian), контрибуты в Rails

• В далеком 2006 вместе с Юликом Тархановым и Ильей Немихиным сделали лист ror2ru и начали работу над rubyonrails.ru

Page 3: Как сделать контрибут в Ruby on Rails

Для кого?

• Новички — с чего начать, как помочь Rails, как научиться?

• Опытные — как сделать так чтобы патч все-таки приняли?

Page 4: Как сделать контрибут в Ruby on Rails

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

Page 5: Как сделать контрибут в Ruby on Rails

1. Для новичков: способы контрибута

• Lighthouse: rails.lighthouseapp.com

• Bug

• Security Bug

• Docpatch

• Новая feature

Page 6: Как сделать контрибут в Ruby on Rails

Bug

• Нормальный заголовок и описание как можно подробнее

• Окружение (Версия ОС, Ruby, Rails, используемые gem и плагины)

• Пример кода, в котором есть проблемы

• Важно: Failing tests

• Важно: Кто закоммитил патч, который все сломал?

• Если источника проблемы не видно и нельзя назначить ответственного — патч будет висеть очень долго

Page 7: Как сделать контрибут в Ruby on Rails

Security Bug

• Вы уверены? Вы правда уверены?

• Не делайте bug в Lighthouse

• Пишите: [email protected]

Page 8: Как сделать контрибут в Ruby on Rails

Docpatch

• Отличный вариант для тех, кто начинает разбираться, «как это работает»

• http://github.com/lifo/docrails

• Права на коммит можно получить у Pratik Naik (github.com/lifo) — пишите через GitHub

• Обязательно прочитайте гайдлайны — http://github.com/lifo/docrails/wikis

• Спрашивайте совета в IRC

• Можно работать над Rails Guides

• Docpatch не считается официальным контрибутом в Rails

Page 9: Как сделать контрибут в Ruby on Rails

Новая feature

• Нужна реализация, а не идея. К реализации вернемся во второй части

• Даже если тикет оформлен грамотно, шансы на его рассмотрение близки к нулю, если нет патчей и обоснования

• Можно попробовать список рассылки, но без патча смысла нет

• Если есть реализация, она всегда может быть отклонена для того чтобы стать плагином — расстраиваться не стоит

• Вообще говоря, можно начать с плагина (из последнего — named_scope)

Page 10: Как сделать контрибут в Ruby on Rails

2. Для опытных

• Над чем бы поработать?

• Очевидные вещи (git, git format-patch, тесты)

• Как же сделать чтобы патч все-таки приняли?

Page 11: Как сделать контрибут в Ruby on Rails

Над чем бы поработать?

• Подпишитесь на 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

Page 12: Как сделать контрибут в Ruby on Rails

Новый патч: очевидные вещи

• git clone git://github.com/rails/rails.git

• NB: делать fork не имеет смысла, разве что вы не предлагаете сотую версию переделки ActiveModel

• http://www.tpope.net/rails-git-best-practices

• git checkout / rebase / format-patch

• Тесты!

Page 13: Как сделать контрибут в Ruby on Rails

Что делать для принятия патча? «Отвечает команда знатоков»

• 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

Page 14: Как сделать контрибут в Ruby on Rails

К кому обратиться для принятия патча?

• ror2ru! Попросите оценить патч

• irc.freenode.net #rails-contrib

• Список рассылки http://groups.google.com/group/rubyonrails-core

• Rails Core Committer (нет персональной отвественности) — через IRC или Lighthouse

Page 15: Как сделать контрибут в Ruby on Rails

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

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

Page 16: Как сделать контрибут в Ruby on Rails

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

Page 17: Как сделать контрибут в Ruby on Rails

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

Josh — AC, Rack. Найти его в IRC не удавалось, можно найти в списке рассылки.

Page 18: Как сделать контрибут в Ruby on Rails

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

Page 19: Как сделать контрибут в Ruby on Rails

«Расширенный состав»

• Frederick Cheung, Geoff Buesing, Manfred Stienstra, Eloy Duran, ...

• #rails-contrib

• Mike Gunderloy — поможет с докпатчами и гидами Rails

• Sven Fuchs — ответственный за I18n

Page 20: Как сделать контрибут в Ruby on Rails

Lighthouse Ticket

• Нужно назначить на кого-то конкретного• Начать с IRC, если реакции нет либо патч спорный — список рассылки

• Никаких «+1»! Если уже есть 3-4 «+1» — нет смысла добавлять. Спам «по друзьям» легко заметить.

• Теги: bug — исправляет ошибку, patch, verified — если патч подтвердили 3 и более человека

Page 21: Как сделать контрибут в Ruby on Rails

Самое время для контрибута

• Большой Merge (Rails 3.0: ActionPack, ActiveORM, ActiveSupport on diet...)

• Небольшая активность Core контрибуторов

• Google Summer of Code, anyone?

Page 22: Как сделать контрибут в Ruby on Rails

Вопросы?

[email protected]

• twitter.com/yaroslav

• github.com/yaroslav

• http://evilmartians.ru