В этой статье я постараюсь дать обзор системы управления проектами Trac, рассказать кому она будет полезна и способы ее применения в разработке проектов.

Разработчик — Edgewall
Лицензия — BSD
На чем написана — Python
Среда обитания — Там где обитает Python, а значит почти везде
Итак, для чего же нужен этот зверек?
В процессе разработки очень часто мы сталкиваемся с необходимостью управления и сопровождения проекта. Я знаю многих людей, которые пишут сайты «на коленке» вообще без каких либо систем и при этом достаточно счастливы. У них вся информация по проекту находится в вордовском документе, а комментарии в коде встречаются реже снега в Сахаре.
Но рано или поздно все мы сталкиваемся с необходимостью организовать свое рабочее время, усилия, задокументировать проект и вообще понимаем что «так жить дальше нельзя». При этом самые энергичные начинают писать для себя органайзеры, туду листы, багтрекеры, в общем изобретают велосипед.
Trac — это довольно простая система управления проектами, но заметно упрощающая нашу жизнь при должном терпении. В свое время мною было пересмотрено много различных систем управления, и не выбрана ни одна из них. Trac вошел в жизнь незаметно, без особого шума, прижился и сейчас очень помогает и облегчает эту самую жизнь.
Не хочу разглагольствовать на тему «Как важно иметь систему управления проектом». Если Вы ни разу не пользовались подобными системами, то я надеюсь что эта статья даст общее представление и, возможно, заставит задуматься о внедрении такой у себя.
Основой для Trac'а является SVN репозиторий. Поэтому если вы до сих пор не используете в разработке Subversion, то скорее всего Trac будет для вас безинтересен.
Ниже накидал один из самых распространенных методов использования TRAC

Также возможны и другие способы, например без Apache — Trac будет работать как standalone сервер. Можно еще подключить LDAP для аутентификации. Но общая структура я думаю понятна.
О системе

Разработчик — Edgewall
Лицензия — BSD
На чем написана — Python
Среда обитания — Там где обитает Python, а значит почти везде
Итак, для чего же нужен этот зверек?
В процессе разработки очень часто мы сталкиваемся с необходимостью управления и сопровождения проекта. Я знаю многих людей, которые пишут сайты «на коленке» вообще без каких либо систем и при этом достаточно счастливы. У них вся информация по проекту находится в вордовском документе, а комментарии в коде встречаются реже снега в Сахаре.
Но рано или поздно все мы сталкиваемся с необходимостью организовать свое рабочее время, усилия, задокументировать проект и вообще понимаем что «так жить дальше нельзя». При этом самые энергичные начинают писать для себя органайзеры, туду листы, багтрекеры, в общем изобретают велосипед.
Trac — это довольно простая система управления проектами, но заметно упрощающая нашу жизнь при должном терпении. В свое время мною было пересмотрено много различных систем управления, и не выбрана ни одна из них. Trac вошел в жизнь незаметно, без особого шума, прижился и сейчас очень помогает и облегчает эту самую жизнь.
Не хочу разглагольствовать на тему «Как важно иметь систему управления проектом». Если Вы ни разу не пользовались подобными системами, то я надеюсь что эта статья даст общее представление и, возможно, заставит задуматься о внедрении такой у себя.
Как оно работает
Основой для Trac'а является SVN репозиторий. Поэтому если вы до сих пор не используете в разработке Subversion, то скорее всего Trac будет для вас безинтересен.
Ниже накидал один из самых распространенных методов использования TRAC

Также возможны и другие способы, например без Apache — Trac будет работать как standalone сервер. Можно еще подключить LDAP для аутентификации. Но общая структура я думаю понятна.
Основные функции
- Управление проектомразделение проекта на этапы (milestones)
контроль выполнения (roadmap)
все изменения по проекту заносятся на временную шкалу (timeline)
поддержка rss
Tickets
Стандартная функциональность — учет ошибок, замечаний, пожеланий с возможностью фильтрации и занесение соответсвенно в milestone, roadmap.
Я так же использую в качестве ToDo. Достаточно просто и удобно.
Просмотр репозитория
Достаточно удобный модуль по просмотру Subversion репозитория проекта. Позволяет просматривать исходный код с учетом ревизии, а также изменений.
Функциональность может быть расширена за счет дополнительных модулей.
Управление пользователями
Простая система — что могут делать пользователи, а что нет.
WiKi
В trac встроена система WiKi с возможностью делать ссылки на milestone, roadmap, ticket. Органично вписывается и удобна в использовании при ведении проекта.
Установка
Проблем при установки в *nix системы возникнуть не должно все детально описано в TracGuide
Для Windows посоветовал бы статью Дмитрия Коняева «Установка Subversion + Trac под Windows»
Совет: ставьте 0.10.4 версию — под нее написано много модулей расширения.
Самые необходимые модули расширения перечислены здесь
Так же советую посмотреть на сайт http://trac-hacks.org/ где перечислены не менее полезные дополнения, макросы, интеграции с другими системами разработки, исправления, да и вообще очень много полезной информации по Trac'у. Если будет интерес к данной теме я потом опубликую детальную статью по модулям и расширениям Trac.
Выводы
Данная система будет полезна для всех кто использует Subversion.
- Для студентов (программистов)
Организация своего труда, учеба и тренировка перед трудоустройством, ознакомление с системами управления проектов на примере программ типа «Hello world!» (лабы)
Для одиночных разработчиков
При довольно плотном графике многие разработчики часто не документируют ошибки, идеи, ToDo, а потом, как следствие, забывают о таковых, выбиваются из графика, распыляются и т.д. Система управления проектами помогает избежать многих нюансов и работать с наибольшей эффективностью. Да и потом при просмотре того что было сделано, сколько ошибок устранено появляется чувство гордости и удовлетворенности за проделанную работу.
Для компаний (разработки ПО)
Если вы не используете ни одну похожую систему, то настоятельный совет потратить несколько дней и внедрить таки ее у себя. Результаты не заставят себя ждать ;)
И на последок рассмотрю применение Trac+Subversion на примере разработки сайта.
Задача: Есть 2-программиста PHP, 1-программист БД, 1-дизайнер, 1 менеджер проекта. Цель — разработать сайт. Так же есть наброски ТЗ. Нюансы оговорены начинается собственно разработка.
Решение:
- Создается SVN репозиторий, и Trac проект к нему. Все пользователи туда естественно внесены.
Вся необходимая информация по ТЗ проекта вносится в WiKi Trac'a.
Создаются mileston'ы с соответствующими тикетами в качестве ToDo и раздаются программистам и дизайнеру. Устанавливаются сроки.
Идет бурная разработка. Закрываются тикеты, mileston'ы, расширяется WiKi. В процессе виден общий результат — строятся диаграммы, контролируется процесс разработки.
Все ошибки и пожелания опять же регистрируются.
Оканчивается разработка проекта, из WiKi делается документация, генерируется документация по коментариями из исходного кода, проект сдается и закрывается.
При данном подходе видно, что при замене любого из участников процесса или введения новичков процесс «осваивания» заметно упрощается и ускоряется.
Естественно это очень обобщенный и абстрагированный пример, но он в общих чертах показывает процесс разработки с Trac'ом.
Удачных разработок ;)
П.С. Это моя первая статья в сообществе хабрахабр поэтому прошу сильно не бить :)
Полезные ссылки
http://trac.edgewall.org/ — Сайт где можно взять Trac
http://trac-hacks.org/ — Очень полезный сайт со всевозможными расширениями функционала trac
http://www.hosted-projects.com/trac/TracDemo/Demo — демка Trac'a.
«Установка Subversion + Trac под Windows»
- Создается SVN репозиторий, и Trac проект к нему. Все пользователи туда естественно внесены.
- Для студентов (программистов)