|
Персональные инструменты |
![]() |
||
|
![]() |
![]() ShowTeamWork — различия между версиямиМатериал из CustisWiki
Версия 04:00, 26 января 2010СодержаниеПроблемаПри грамотном процессе разработки, с применением средств групповой работы, таких, как:
накапливается огромная история коллективного взаимодействия команды. Хочется:
Однако на практике возникает проблемы:
В зависимости от глубины детализации можно получить:
Есть альтернативный способ «увидеть лес за деревьями» и при этом выжать краткую информацию по процессу — Визуализация. В динамике! Есть уже даже несколько моделей! Целых две ☻ . Codeswarm
Основная идея
А также:
GourceОсновная идея
Что не хватает?
Наш фреймворк ShowTeamWork
А именно:
ПримерыАльбом готовых визуализаций для известных софтверных проектов ( bugzilla, bzr-svn, codeswarm, ffmpeg, freemind, git, gource, inkscape, mediawiki, mercurial, mplayer, postgres, subversion, viewvc) можно посмотреть здесь. Мы используемСвободные, open-source программы:
А также несколько треков свободно доступной электронной музыки от Tunguska Music Society (License: Creative Commons). Если вы поленитесь искать музыку — мы сделаем клип на базе случайного трека (несколько треков идут в комплекте). Бесплатно и патриотично! Если хотите публиковать свои ролики, напоминаем о пока еще существующих цифровых правах на музыку и рекомендуем использовать только свободно доступную музыку — тут огромный выбор музыки в стиле Ambient. Быстрый старт
Скачайте дистрибутив, распакуйте куда-нибудь его.
В конце работы вы получите в каталоге, в котором его запустили пару видеофайлов (с codeswarm и gource визуализациями, по именам все будет понятно), а также вспомогательные файлы настроек и аудио, с префиксом stw-. Далее, вы сможете редактировать эти файлы, подбирая оптимальные настройки, подходящую музыку, и редактируя историю проекта в субтитрах, и по окончании редактирования, перезапускайте showteamwork.exe. Пересчет будет относительно экономичным — например, если вы меняли только параметры относящиеся к codeswarm-визуализации, то gource-визуализация пересчитыватся не будет, а если правили только субтитры — то будет выполнятся только наложение субтитров, без вызова gource или codeswarm. Более детально, схема генерации описана ниже. Схема генерации
Упрощенная схема генерации представлена выше.
Будучи запущенной ShowTeamWork без дополнительных файлов автоматически проанализирует лог, и
А теперь поясним, зачем остальные сложности. getlog.pyПри отсутствии известного системе логфайла, ShowTeamWork пытается вызвать скрипт getlog.py, где вы пропишете, что и откуда надо тянуть. Например, вы собираетесь визуализировать историю большого проекта, у которого свой репозиторий, независимый от вашего проекта по его визуализации. getlog.py — Python-скрипт, он мультиплаформенный, в отличие от bat-файлов или shell-скриптов, и собственно не требует знания Python — для всех проектов в подкаталоге samples есть скрипт getlog.py, так что при необходимости, просто скопируйте скрипт, вытаскивающий лог из нужной вам системы контроля версий (в каталоге samples представлены все поддерживаемые типы VCS). В скрипте, вы можете указать, например, параметры ограничивающие дату выборки лог-файла (например, только «последний спринт»). import os import datetime begindate=(datetime.date.today()-datetime.timedelta(days=14)).strftime("%Y-%m-%d") os.system( """ svn log --verbose --revision "{%(begindate)s}:HEAD" http://svn.wikimedia.org/svnroot/mediawiki/ >svn.log """ % vars()) Или вы можете написать свой скрипт, который, например, будет доставать данные из вики-системы, трекера-задач, системы документооборота или любой системы, подразумевающей командную работу. После работы этого скрипта, ожидается, что в каталоге будет один из следующих файлов:
cvs log
svn log -v
bzr log -v
git log --name-status --pretty=format:"%n------------------------------------------------------------------------%nr%h | %ae | %ai (%aD) | x lines%nChanged paths:
hg -v log
Если getlog.py не обнаружено, или он не выдал ожидаемые лог-файлы, ShowTeamWork пытается получить их самостоятельно, ожидая, что ее запустили в каталоге проекта под какой-нибудь системой контроля версий. ShowTeamWork смотрит, нет ли одного из следующих подкаталогов (в каталоге запуска или на один-два уровня выше) CVS, .svn, .bzr, .git, .hg — и обнаружив таковой, пытается получить лог-файл от соответствующей системы контроля версий (должна быть установлена и «в путях»). activity.xmlСтандартный XML-формат представления активности (когда, кто, с чем, что сделал): <?xml version="1.0"?> <file_events> <event date="1263155767000" author="rotem" action="A" filename="/trunk/phase3/languages/messages/MessagesEn.php" comment="Localization update for he, and whitespace fix in en.. " /> <event date="1263155767000" author="rotem" action="M" filename="/trunk/phase3/languages/messages/MessagesHe.php" comment="Localization update for he, and whitespace fix in en.. " /> </file_events> Т.е. все просто — последовательность event вложенных в file_events, а атрибуты event следующие:
ИнсталляцияПроект (исходники и бинарники) хостится на Google Code — http://code.google.com/p/showteamwork/. Т.е. скомпилированные под Windows бинарники, вместе можно скачать отсюда, а если хотите поучаствовать в разработке — см. http://code.google.com/p/showteamwork/source/checkout Единственное софтверное требование под Windows — наличие Java (все остальное идет в комплекте). Под Linux нужно установить (из исходников или пакетами — неважно):
и сделать, чтобы эти утилиты были прописаны в путях. Cразу посмотрите каталог samples, должно быть все понятно. Чуть позже, мы подробно распишем здесь назначение каждой настройки. Контакты
Резюме
В принципе, наверное все сказано, на всякий случай, вдруг кому пригодится — короткий доклад о ShowTeamWorks на конференции AgileDays-2009 (особого ничего нового, по сравнению с написанным выше). Примечания
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion». Репликация: База Знаний «Заказных Информ Систем» → «ShowTeamWork» |
![]() |
||||
![]() |
![]() |