Trac Lightning 4.0 Dev + Hyper Estraierプラグイン
Trac 1.0から添付ファイルの保存先が変わったので、Hyper Estraierプラグインにて添付ファイルの全文検索ができなくなっていたのですが、Hyper Estraierプラグインを修正していただきました。Tracユーザーが少しでも増えてくれることを願いつつ、TL4.0で新規設定の手順を紹介します。
Hyper Estraierをダウンロードします。公式サイトより新しい Windows版1.4.13をファイルサーバ検索システムを作る - めも日記 様からダウンロードします。解凍してCドライブ直下にHyperEstraierフォルダを作成して保存します。
HyperEstraierに同梱されているxdoc2txtをv2系の最新版に差し替えます。私はWindows Server 2016(体験版)で検証しているので、xdoc2txt 64bit(x64)版をダウンロードして上書きします。動作には Visual Studio 2015、2017、および 2019 用 Microsoft Visual C++ 再頒布可能パッケージ (x64) - 64bit版 も必要なのであわせてダウンロードしてインストールしました。
Trac Lightning 4.0 Devのインストールフォルダに Search フォルダを作成します。
Search フォルダの中に Repos というリポジトリ用のフォルダを作成します。
Tracのプロジェクト名フォルダを作成します。今回はデフォルトで作成されるプロジェクトの SampleProject で作成します。
SampleProject フォルダの中にcasket と rep フォルダを作成します。
Search フォルダまで戻ったら、Attach フォルダを作成します。その中に同じようにSampleProject フォルダを作成し、その中にcasket フォルダを作成します。
デフォルトでインストールされているHyper Estraierプラグインを削除します。C:\TracLight\python\Lib\site-packages\ にある TrachyperestraierPluginフォルダを削除します。
不要かもしれませんが、Trac Lightningサービスを再起動します。
最新のHyper Estraierプラグインをダウンロードさせてもらいます。感謝!
https://github.com/jun66j5/trachyperestraierplugin/tree/trac-1.0
ZIPを解凍します。
スタートメニューから TracLightning のコマンドプロンプトを起動します。
先程、解凍したフォルダに cd で移動し、python setup.py bdist_egg と入力して、eggファイルを作成します。
こんな感じで作成されたら成功です。
Tracの管理画面からeggファイルを選択してインストールします。
Trac.iniファイルに設定を書きます。UTF-8に対応したエディタで更新しましょう。
不明な点は下記のページが参考になると思います。
plugins/SearchHyperestraierPlugin - Shibuya.trac Wiki - Shibuya.trac - OSDN
[searchhyperestraier]
.index_path = C:\TracLight\search\repos\SampleProject\casket
.replace_left = C:\TracLight\search\repos\SampleProject\rep
.url_left = /
att_index_path = C:\TracLight\search\attach\SampleProject\casket
estcmd_arg = search -vx -sf -ic Shift_JIS -max -1
estcmd_path = C:\hyperestraier\estcmd.exe
filters = *.xls:*.xlsx:*.doc:*.docx:*.pptx=T@C:\hyperestraier\xdoc2txt.exe -i -p -8, *=T@C:\hyperestraier\xdoc2txt.exe -i -8
estcmd_arg の maxオプションで最大件数を設定します。負数で上限なしです。件数を書かないと最大10件までなので注意しましょう。ハマリました。
fileters でPDFとか個別で書いていませんが、テキスト検索が可能なPDF(サーチャブルPDF)も解析するので検索対象になります。
バッチファイルでインデックスの作成処理を書きます。添付ファイルやリポジトリのファイル数が多い場合は夜間処理をするとかになると思います。あとは、インデックスファイルの差し替えのタイミングを工夫して、インデックスファイルが存在しない時間を短くできれば1日複数回インデックスを更新できると思います。……そもそもHyper Estraierはインデックスを削除して新規作成じゃなくて、更新もできるハズだしね。
REM リポジトリ
set INDEX_FOLDER=C:\TracLight\search\repos\SampleProject\casket
set EXPORT_FOLDER=C:\TracLight\search\repos\SampleProject\rep
set REPOS_URI=file:///C:/TracLight/projects/svn/SampleProjectrmdir /S /Q %EXPORT_FOLDER%
rmdir /S /Q %INDEX_FOLDER%C:\TracLight\CollabNetSVN\svn.exe export --username admin --password admin %REPOS_URI% %EXPORT_FOLDER%
C:\hyperestraier\estcmd.exe gather -cl -fx .pdf,.doc,.xls,.ppt,.xlsx,.docx,.pptx T@estxfilt -ic CP932 -pc CP932 -sd %INDEX_FOLDER% %EXPORT_FOLDER%
REM 添付ファイル
set INDEX_FOLDER=C:\TracLight\search\attach\SampleProject\casket
rmdir /S /Q %INDEX_FOLDER%C:\TracLight\bin\trac-admin.bat C:\TracLight\projects\trac\SampleProject searchhyperestraier gather attachments
svn.exe exportする時のadminのパスワードを変えていればそれにあわせて下さい。adminじゃない方がそもそも良いですが。あと、添付ファイルのインデックスの作成方法がTrac-adminを使用した方法に変わっているのは今回のバージョンアップによるものです。ちなみに、Trac-adminと同じフォルダにxdoc2txtがいるんだけど……たぶん使われていないように見えます。未検証。
ということで、検索できるようになりました。素晴らしいです。
Trac Lightning 4.0 Devでチケットの更新履歴を最初から閉じておきたい
ニーズがあるか分かりませんが、チケットの更新履歴のウインドウが長くなってヤダ!とか更新履歴を見えないようにしたいという時のために、チケットを開いたときに閉じておく手順です。
チケットの黄色い枠内で最新情報を管理するような運用だと使える設定かもしれません。
1.通常はこのように更新履歴が表示され、更新履歴が追えるようになっています。これを変えます。
2.インストール先の projects\trac\プロジェクト名\templates フォルダの site.html を開きます。デフォルトだと C:\TracLight\projects\trac\SampleProject\Templates\site.hjtml です。
3.下のように17行目以降を追加します。
4.TracLightingのサービスの再起動をすれば完了です。
5.コンパクトに表示されます。
Cards Pluginを少しだけ試してみました
Trac HacksにあったCards Pluginをインストールして少しだけ試してみました。「カンバン」ってやつです。会社でTracを始める前に個人的に小さなホワイボードを買って一人でやってみましたが、定着しませんでした。ダメだった理由は仕事がほとんど個人単位だったことが影響したかなぁ。
1.ソースをダウンロードして、egg形式でインストールしました。もうこの方法は古い感じみたいですけど。
2.trac-admin Upgradeを実施します。
3.Trac Hacksの例の通りにWikiに貼り付けてみました。
Cards(stack=todo|wip|done,label=To Do|Work in Progress|Done, width=800)
4.Add Cardボタンから追加できました。
少し試してみるとタイムラインには反映されないようです。タイムラインに一々でなくていいようなライトなものを入れて進捗管理する感じで使ってもいいかもしれません。
カードとチケットが連動している訳ではないです。カードをDoneに移すとチケットのステータスがクローズになったりするような機能がつけば、「チケットを見る」画面としても使えたりしそうな気がします。
Trac Lightning 4.0 Dev(Trac 1.0.15)にバージョンアップ
Trac Lightning 4.0 Devにバージョンアップしたので参考事例としてブログにまとめておきます。
Trac 0.12で完成度は高まって運用上困ることはあまりないけど、Trac 1.0系の新機能や見た目の改善も割と良いなぁと思っていたので。TL 4.0Devの本体はTrac 1.0.15と最新です。Trac Lightningのサイト経由でOmaeさんのところから TracLightning-4.0.0dev-61e22c48ec25.exe をダウンロードします。
あとはTL3の時のバージョンアップと同じ手順で大丈夫です。
1.ダウンロードしたセットアッププログラムを実行します。
2.上書きインストールの場合は既存のインストール場合とあわせてくれたはず。違ったらあわせましょう。
3.Jenkinsは良く確認してないです。ごめんなさい。一応、使ってたのでチェックしてます。
4.そのままで「次へ」をクリックします。
5.たぶんそのままで良かったはず。。。
6.インストールします。
7.進んでいきます。
8.サービスでインストールしている場合は一度、既存のサービスを止める必要があります。
9.[サービス]のTrac Lightningをクリックして[サービスの停止]をクリックします。Jenkinsのサービスもある場合はそれも止めます。
10.インストールの画面で[再試行]をクリックして再開させます。問題なければ、下記のように再起動を促されますので、再起動します。
11.Windowsが起動したらさっそくTracにアクセスすると、エラー。お約束のアップグレードコマンドを実行します。
12.Trac Lightningで用意されているコマンドを起動して、メッセージの通り「trac-admin C:\TracLight\project\trac\SampleProject upgrade」を実行します。
13.さらにWikiのアップグレードを促されますので、メッセージの通り「trac-admin C:\TracLight\project\trac\SampleProject wiki upgrade」を実行します。
14.ブラウザを再読み込みさせると……表示が正常に戻っています。
15.Wikiの内容は0.12系ですが、左下のフッターを見ると正しくTrac 1.0.15になっていることが確認できます。
私が使用している限りはDevバージョンですが問題なく利用できています。
TracのWikiでJavaScriptを書いてみる
TracのWikiでJavaScriptが使えるのかなと思って調査。今見ると日本語でも情報があったけど、下記のサイトの記事を見かける。
Including JavaScript in a Trac Wiki page - Stack Overflow
Trac.iniの[wiki]でrender_unsafe_contentをtrueにすればいいらしい。……あった。Wikiのアクセス権限を管理していれば大丈夫そう。
早速、JavaScriptを書いてみる、じゃなくコピペしてみます。
動きました!これでWikiの表現力が上がりますね。
Tracチケットの差分へのTracリンク
Tracのチケットに対するリンクですが、あまり情報がなかったのでメモ。
チケットの詳細に追記したとします。で、その差分に対するリンクをはりたいなぁと思ったのです。
この例で言えば2行目を追記してるんですね。
このページに飛べるTracリンクを書きたいのです。
いつもの感覚でやろうとすると下記のような感じでいくかなと思うのですがダメです。普通にチケットのページに飛んでしまいます。
#1?action=diff&version=1
Trac内のTracLinksのWikiにversionパラメータの利用方法がこんな感じでありました。
ticket:1?version=1
……またTracの本出ないかなぁ。
Kanon を少しだけ改造してみました
Tracをインストールすることも時々あるので、KanonをTrac 1.0.2jaに差し替えてみました。一応、動作はできた・・・っぽい。
* Trac 1.0.2jaはjun66j5様が公開されているものをダウンロード、インストールさせて頂いています
* kanonをTrac1.0.1対応に変更してみた: いつまでもとりあえず様を参考にさせて頂いています
私にサポートするスキルはないのですが、誰かの役に立つ可能性もあるので。
https://bitbucket.org/ponmiki/kanonconductor/overview
Trac 1.2はプラグインを無効にしてもまだエラーが出ます。素直にbitnamiを使用する方が良いかもしれません。
Trac 1.3(安定版は1.4になるんでしょうが)からはPython 2.6のサポートが切られるようなので改造は無理かな。