Готовим код в мир открытых исходников Women Techmakers Novosibirsk International Women’s Day 2017 09.04.2017 Елена Граховац
Готовим код в мир открытых исходников
Women Techmakers NovosibirskInternational Women’s Day 2017
09.04.2017
Елена Граховац
Елена Граховац
twitter.com/webdeva
github.com/rumyantseva [email protected]
бэкенд-разработчик в Openproviderсоведущая подкаста GolangShow
Open Source
3
- Внести свой вклад в развитие технологий - Получить опыт разработки - Поучиться у гуру - Найти новых друзей - Прославиться 🤓
Существующий проект
5
- Принести пользу - Улучшить продукт, которым пользуешься - Стать частью сообщества - Поучиться на чужих примерах написания кода - Получить кодревью от более опытных
товарищей
Свой проект
6
- Реализовать давнюю идею - Попробовать себя в разработке “с нуля” - Добавить примеры кода в портфолио - Собрать команду единомышленников
Чем помочь?
10
- Реализовать фичу или пофиксить баг - Улучшить документацию - Перевести документацию или сайт проекта на
иностранный язык - Оставить баг-репорт или фича-реквест
README.md
11
- Описание проекта - Инструкция по развертыванию - Краткая информация о том, как можно
поучаствовать в проекте
CONTRIBUTING.md
12
Подробные правила участия в проекте
Пример для golang/go
Issues
13
- В первую очередь — “help wanted” - В первую очередь — простые задачи - Вознаграждение за “bounty” - Сначала согласовать, потом начать
реализацию тикета
Fork & Pull Request
15
- Какую ветку форкать? - Стандарты кодирования - Правила оформления кода и коммитов - Тесты - В какую ветку делать Pull Request? - Правила оформления Pull Request’ов
README.md
18
- Описание проекта - Инструкция по развертыванию - Информация о том, как можно поучаствовать в
проекте (или файл CONTRIBUTING.md) - Список контрибьюторов (или файл
CONTRIBUTORS)
Всё то же самое 🤓
Модель работы с Git
20
- Git flow (master, develop, feature, release, hotfix) - Свой вариант - Теги!
Семантическое версионирование
21
semver.org
- Мажорная.Минорная.Патч - Обратная совместимость - Начинать с нуля? 0.0.1 или 0.1.0? - Суффиксы (alpha, beta, rc)
Стандарты кодирования
22
- Выбрать стандарт и следовать ему! - Описать правила для контрибьютеров - Хуки на коммит на стороне клиента (pre-
commit.com) - Хуки на пуш на стороне сервера
Документация
23
- Минимальная — в README.md - Автодокументация, сгенерированная по коду - Документация для библиотеки - Документация для REST API
Автосборка
25
- Проверить код на соответствие стандартам - Запустить тесты - Запустить сборку (если требуется)
- Удобно: travis-ci.com для проектов с открытым исходным кодом
Собираем бейджи
26
- Текущая версия - Успешность сборки - Документирование - Покрытие тестами - Соответствие стандартам кодирования - Привлечение внимания - …
badges/shields
Issues & Projects
27
- Теги для тикетов - Планирование версий (“milestones”) - Объединение крупных фич в проекты - Общение с контрибьюторами
Что ещё?
28
- Создать чат для общения с пользователями и
контрибьюторами (gitter.im) - Рассказать про свой проект в тематических
сообществах - Подгтовить доклад о своем проекте на
ближайший митап
Елена Граховац
twitter.com/webdeva
github.com/rumyantseva [email protected]
бэкенд-разработчик в Openproviderсоведущая подкаста GolangShow