trac 0.12 dev を入れてみた
そろそろ rc1 が出るという噂を聞いたので、 trac の新バージョン 0.12 の開発版(dev)をインストールしてみました。
主な新機能は以下のとおりです。
- メッセージの国際化対応: ブラウザの言語で切り替わります
- 複数レポジトリのサポート: 1つのプロジェクトに複数のレポジトリを設定することが可能に
- チケットの検索システムの改良: 詳細は不明
- Wiki フォーマットの改良(詳細は不明)
- タイムラインやリポジトリブラウザなどのユーザビリティの改良(詳細は不明)
- コメントを書くとリアルタイムにプレビューが表示される
- テキストエリアのサイズを変更できる
インストールの手順は以下のとおりです。前提として trac 0.11 系がインストール済なのと、 setuptools が入っているものとします。
関連するライブらいの最新版をインストールします。 インストールするものは以下の通りです。
- pysqlite python から SQLite を使うためのバインディング
- Babel python アプリケーションの国際化ツール(zope でいうところの PlacelessTranslationService 的なもの)
- Docutils reStructuredText のエンジン
- Pygments ソースコードのハイライト表示
- Genshi テンプレートエンジン
Genshi のみ "Genshi==dev" として最新版をインストールする必要があります。
% sudo easy_install -UZ pysqlite % sudo easy_install -UZ Babel % sudo easy_install -UZ docutils % sudo easy_install -UZ Pygments % sudo easy_install -UZ "Genshi==dev"
次に trac をインストールしますが、0.12 の多言語機能を使いたい場合には po ファイルをコンパイルして mo ファイルを作成する必要があります。 そのため、trunk をチェックアウトして、 setup.py compile_catalog -f を実行してからインストールします。
% svn co http://svn.edgewall.org/repos/trac/trunk trac % cd trac % python ./setup.py compile_catalog -f % cd .. % sudo easy_install -Z trac
インストールが終了したら、過去の trac 環境をアップグレードして、apache を再起動します。
% sudo trac-admin /var/trac/takanory upgrade % sudo /etc/init.d/apache2 reload
これで、無事 http://trac.takanory.net/takanory も trac 0.12dev になりました。
調子に乗って会社の trac も 0.12dev にあげたんですが、ここで問題が発生しました。チケットの一覧をみるとなぜか作成日などが一つの長い数字(エポック秒かなにか?)になりました。 ちょっと調べてみるとレポートを検索するための SQL 文に問題があるようです。
会社の trac は Trac-ja を入れていたので、SQL の結果で列名を日本語に書き換えている部分があるんですが、ここが原因となっているようです。というわけで、 trac 0.12dev で初期設定される SQL 文を真似して修正たらきちんと日付が表示されるようになりました。(面倒だった)
trac-ja から 0.12 にアップグレードされる方はご注意ください。
-
- ¦
- 固定リンク
- ¦
- コメント (2)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1217/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については
trac 0.12dev で初期設定される SQL 文を真似して修正たらきちんと日付が表示する件ですが、
修正ポイントなど教えていただけませんでしょうか?
例えば、未解決チケットの場合はこんな風になります。
SELECT の xxx AS _xxx みたいな部分の AS の右側の部分が基本的に変わります。
この説明でわかりますかね?
trac-ja(0.11)
SELECT p.value AS __color__,
id AS ticket, summary AS 概要, component AS コンポーネント,
version AS バージョン, milestone AS マイルストーン, t.type AS 分類,
owner AS 担当者, status AS ステータス, time AS 登録日付,
changetime AS _更新日付, description AS _説明,
reporter AS _報告者
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
WHERE status <> 'closed'
ORDER BY CAST(p.value AS int), milestone, t.type, time
trac-0.12
SELECT p.value AS __color__,
id AS ticket, summary, component, version, milestone, t.type AS type,
owner, status,
time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
WHERE status <> 'closed'
ORDER BY CAST(p.value AS integer), milestone, t.type, time