530 likes | 712 Views
Практика распределенной разработки в Open-Source проектах. Александр Веремьев ( Zend Framework core team ) alexander.v@zend.com. Инструментарий. Управление кодом. Репозиторий : Subversion (на начальных стадиях CVS ) http://subversion.tigris.org/. Управление кодом. Репозиторий :
E N D
Практика распределенной разработки в Open-Source проектах. Александр Веремьев (Zend Framework core team) alexander.v@zend.com
Управление кодом Репозиторий: • Subversion (на начальных стадиях CVS)http://subversion.tigris.org/
Управление кодом Репозиторий: • Subversion (на начальных стадиях CVS)http://subversion.tigris.org/ Отслеживание изменений, Web интерфейс к репозиторию: • FishEye (Atlassian)http://www.atlassian.com/software/fisheye/
Управление задачами JIRA issue tracker (Atlassian, http://www.atlassian.com/software/jira/) • Bug tracker
Управление задачами JIRA issue tracker (Atlassian, http://www.atlassian.com/software/jira/) • Bug tracker • Feature request tracker
Управление задачами JIRA issue tracker (Atlassian, http://www.atlassian.com/software/jira/) • Bug tracker • Feature request tracker • Unit tests problems tracker
Управление задачами JIRA issue tracker (Atlassian, http://www.atlassian.com/software/jira/) • Bug tracker • Feature request tracker • Unit tests problems tracker • Documentation tasks tracker
Пространство для документов проекта(project Wiki pages) Confluence (Atlassian, http://www.atlassian.com/software/confluence/)
Коммуникации • e-mails
Коммуникации • e-mails • Списки рассылки (внутренние/общие/тематические)
Коммуникации • e-mails • Списки рассылки (внутренние/общие/тематические) • Аудио-конференции (Skype)
Коммуникации • e-mails • Списки рассылки (внутренние/общие/тематические) • Аудио-конференции (Skype) • IRC
Коммуникации • e-mails • Списки рассылки (внутренние/общие/тематические) • Аудио-конференции (Skype) • IRC • Обмен текстовыми данными (http://paste2.org/)
Коммуникации • e-mails • Списки рассылки (внутренние/общие/тематические) • Аудио-конференции (Skype) • IRC • Обмен текстовыми данными (http://paste2.org/) • Wiki pages
Коммуникации • e-mails • Списки рассылки (внутренние/общие/тематические) • Аудио-конференции (Skype) • IRC • Обмен текстовыми данными (http://paste2.org/) • Wiki pages • Web сайт проекта
Цели проекта Продвижение PHP в корпоративную среду:
Цели проекта Продвижение PHP в корпоративную среду: • Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
Цели проекта Продвижение PHP в корпоративную среду: • Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам • Гарантировать лицензионную чистоту, создаваемого кода
Цели проекта Продвижение PHP в корпоративную среду: • Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам • Гарантировать лицензионную чистоту, создаваемого кода • Гарантировать поддержку и сопровождение кода
Цели проекта Продвижение PHP в корпоративную среду: • Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам • Гарантировать лицензионную чистоту, создаваемого кода • Гарантировать поддержку и сопровождение кода Популяризация PHP 5 и ОО подхода в PHP
Цели проекта Продвижение PHP в корпоративную среду: • Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам • Гарантировать лицензионную чистоту, создаваемого кода • Гарантировать поддержку и сопровождение кода Популяризация PHP 5 и ОО подхода в PHP • Представить на примере создаваемого framework’а пример “правильного” использования OO подхода в PHP
Цели проекта Продвижение PHP в корпоративную среду: • Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам • Гарантировать лицензионную чистоту, создаваемого кода • Гарантировать поддержку и сопровождение кода Популяризация PHP 5 и ОО подхода в PHP • Представить на примере создаваемого framework’а пример “правильного” использования OO подхода в PHP • Создать спрос на поддержку PHP 5
Организационная структура команды разработчиков
Организационная структура команды разработчиков Core team3-5 чел
Организационная структура команды разработчиков Авторы компонент Core team3-5 чел
Организационная структура команды разработчиков Авторы компонент Core team3-5 чел Other contributors
Организационная структура команды разработчиков Авторы компонент Core team3-5 чел Other contributors Community
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3)
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0)
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0) • Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1)
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0) • Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1) • 30.06.2007 Первая официальная версия framework’а
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0) • Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1) • 30.06.2007 Первая официальная версия framework’а • Март 2008 Выход первого за v1.0.0 minor релиза (ZF 1.5.0)
Release policy проекта Zend Framework • Major releases (X.0.0): • Может включать изменения, не поддерживающие обратную совместимость. • Может включать в себя новые фичи
Release policy проекта Zend Framework • Major releases (X.0.0): • Может включать изменения, не поддерживающие обратную совместимость. • Может включать в себя новые фичи • Minor releases (n.X.0) • BC breaks допустимы только для исправления критических ошибок • Может включать в себя новые фичи
Release policy проекта Zend Framework • Major releases (X.0.0): • Может включать изменения, не поддерживающие обратную совместимость. • Может включать в себя новые фичи • Minor releases (n.X.0) • BC breaks допустимы только для исправления критических ошибок • Может включать в себя новые фичи • Mini releases (n.m.X) • BC breaks допустимы только для исправления критических ошибок • Может включать только исправления ошибок
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0) • Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1) • 30.06.2007 Первая официальная версия framework’а • Март 2008 Выход первого за v1.0.0 minor релиза (ZF 1.5.0)
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0) • Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1) • 30.06.2007 Первая официальная версия framework’а • Март 2008 Выход первого за v1.0.0 minor релиза (ZF 1.5.0) • Сентябрь 2008 ZF 1.6.0
Этапы развития проекта Zend Framework • Лето 2005 Старт проекта • Апрель 2006 Выход первой публичной версии (ZF 0.1.3) • Март 2007 Выход первой beta версии (ZF 0.9.0) • Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1) • 30.06.2007 Первая официальная версия framework’а • Март 2008 Выход первого за v1.0.0 minor релиза (ZF 1.5.0) • Сентябрь 2008 ZF 1.6.0 • Ноябрь 2008 ZF 1.7.0 • Апрель 2009 ZF 1.8.0 • Июль 2009 ZF 1.9.0
Этапы развития проекта Zend Framework I II III Лето 2005 Апрель 2006 30.06.2007 • I.Внутренняя разработка. • II.Период неофициальных версий. • III.Официальное развитие framework’а.
ЭтапI. Внутренняя разработка. Особенности • Некоторая изолированность разработчиков. • Разработка производится как в обычном закрытом проекте • Общение всей команды происходит ~раз в месяц Задачи • Наработка функционала • Подготовка среды, в которой будет существовать проект (репозиторий кода, issue tracker, web сайт, …) • Отработка процессов релиза framework’а