Trac — это инструмент управления проектами и отслеживания ошибок в программном обеспечении. Он использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами.
Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion, а так же, через плагины, к Mercurial, git, Bazaar и другим. Trac написан на языке программирования python и в настоящее время распространяется по модифицированной лицензии BSD.
Возможности
- Возможность просмотра всех изменений в svn и trac-проекте.
- Можно создавать подпроекты, например для портала это будет «Разработать сервис фотографий», «Разработка форума» или «Реконструкция поискового-модуля». И для каждого будут отдельные группы тикетов.
- Просмотреть изменения кодов проекта в svn-ревизиях и сравнивание их.
- Создание, просмотр и закрытие тикетов.
- Управление пользователями, участвующие в разработке.
- Wiki-движок, с помощью которого можно создавать как справочную информацию, так и документацию по проекту в целом.
Так же имеется , с помощью которых вы легко расширите функционал!
Установка
Для развертывания Trac нам понадобится:
- Apache 2.2 — но вы можете так же развернуть и на Apache 1.3 или на Nginx, к примеру
- mod_python3 — это для Apache 2, а для 1.3 надо просто «mod_python»
- Subversion — либо другие системы контроля версия, например Mercurial, git или Bazaar
- py-subversion — для работы из Python с Subversion
- MySQL — можете также использовать SQLite или PgSQL. Подробнее
- Ну и сам Trac разумеется :)
Установка mod_python3 на Apache 2.2
# make install clean
Зайдите и проверьте установился ли модуль mod_python.so
# ll | grep mod_python
Если он есть, то впишите в конфиг httpd.conf
Более подробно о mod_python:
Установка Trac
Trac ставиться очень просто:
# make install clean
Если вы хотите управлять настройками trac-проекта и правами пользователей из web-панели, то установите плагин ”trac-webadmin”.
# make install clean
Более подробно о WebAdmin:
Использование MySQL
Если вы хотите использовать MySQL для хранения данных Trac, то вам надо установить MySQL-python драйвер. Если вам не надо, то можете использовать SQLite и пропустить установку MySQL-python, которую я опишу далее.
Для этого надо установить драйвер .
1 2 3 4 5 6 | # cd /tmp # fetch http://downloads.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz # tar -xvf MySQL-python-1.2.2.tar.gz # cd MySQL-python-1.2.2 # python setup.py build # python setup.py install |
Если вы используете Apache, то перезагрузите его, дабы достучатся до mod_python.
Теперь создадим базу данных и пользователя для Trac:
CREATE USER tracuser IDENTIFIED BY 'password';
GRANT ALL ON trac.* TO tracuser;
FLUSH PRIVILEGES;
Не забудьте заменить пароль в запросе на придуманный вами.
Установка Subversion с поддержкой Python
# make WITH_PYTHON=true WITH_BERKELEYDB=db42 WITH_MOD_DAV_SVN= install
Более подробно о ключах:
Установка py-subversion
# make FORCE_PKG_REGISTER= install clean
Более подробно о ключе:
Настройка Apache
Отредактируем конфиг Apache и добавим новый виртуальный хост:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <VirtualHost *:80> DocumentRoot "/home/trac" ServerName trac.example.com <Location /> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv /home/trac/example.com PythonOption TracUriRoot / AuthType Basic AuthName "Trac Server" AuthUserFile /home/trac/example.com/.htpasswd Require valid-user </Location> </VirtualHost> |
Я делаю с обязательной авторизацией на Trac, дабы сторонние пользователи не заходили. Если вы хотите чтобы Trac был открыт на всеобщее обозрение, то можно эту часть:
AuthName "Trac Server"
AuthUserFile /home/trac/example.com/.htpasswd
Require valid-user
Вынести в отдельный <Location>, например вот так получится в результате:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <VirtualHost *:80> DocumentRoot "/home/trac" ServerName trac.example.com <Location /> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv /home/trac/example.com PythonOption TracUriRoot / </Location> <Location /login> AuthType Basic AuthName "Trac Server" AuthUserFile /home/trac/example.com/.htpasswd Require valid-user </Location> </VirtualHost> |
Также, я использую пароли от Subversion для авторизации, если посмотрите статью FreeBSD. Установка и настройка Subversion, то у нас был путь «/home/svn/svn-auth-file», вот его и будем использовать в качестве AuthUserFile:
AuthUserFile /home/svn/svn-auth-file
...
Настройка Trac
Для начала нам надо создать trac-проект и настроить его.
Создание trac-проекта
initenv — создание и использование интерактивного режима
Более подробно о командах trac-admin:
Далее, укажите имя проекта и адрес для соединения с MySQL
Тип используемого сервера контроля версия «svn» и путь до svn-репозитория вашего проекта
Подробнее
Настройка trac-проекта
Отредактируйте файл «/home/trac/example.com/conf/trac.ini» и измените следующие директивы:
base_url = http://trac.example.com
В конце файла добавляем активацию плагина «webadmin»:
webadmin.* = enabled
Подробнее по всем директивам
Если вы заходите на адрес «trac.example.com» и видите:
Permission denied: '/home/trac/example.com/.egg-cache'то, настройте права на запись для каталога trac-проекта.
Назначаем права администратора одному из пользователей
Синхронизацию trac-проекта с svn-проектом
Автоматическое оповещения svn-изменений для trac-тикетов
И на последок, если вы используете , то добавьте эти строки в post-commit для оповещения trac-тикетов:
/usr/bin/python /usr/local/bin/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
Резюме
Вот и все, Trac установлен и настроен для комфортной работы, в последующих статьях буду рассказывать как настроить Mylyn, что бы непосредственно из IDE работать с Trac и управлять всеми подпроектами и тикетами!
Если есть вопросы, то добро пожаловать в комментарии!



спасибо :)
Спасибо надо говорить в теме pyha.ru/forum/topic/3025.0 :)
Смени диз плз
123, вы кто?
что с моей авкой?
спамер это!
CTAPbIu_MABP,
1. а что с ней?
2. точно? у тебя такой же спам был?
точно, у меня еще и не такой спам был
они более мение общей фразой сначала получают первый камент
а потом пользуются настройкой «разрешать, если есть хоть один подтвержденный камент»
и спамят в собственное удовольствие
Ну, у меня тогда это первое спам сообщение после adw0rd.ru/2009/antispam/
И получается это человеческий спам...
индусы за 10 центов тебе и не такое сделают
Я не на столько популярен думаю... )
adw0rd, ты мега крут и мегапопулярен! например на пыха.ру
Хорош жечь :)
Не какой я не спамер,просто глаза режет такой диз.Устроили тут :)
Индусов в своём коде ищите.
123, да что ты злися?
123, нарисуй другой, говорить все мастаки ;)
Убери тень и оранжевый цвет...
А какой поставить цвет?
123, убрал тени, жду когда вы порекомендуете цвет, спасибо. Но если вы о просто черном или сером цвете, то сразу скажу, что будут заголовки сливаться.
Так приятней намного,можно и ораньжевый оставить.Без теней гораздо лучше.
Оки, спасибо!
Пример аналогичной установки для Debian/Ubuntu:
debianworld ниче так :)