Trac 0.12」カテゴリーアーカイブ

TracLightning から blockdiag シリーズを使いたい

こんにちわ。いつのまにか十月になっていて朝夕は寒くて、あまり体調がよくないおおまえです。今日は blockdiag というツールを TracLightning から使えるようにする手順を書きたいと思います。

blockdiag というのは http://blockdiag.com/ja/ によると『blockdiag シリーズはシンプルなテキストからブロック図などの画像を生成する画像生成ツール群です。』だそうです。graphviz 風のテキストからブロック図が生成できるツールで graphviz が好きな人はきっと blockdiag も好きなはずです ;)

この blockdiag を Trac から扱えるようにしたプラグインがあり、今回はこのプラグインをインストールして使えるようにします。

1. コマンドプロンプトの起動

インストール作業は easy_install コマンドが主体になるので、コマンドプロンプトを起動しておきます。「スタートメニュー」>「Trac」>「コマンドプロンプト」を使って起動してください。

2. Python Imaging Library のインストール

次に blockdiag が画像を描画するのに使用している Python Imaging Library (PIL) を easy_install コマンドでインストールします。 ここで最新版である 1.1.7 ではなく、1.1.6 をインストールします。

C:> easy_install PIL==1.1.6

なぜ PIL-1.1.6 をインストールするかというと、PIL-1.1.7 のライブラリが VC++ 2008 のデバッグ用 DLL にリンクしているために VC++ 2008 をインストールしていない環境では動作しないという問題があり、これを回避するためにこのようなことをしています。

ちなみに PIL は「Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ」 (x86, x64) が必要なので、インストールしていない場合にはここで一緒にインストールしておきましょう。

3. blockdiag シリーズのインストール

同じく easy_install を使って簡単にインストールできます。

C:> easy_install blockdiag
C:> easy_install seqdiag
C:> easy_install actdiag
C:> easy_install nwdiag

ちゃんとインストールできていれば、blockdiag コマンドが使えるはずなので確かめておきます。その他のコマンドも確かめておきましょう。

C:> blockdiag -h
Usage: blockdiag-script.py [options] infile

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -a, --antialias       Pass diagram image to anti-alias filter
  -c FILE, --config=FILE
                        read configurations from FILE
  -o FILE               write diagram to FILE
  -f FONT, --font=FONT  use FONT to draw diagram
  -P, --pdb             Drop into debugger on exception
  -s, --separate        Separate diagram images for each group (SVG only)
  -T TYPE               Output diagram as TYPE format
  --nodoctype           Do not output doctype definition tags (SVG only)

C:> blockdiag --version
blockdiag-script.py 0.9.4

4. TracBlockDiagPlugin のインストール

これも easy_install から簡単にインストールできます。現時点では 0.5.0 です。

easy_install http://trac-hacks.org/svn/tracblockdiagplugin/0.12

5. TracLightning の再起動

必要なモジュール、プラグインをインストールしたので、ここで再起動しておきます。管理ツールで再起動、もしくはコマンドラインから以下のように入力しても再起動できます。

C:> net stop traclightning
C:> net start traclightning

6. trac.ini の設定

プラグインを有効にするために、以下の記述を C:\TracLight\python\share\trac\conf\trac.ini[components] セクションに追加します。

blockdiagplugin.* = enabled

さらに blockdiag で使用するフォントを指定するために、以下の設定を追加します。

[blockdiag]
font = C:\WINDOWS\FONTS\msgothic.ttc

ここで指定したフォントを使ってブロック図の文字が描画されるようになっていて、この指定がないと文字化けを起こすはずです。メイリオが好きな人は代わりに meiryo.ttc にしたり、自分の好きなフォントをフルパスで指定してみてください。

7. 実際に使ってみる

適当なプロジェクトの Wiki ページで以下のようなのを書きこんでみます。

{{{#!blockdiag(type=png)
diagram admin {
   // Set M17N text using label property.
   A [label = "起"];
   B [label = "承"];
   C [label = "転"];
   D [label = "結"];

   A -> B -> C -> D;

   // Use M17N text directly (need to quote).
   春 -> 夏 -> 秋 -> 冬;

   // Use M17N text including symbol characters (need to quote).
   "春は 曙" -> "夏 = 夜" -> "秋.夕暮れ" -> "冬 & つとめて";
}
}}}

すべて問題なくインストール・設定できていれば以下のような形でブロック図が Wiki に展開されているはずです。
blockdiag with Trac

すばらしいです。Wiki から手軽に簡単にブロック図を書くことができるようになりました。

ここで試してみたものはあくまで一例に過ぎないので、インストールしていろいろ試してみてください。


Trac プラグイン:ExcelDownloadPlugin でチケット一覧から履歴をエクスポートする

cikloneはTracをベースにしたエンタープライズ向けのWebサービスです。利用しているお客様の声から開発した各種プラグインをTrac/Trac Lightningでも利用できるように trac-hacks:ExcelDownloadPlugin として公開しました。

https://trac-hacks.org/wiki/ExcelDownloadPlugin

 

Excelダウンロードプラグインは、Tracの強力なレポート機能と連動した

  • Excel形式でチケット出力
  • チケット一覧に対応した履歴出力

することが出来ます。

インストール

それでは、Windows環境で良く利用されているTracLightningをつかってインストールをしましょう。

1. xlwt ライブラリのインストール

ExcelDownloadPlugin は Excel ファイルの生成に xlwt を使っています。まずはこれをインストールします。

c:\TracLight\bin>easy_install -Z xlwt

2. ファイルのダウンロード

https://trac-hacks.org/wiki/ExcelDownloadPlugin にアクセスして、Downloadから「here」をクリックして、exceldownloadplugin-rxxxxx.zip をダウンロードします。ダウンロードしたファイルを適当なディレクトリに展開します。

ここでは、

C:\temp\exceldownloadplugin\0.12

に展開。

3. easy_install でインストール

easy_install にソースディレクトリを指定してインストールを実行します。

c:\TracLight\bin>easy_install -Z C:\temp\exceldownloadplugin\0.12
Processing 0.12
Running setup.py -q bdist_egg --dist-dir C:\temp\exceldownloadplugin\0.12\egg-dist-tmp-nduefk
zip_safe flag not set; analyzing archive contents...
Adding exceldownloadplugin 0.12.0.1 to easy-install.pth file
Installed c:\traclight\python\lib\site-packages\exceldownloadplugin-0.12.0.1-py2.6.egg
Processing dependencies for exceldownloadplugin==0.12.0.1
Finished processing dependencies for exceldownloadplugin==0.12.0.1

4. trac.ini でプラグインを有効にする

trac.ini はプロジェクト毎に設定する必要があります。有効にしたいプロジェクトの conf/trac.ini でプラグインを有効にします。

# conf/trac.ini
[components]
tracexceldownload.* = enabled

実際に使ってみましょう

カスタムクエリやレポートからチケット一覧を表示します。一覧表示されたページの下部に、「Excel」「Excel(履歴含む)」が表示されます。あとは、クリックしてダウンロードしてください。

Excelダウンロードプラグイン

  • Excel形式(xls)によるエクスポート機能
  • チケットの履歴出力
  • チケット単位(1チケット)で履歴を含めたエクスポート機能

が利用可能です。
ぜひ、あなたのプロジェクトでご活用下さい。

StickyTicketPlugin – Trac でもチケットを付箋に印刷したい


先週まで涼しかったのに今週はずいぶん暑くて辛いおおまえです。(夏はまだまだこれからなのに…)

先週の金曜ぐらいにJIRA 課題を付箋に印刷する方法というのを知りました (たしかに Twitter で)。「これはよいのでわ!」と思い、同じようなことができる Trac プラグインを作ってみました。

http://trac-hacks.org/wiki/StickyTicketPlugin

インストール

さっそくインストールしましょう。

1. ソース取得

http://trac-hacks.org/svn/stickyticketplugin/0.12 を適当なディレクトリにチェックアウト (もしくはエクスポート) します。

2. easy_install でインストール

easy_install にソースディレクトリを指定してインストールを実行します。PDF 生成のために reportlab を使っています。このライブラリがインストールされていない場合には PyPI から合わせてインストールされます。

C:\TracLight\bin>easy_install -Z C:\temp\stickyticketplugin\0.12
Processing 0.12
Running setup.py -q bdist_egg --dist-dir C:\temp\stickyticketplugin\0.12\egg-dist-tmp-aboc0q
zip_safe flag not set; analyzing archive contents...
stickyticketplugin 0.12.0.1 is already the active version in easy-install.pth

Installed c:\traclight\python\lib\site-packages\stickyticketplugin-0.12.0.1-py2.6.egg
Processing dependencies for stickyticketplugin==0.12.0.1
Searching for reportlab
Reading http://pypi.python.org/simple/reportlab/
Reading http://www.reportlab.com/
Best match: reportlab 2.5
Downloading http://pypi.python.org/packages/2.6/r/reportlab/reportlab-2.5.win32-py2.6.exe#md5=4ce6342f3264507a59b33d20dd819471
Processing reportlab-2.5.win32-py2.6.exe
reportlab.rl_config: module references __file__
reportlab.__init__: module references __file__
reportlab.lib.fontfinder: module references __file__
reportlab.lib.testutils: module references __path__
reportlab.lib.utils: module references __file__
reportlab.lib.utils: module references __path__
reportlab.pdfgen.pdfimages: module references __file__
creating 'c:\docume~1\admini~1.ope\locals~1\temp\easy_install-_go0ni\reportlab-2.5-py2.6-win32.egg' and adding 'c:\docume~1\admini~1.ope\locals~1\temp\easy_install-_go0ni\reportlab-2.5-py2.6-win32.egg.tmp' to it
creating c:\traclight\python\lib\site-packages\reportlab-2.5-py2.6-win32.egg
Extracting reportlab-2.5-py2.6-win32.egg to c:\traclight\python\lib\site-packages
Adding reportlab 2.5 to easy-install.pth file

Installed c:\traclight\python\lib\site-packages\reportlab-2.5-py2.6-win32.egg
Finished processing dependencies for stickyticketplugin==0.12.0.1

3. trac.ini でプラグインを有効にする

有効にしたい Trac プロジェクトの conf/trac.ini か inherit-file で共有している trac.ini でこのプラグインを有効にします。

# trac.ini
[components]
tracstickyticket.* = enabled

印刷してみる

付箋を貼る台紙を作る

付箋に印刷するにあたって、まずは付箋を貼り付ける台紙が必要です。それを作るためにプラグインを有効にしたプロジェクトの検索ボックスで query:?id=0 と入力します。

検索結果なし (query:?id=0)


もちろん検索結果は 0 ですが、この一番にある「付箋」リンクをクリックすると付箋を貼り付ける箱が描かれた PDF がダウンロードできます。この PDF を印刷して付箋を貼る台紙にします。

付箋のサイズはデフォルトで 75mm x 75mm としています。また紙のサイズは A4 です。これ以外のサイズにしたいときは trac.ini で [sticky-ticket] セクションを設定してください。sticky-width, sticky-height で付箋の幅と高さをミリメートルで指定するようになっています。

チケットを印刷


ようやく準備が整いました。カスタムクエリを使って印刷したいチケットを絞り込みます。絞り込んだら一番下にある付箋リンクをクリックしましょう。付箋を貼った位置と同じ場所にチケット内容が配置された PDF がダウンロード出来たでしょうか。うまく行っていれば、この PDF と付箋を貼った紙を手差ししながらチケットを付箋に印刷していきましょう。


印刷したいチケットの番号がはっきりしているときには、カスタムクエリから検索条件にチケットを選んで対象の id をカンマ区切りで入力するとすぐに検索できます。検索ボックスから query:?id=6,8,10 と入力するのでもいいと思います。

これでチケットが付箋に印刷できました。タスクボードに貼っていきましょう。

Trac プラグイン:ワークフロー管理プラグイン#2 (設定方法)

インストールが正常に終わったら設定です。(GUIツールを使ったとしてもチケットのワークフローを設定するのはとても面倒)
ここでは基本的な使い方と設定例を説明していきます。
環境
  • Windows XP SP3
  • TracLightning 3.1.1(DLはこちら)
Trac をつかったチケット運用をはじめて軌道にのってきたらワークフローをカスタマイズして自分たちのプロジェクトにあわせたいと思う。設定例を示しながらTracWorkflowAdmin の使い方を説明します。
読んでおいた方が良い文書

普通は、trac.ini に [ticket-workflow] セクションを作成し、[ticket-workflow] セクション内にサンプルを貼り付けておわり。

残念ながら、TracWorkflowAdmin にはGUIで trac.ini の {ticket-workflow} を編集できる機能がないので画像を示しながら設定例を解説します。当然、trac.ini の {ticket-workflow}セクションにコピーアンドペーストしても良いです。

※ワークフローがカスタマイズできるといっても、「new ではじまり close で終わる」は変わりません。

使い方

設定例1:TracWorkflowAdmin の初期化で提供されるワークフロー

標準的なワークフローです。流れとしては、新規作成(new) → 担当割り当て(assigned) → 解決(closed) となります。新規作成(new) → 担当する(accepted) → 解決(closed) という流れもあり、こちらはチケットを自分で選んで処理する場合のフローです。

[ticket-workflow]
accept = new,assigned,accepted,reopened -> accepted
accept.default = 999
accept.name = 担当する
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
leave = new,assigned,accepted,reopened,closed -> *
leave.default = 1000
leave.name = 変更しない
leave.operations = leave_status
reassign = new,assigned,accepted,reopened -> assigned
reassign.default = 998
reassign.name = 担当を変える
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reopen = closed -> reopened
reopen.default = 997
reopen.name = 再オープンする
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,accepted,reopened -> closed
resolve.default = 996
resolve.name = 解決にする
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY

設定例2:最もシンプルなワークフロー

最もシンプルなフローです。新規作成(new) → 解決(closed) 。一人で利用している場合やワークフロー機能を使わない場合など、チケットを備忘録やタスクとしてシンプルに利用するときに良いかもしれません。

[ticket-workflow]
leave = new,closed,reopened -> *
leave.default = 1000
leave.name = 変更しない
leave.operations = leave_status
reopen = closed -> reopened
reopen.default = 999
reopen.name = 差し戻す
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,reopened -> closed
resolve.default = 998
resolve.name = 解決にする
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY

設定例3:「確認待ち」ステータスを追加したワークフロー

フローダイアグラムは少し複雑になります。

チケットの作業が完了したとき、「確認待ち」というステータスが必要な場合があります。バグ管理の場合、開発者が対応済みと思っても、解決していないことや認識違いが多々あります。そこで、「完了」の前に必ず別の担当者による「確認」を入れることでバグが修正されたことをチェックしたり、再現しないことを確認したあとで「完了」にするためのワークフローです。

このワークフローでは完了にするためには必ず「解決・確認を依頼する」を経由しなければいけません。場合によっては直接完了できるフローを追加しても良いかもしれません。

[ticket-workflow]
leave = new,assigned,accepted,reopened,closed,resolved -> *
leave.name = 変更しない。
leave.default = 1
leave.operations = leave_status
accept = new,assigned,accepted,reopened -> accepted
accept.name = 着手する。
accept.default = 0
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
reassign = new,assigned,accepted,reopened -> assigned
reassign.name = 担当者変更
reassign.default = 0
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reject = resolved -> assigned
reject.name = 差し戻す。
reject.default = 0
reopen = closed,resolved -> reopened
reopen.name = 再オープンする。
reopen.default = 0
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,accepted,reopened -> resolved
resolve.name = 解決、確認を依頼する。
resolve.default = 0
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY
verify = resolved -> closed
verify.name = 完了を承認する。
verify.default = 0
verify.operations = set_resolution

参考資料

操作(operations)の説明

  • del_owner — チケットの所有者を削除します。
  • set_owner — チケットの所有者を選択された所有者か入力された所有者に設定します。
  • actionname.set_owner カンマ区切りのリストか1つの値を設定することができます。
  • set_owner_to_self — チケットの所有者をログインユーザに設定します。
  • del_resolution — チケットの解決方法を削除します。
  • set_resolution — チケットの解決方法を選択された解決方法か入力された解決方法に設定します。

trac の wiki/TracWorkflowから引用

Trac プラグイン:ワークフローダイアグラム(線図)によるワークフロー管理プラグイン#1 (インストール)

ワークフローダイアグラムによるワークフロー管理プラグインをご紹介します。Trac のすばらしい点はそのプラグインの豊富さがあります。チケットのワークフロー管理を簡単にするために

などがワークフロー関連では良く利用されているのではないでしょうか。

今回ご紹介するプラグインは、

チケットワークフローの図

特徴

TracWorkflowAdmin はチケットのワークフロー管理のために、シンプルなWebインターフェースを提供し、ワークフローを簡単に追加・編集することができます。

  1. アクションや表示名をインラインで追加・編集できるUI
  2. リアルタイムでワークフローダイアグラムとして表示(プレビュー機能)
  3. 設定間違いをメッセージで通知

ワークフロー管理プラグイン

TracWorkflowAdminの一番の特徴は、変更したワークフローをダイアグラム(線図)によるリアルタイムプレビューが利用できることです。

従来のワークフロー管理では複雑なワークフローを作成する場合、何度もやり直して試行錯誤しながら設定していたのではないでしょうか。このプラグインは「かんたんに、目で見て分るワークフロー管理」を目指して開発しました。

Windows/Trac (TracLightning) 編:インストール方法

前準備として、Tracが正常に動作する環境とpythonへのパスが通っていること。python は TracLightning と同時にインストールされます。パスの設定なども導入時に出来ていると思います。

>{Tracホーム}\python\Scripts

1. スタートメニュー「Trac」→「コマンドプロンプト」を実行

2. プラグインのインストール

TracWorkflowAdmin をダウンロードし、適当な場所に解凍します。

コマンドプロンプトで以下のコマンドを実行します。
C:> easy_install.exe C:\TracLight\plugins\svn\tracworkflowadmin\0.12

実行結果:

C:\TracLight\bin>easy_install.exe c:\TracLight\plugins\svn\tracworkflowadmin\0.12
Processing 0.12
Running setup.py -q bdist_egg --dist-dir c:\TracLight\plugins\svn\tracworkflowadmin\0.12\egg-dist-tmp-k4yidd
zip_safe flag not set; analyzing archive contents...
Removing tracworkflowadmin 0.1 from easy-install.pth file
Adding tracworkflowadmin 0.12.0.1 to easy-install.pth file

Installed c:\traclight\python\lib\site-packages\tracworkflowadmin-0.12.0.1-py2.6.egg
Processing dependencies for tracworkflowadmin==0.12.0.1
Finished processing dependencies for tracworkflowadmin==0.12.0.1

3. Trac を再起動

TracLightningの場合、

  • 「コマンドプロンプトで起動」を使っている場合は、コマンドプロンプトを閉じて再度「コマンドプロンプトで起動」を実行します
  • Windowsサービスで起動している場合は、管理ツールからサービスを選んで TracLightning のサービスを再起動します

再起動できたらブラウザから TracLightning のプロジェクトに管理者カウントでログインします。

ログイン後、管理メニュー → プラグインをクリック。

インストールした「TracWorkflowAdmin」を有効にします。変更を適用をクリック。
以上でプラグインのインストールは終了です。
※プラグインの有効・無効はプロジェクト毎に設定する必要があります。

Trac プラグイン : Trac Ticket Template Plugin

trac でプロジェクトを運用をするのが初めての方などは特にですが、「チケットって何を書けばいいの?」となることが多いとおもいます。

私も初めて使ったときはチケットとはどういうものかよくわからなかったものです。

雛形があればどうにかチケットを書くことができるのではないか。

そんなプラグインなんて・・・ありました!

今回はチケットのテンプレートを作成できるプラグイン Trac Ticket Template Plugin をご紹介いたします。

続きを読む

Trac プラグイン: 議事録の「やること」をチケット化 – WikiCreateTicketPlugin

社内ではバグ管理システム cikloneをほとんど全てのプロジェクトで利用しています。
開発の管理だけではなく、お客様との打ち合わせ、社内ミーティングのWikiページを作成し、議事録として残しています。

議事録を書いていて、大切なことに「やること」を記録しておくこと、というのがあります。
Wikiでは 「AI ブログに記事を追加する (sugimoto)」 (AI : Action Item)なんて書いているんですが、やっぱり「やること」=「タスク」はチケットで管理したいものです。

で、Wikiからチケットを作成する、WikiCreateTicketPlugin を作りました。

インストール

レポジトリからインストールします。0.11と0.12で動作検証済みです。

> easy_install http://trac-hacks.org/svn/wikicreateticketplugin/0.11/

WikiCreateTicket プラグインを使う

チケットの作成は以下のフォーマットです。

  • #new foobar => foobar というチケットを作成
  • #new [obama] foobar => foobar というチケットをobamaさんがownerとして作成

こんな感じで、「やること」を #new の後に書いていきます。

Wikiページを普通に保存すると「#new」のところが「#972」とチケットへのリンクになります。

そうです。チケットになっています。チケットオーナーは [taro] で指定したとおり、taroさんになりました。
議事録担当者はずいぶん楽になりそうですね。

Tracプラグイン: ブックマーク機能を追加 – Bookmark Plugin

社内標準でTracベースのバグ管理システム cikloneを使い始めてかなり経ちます。
使っていく中で、多いのがプロジェクトによってはいつも同じページを参照していて、そこにショートカットが欲しいなー。
というものです。

とはいえ、自分の為にWikiStartにリンクつくるのもどうかなと思うし。。

そんなわけで、Tracにブックマーク機能を追加する、BookmarkPlugin を作りました。

インストール

レポジトリからインストールします。0.11と0.12で動作検証済みです。

> easy_install http://trac-hacks.org/svn/bookmarkplugin/0.11/

Bookmark プラグインを使う

ブックマークプラグインをインストールして、enableしたら、ログインしましょう。
ログインすると、コンテキストメニュー(グローバルメニューの下) に灰色の星マークが表示されます。

灰色の星マークをクリックすると、黄色に変わります。

これでブックマークされました。右端の “Bookmark” というリンクからプルダウンで該当のページに行くことができます。
黄色の星マーククリックで削除です。

“Bookmark” リンクそのものは /bookmark というページにリンクしていて、ブックマークの一覧を表示します。

BookmarkPluginは初めてtrac-hacks に上げたプラグインなのですが、VotePluginを参考にして作りました。

Trac プラグイン : Ticket Changesets Plugin

trac と subversion を用いてプロジェクトを管理していて、subversion で管理しているソースをコミットする時

チケットの参照

refs #1, #2
  * commit message

チケットの解決

fixed #3
  * bugfix

などのメッセージを入れるかとおもいます。
このコマンドをメッセージとしてコミットすると対応するチケットのコメント欄は下図のようになります。


数個のコメントならいいですが、たくさんのコメントが付いた場合どのチェンジセットがこのチケットに関わるものなのかわかり辛くなります。

そんなときに便利なのがこのTicket Changesets Plugin です。

続きを読む