改訂 Trac 入門 出来!

2008 年秋・・・・・「Trac 入門」初版が出版されました。

会社の人とTracの本を書きました(技評から出ます) - kondoumh のはてなブログ

Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド

Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド

あれから足かけ5年・・・・

「[改訂]Trac 入門」 を皆さんにお届けすることができます。

〔改訂〕Trac入門 ~ソフトウェア開発・プロジェクト管理活用ガイド (Software Design plus)

〔改訂〕Trac入門 ~ソフトウェア開発・プロジェクト管理活用ガイド (Software Design plus)

発売日は 3/8 に決定。一部書店では先行販売もあるようです。

執筆中(というか校正中)に Trac 1.0 がリリースされ安定版として登場したので、内容も Trac 1.0 で検証・修正しました。
Trac 1.0 完全対応版です。

この5年間のトピックとしては

といったことが挙げられます。

Trac をはじめとする ITS が普及・定着し、なんらかの ITS を使ったことがない開発者というの今やはほとんどいません(多分)。構成管理ツール(SCM) については普及期にあった Subversion は後発の分散 SCM に押され、今や Git が SCM デファクトの地位を確立しました。GitHub にアカウントを持ちカジュアルに SCM/ITS を使いこなす開発者も増えています。

最初に SCM を導入して構成管理の基盤を築き、次にTracRedmine のような SCM と連携する ITS を導入して効果を上げている開発チームは多いでしょう。より先進的な開発チームでは Jenkins に代表される CI ツールを導入・活用して、ソフトウェアがいつでも動作する状態を維持しながら段階的に機能を拡張する開発メソッドを定着化させています。

Trac でも Git や Jenkins との連携が進みました。Trac 1.0 では標準で Git をサポートするようになりましたし、Jenkins, Trac 双方に連携用のプラグインが提供されています。オールインワンパッケージである Trac Lightning をインストールすると、ほぼワンクリックで SCM/ITS/CI の統合環境が出来上がってしまいます。

このような状況を踏まえ、改訂版では、Subversion に加え Git との連携、Jenkins との連携についても加筆し、活用方法を提示しています。

初版の出版以降、筆者らは数百人規模の開発現場で Trac Lightning を導入・定着化する経験をしました。リポジトリーへのコミットルール・チケット運用ルールを決めてプロジェクトメンバーに展開し、性能問題が発生した時に対策を講じ、様々なプラグインを導入・評価して適用しました。大規模でチーム数も多いのでアンチパターンに陥っているケースも目の当たりにしました。

改訂版の構成や基本的な内容は初版と大きく変わっていませんが、随所に5年間の歳月の流れと実プロジェクトでの経験がフィードバックされています。4章(プロジェクトへの適用)、5章(SCM/CI連携)、6章(逆引き Trac)が特にボリュームアップしています。

初版を執筆する時、単なるインストール・カスタマイズノウハウ集に終始するのではなく、問題管理の本質と Trac がサポートする領域について、具体的にわかりやすく解説することに努めました。Excel しか知らないプロマネに ITS 導入のメリットを理解させる材料を提供したいという意図もありました。
今や Trac のような ITS を使うことはプロジェクトのスタート時点の必須条件として認識されるようになっていると思います。
GitHub や Backlog のような ITS/SCM のクラウドサービスが、気軽に利用できるようになっているため、ITS のサーバーを構築し管理する必要性は希薄になっています。紹介しているプラグインも数年後には陳腐化しているかもしれません。ただし、問題管理の本質やチケット運用の部分は古くなることはないでしょう。

初版で登場した、筆者らをモデルにしたイラストや漫画のキャラクターは全員男子でしたが、今回は女子が加わりました。

色んな意味でパワーアップした Trac 入門改訂版 をぜひ読んでみてください。

#執筆うらばなし的な内容も後日エントリー予定です。

Issue 管理は一応やってるんです。

f:id:kondoumh:20160410114137p:plain

iEdit に関して、はてダに寄せられた要望とかバグレポートはどのようにしているかというと、iEdit の開発リポジトリーとして使っている Assembla で Trac のチケットとして管理しています。はてダ以外にも Vector の評価コメントなど、Web でフィードバックがあったものは、極力チケット管理するようにしています。

Assembla は Trac/Subversion のホスティングサービスです。チケットは スパムコメント対策で、僕しか更新できない設定にしてますが、カレントの Issue リストを閲覧できるようにしました。

1人 Issue 管理ですので記述は超適当ですが、それなりに仕様検討とか優先度決めとかに役立っていると思います。リクエストより自分の思いつきを優先しちゃうことが多いですが、タイミングとモチベーションによっては要望に応えるべく頑張ることも多いです。

オープンソースでもない個人作業なので、(ほとんどマニアの)ユーザーの皆さんには気長に待っていただくしかないのですが。Issue リストを見ると、今後どんな改修をするのかぼんやりと見えるとは思います。ロードマップ的な情報としてご参照ください。

(2019/03/10:追記)
今は Trello で private 管理してます。

TracWiki でページ内リンク

Trac の Wiki をプロジェクトのポータルに使っていると、トップページにお知らせやリンク集ができて情報量が多くなっていきます。Wikiページ間だけでなくページ内にもリンクを貼って、効果的にプロジェクトメンバーに情報を提示したいものです。

例えば、リリースノートをページの下の方にまとめておき、先頭のお知らせからリンクを貼りたいとします。

この場合リリースノートの見出し部分に

== リリースノート == #releaseNote

のようにアンカーを書いておき、お知らせの方には、

* xxx 1.2.0 リリースしました([#releaseNote リリースノート])

のようにリンクを記述します。これで、HTMLでid属性を指定したのと同じ効果が得られます。
idを指定した見出しの末尾はマウスオーバーすると ¶ という記号でアンカーのサインが表示されます。

InterTrac リンクで、他プロジェクトのリポジトリーツリーへのリンクを記述する

Trac の Wiki や チケットには、TracLinks の機能で、チケット、チェンジセット、Wiki ページへのリンクが簡単に貼れることは有名だと思います。リポジトリーのディレクトリーやファイルにも、リンクが貼れて、

source:<ファイル/ディレクトリーへのパス>

の形式でリンクを貼れます。/doc/trunk/foo 配下の bar.txt というファイルへのリンクは

source:doc/trunk/foo/bar.txt

のようにかけます。リポジトリーのパスを URL で記述してもいいのですが、日本語が含まれるパスはURLエンコードされて読めないし、サーバー名が変わるとリンクが切れちゃいます。source を使ったほうがメンテも楽でスマートです。
ちなみに、Word 文書などのバイナリーファイルはブラウザーで見ても嬉しくないので、export を使って

export:doc/trunk/foo/bar.doc

のように書けば、ダウンロードを強制できます。

Wiki や サイトへのリンクと同様 角括弧[] でタイトルのみの表示も可能です。

[source:doc/trunk/foo/bar.txt 読んでね]

ファイルのパスに空白(スペース)が含まれる場合は、クォーテーションする必要があります。シングルでもダブルでもOKです。

source:'doc/trunk/foo/hoge hoge/bar.txt'

開発プロジェクトが、大規模になると、Trac/SVN プロジェクトを1つで運用するより、サブシステム毎に設置することも多いと思います。
InterTrac リンク を使えば、他のTracのチケット、チェンジセット、Wiki ページへリンクを貼ることができます。詳細は↓
http://trac.edgewall.org/wiki/InterTrac

別のTracプロジェクトが http://hostname/OtherProject にあったとして、trac.ini の [intertrac] セクションに、

other = OtherProject
OtherProject.url = http://hostname/OtherProject

のように書いておけば、other:#12 あるいは OtherProject:#12 書くことで OtherProject のチケット #12 にリンクが貼られます(other は OtherProject の短縮名)。Subversion でコミットコメントに refs 指定することも可能ですので、複数のTrac プロジェクトにコミットコメントを残すこともできます。


さて、InterTrac リンクはとても便利なのですが、他のプロジェクトのリポジトリー/ディレクトリーへのリンクを記述するときにパス文字列に空白が混ざっていると、うまくリンクしてくれません。

other:source:'doc/trunk/foo/hoge hoge/bar.txt'

表示結果) other:source:'doc/trunk/foo/hoge hoge/bar.txt'
source 自体もクォートすれば無事にリンクされます。

other:"source:'doc/trunk/foo/hoge hoge/bar.txt'"

表示結果) other:"source:'doc/trunk/foo/hoge hoge/bar.txt'"
外側と内側は異なる引用符で記述する必要があります。

Mylyn 導入時チケットの同期エラーが出たら

久々に Eclipse 使ってます。Eclipse から Trac などの BTS/ITS のチケットを読み書きするためのプラグイン Mylyn を導入してみました。

Eclipse 3.5 Galileo Pleiades All in One に Mylyn の Trac Connector を追加して Trac Lightning に接続してるのですが、導入直後は XML-RPC でチケットを取りに行くところで、java.lang.NoSuchMethodError とかが出てうまくいきませんでした。

http://hondou.homedns.org/pukiwiki/pukiwiki.php?Win32%20Trac%20Lightning#vb07a9f7
↑のサイトを参考に、eclipse.ini を編集しいったん Pleiades を外して eclipse -clean で起動した後、Pleiades を戻して再び eclipse -clean で起動しなおすと問題が解消しました(eclipse インストールディレクトリー直下の eclipse.exe -clean.cmd を使えば、コマンドプロンプト不要です)。

ブラウザーを起動しなくても、Eclipse から直接チケット一覧を見たり、更新したりできるようになりました。
Mylyn とは別に、チケットの更新を Timeline のRSS から取得して、RSS Ticker で表示するというのもやってみました。チケット駆動開発の環境としては整った感じです。

関連記事
RSSでイシューを配信(2005/11/08)

「Trac入門」増刷決定しました

おかげさまで、増刷決定しました。購入していただいた皆様、ありがとうございました。

Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド

Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド

Amazonでは、高値でしか入手できなくなっております。店頭発売までしばらくお待ちください。

私の勤め先で、最近新しい技術サイト(豆蔵ソフト工学ラボ)が立ち上げられたのですが、その中でも紹介させてもらいました。

プロジェクト管理ツール"Trac"入門

この記事は、「Trac入門」が手元にないときに、Tracの導入を周りに説得するためのツールとしてご利用いただければと思います(笑)。

Shibuya.trac勉強会 0.11

昨日行ってきました。会場は豆蔵のトレーニングルーム。事前に、案内板作って設置したり、会場準備したり。

Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド」の宣伝もかねて参加したのですが、参加者の多さと熱意に驚きました。Trac Lingtning作者の Oかもと さんやTrac関連ブログを執筆している id:kanu-orz さんともお知り合いになれて良かったです。

プログラムはこちらから
http://sourceforge.jp/projects/shibuya-trac/wiki/meeting%2F02

参加された方が詳細レポートをあげておられます。

d.hatena.ne.jp

d.hatena.ne.jp

TestLink を知ったのは収穫でした。

testlink.org

SilverlightでTracのクライアントを開発しているid:ZOETROPEさんの LT が興味深かった。

zoetrope.hatenablog.jp

僕はすがるのさんと、Trac本執筆のうらばなしをしました。

www.slideshare.net

執筆の工程やエピソード(メンバーの転職、先に赤本(入門Trac with Subversion Linux/Windows対応)が出た、Trac 0.10ベースで書いてたら、校正中にTrac0.11がリリースされたなど)を紹介しました。
iEditでブレストしたり、AssemblaやLingrなどのWebサービスを使ったという話もしました。iEditのネットワーク図のネスト構造と階層構造を連携させるデモとかもしてしまいましたが、反応は今ひとつだった(´・ω・`)
Tracの勉強会とはあまり関係ない内容でしたが、まあよいかなと。ついでに欲しいTracプラグインとかをリクエストしたりしてみました ( ´∀`)