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フォルダを作成して保存します。

f:id:ponmiki:20200802004754p:plain

HyperEstraierに同梱されているxdoc2txtをv2系の最新版に差し替えます。私はWindows Server 2016(体験版)で検証しているので、xdoc2txt 64bit(x64)版をダウンロードして上書きします。動作には Visual Studio 2015、2017、および 2019 用 Microsoft Visual C++ 再頒布可能パッケージ (x64) - 64bit版 も必要なのであわせてダウンロードしてインストールしました。

f:id:ponmiki:20200802004757p:plain

Trac Lightning 4.0 Devのインストールフォルダに Search フォルダを作成します。

f:id:ponmiki:20200802004802p:plain

Search フォルダの中に Repos というリポジトリ用のフォルダを作成します。

f:id:ponmiki:20200802004807p:plain

Tracのプロジェクト名フォルダを作成します。今回はデフォルトで作成されるプロジェクトの SampleProject で作成します。

f:id:ponmiki:20200802004810p:plain

SampleProject フォルダの中にcasket と rep フォルダを作成します。

f:id:ponmiki:20200802004815p:plain

Search フォルダまで戻ったら、Attach フォルダを作成します。その中に同じようにSampleProject フォルダを作成し、その中にcasket フォルダを作成します。

f:id:ponmiki:20200802004827p:plain

デフォルトでインストールされているHyper Estraierプラグインを削除します。C:\TracLight\python\Lib\site-packages\ にある TrachyperestraierPluginフォルダを削除します。

f:id:ponmiki:20200802004830p:plain

不要かもしれませんが、Trac Lightningサービスを再起動します。

f:id:ponmiki:20200802004834p:plain

最新のHyper Estraierプラグインをダウンロードさせてもらいます。感謝!

https://github.com/jun66j5/trachyperestraierplugin/tree/trac-1.0

f:id:ponmiki:20200802004837p:plain

ZIPを解凍します。

f:id:ponmiki:20200802004840p:plain

スタートメニューから TracLightningコマンドプロンプトを起動します。

f:id:ponmiki:20200802004844p:plain

先程、解凍したフォルダに cd で移動し、python setup.py bdist_egg と入力して、eggファイルを作成します。

f:id:ponmiki:20200802004847p:plain

こんな感じで作成されたら成功です。

f:id:ponmiki:20200802004856p:plain

Tracの管理画面からeggファイルを選択してインストールします。

f:id:ponmiki:20200802004900p:plain

Trac.iniファイルに設定を書きます。UTF-8に対応したエディタで更新しましょう。
不明な点は下記のページが参考になると思います。

plugins/SearchHyperestraierPlugin - Shibuya.trac Wiki - Shibuya.trac - OSDN


f:id:ponmiki:20200802004903p:plain

[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はインデックスを削除して新規作成じゃなくて、更新もできるハズだしね。

f:id:ponmiki:20200802004823p:plain

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/SampleProject

rmdir /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がいるんだけど……たぶん使われていないように見えます。未検証。

 

ということで、検索できるようになりました。素晴らしいです。

f:id:ponmiki:20200802020454p:plain

 

Trac Lightning 4.0 Devでチケットの更新履歴を最初から閉じておきたい

ニーズがあるか分かりませんが、チケットの更新履歴のウインドウが長くなってヤダ!とか更新履歴を見えないようにしたいという時のために、チケットを開いたときに閉じておく手順です。

 

チケットの黄色い枠内で最新情報を管理するような運用だと使える設定かもしれません。

 

1.通常はこのように更新履歴が表示され、更新履歴が追えるようになっています。これを変えます。

f:id:ponmiki:20190912223045p:plain

2.インストール先の projects\trac\プロジェクト名\templates フォルダの site.html を開きます。デフォルトだと C:\TracLight\projects\trac\SampleProject\Templates\site.hjtml です。

f:id:ponmiki:20190912223107p:plain

3.下のように17行目以降を追加します。

f:id:ponmiki:20190912223121p:plain

4.TracLightingのサービスの再起動をすれば完了です。

f:id:ponmiki:20190912223131p:plain

5.コンパクトに表示されます。

f:id:ponmiki:20190912223143p:plain

 

Cards Pluginを少しだけ試してみました

Trac HacksにあったCards Pluginをインストールして少しだけ試してみました。「カンバン」ってやつです。会社でTracを始める前に個人的に小さなホワイボードを買って一人でやってみましたが、定着しませんでした。ダメだった理由は仕事がほとんど個人単位だったことが影響したかなぁ。

trac-hacks.org


1.ソースをダウンロードして、egg形式でインストールしました。もうこの方法は古い感じみたいですけど。

f:id:ponmiki:20190717000549p:plain

2.trac-admin Upgradeを実施します。

f:id:ponmiki:20190717000610p:plain

3.Trac Hacksの例の通りにWikiに貼り付けてみました。
Cards(stack=todo|wip|done,label=To Do|Work in Progress|Done, width=800)

f:id:ponmiki:20190717000639p:plain

4.Add Cardボタンから追加できました。

f:id:ponmiki:20190717000650p:plain

少し試してみるとタイムラインには反映されないようです。タイムラインに一々でなくていいようなライトなものを入れて進捗管理する感じで使ってもいいかもしれません。

 

カードとチケットが連動している訳ではないです。カードを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 をダウンロードします。

ja.osdn.net

あとはTL3の時のバージョンアップと同じ手順で大丈夫です。

1.ダウンロードしたセットアッププログラムを実行します。

f:id:ponmiki:20190713194018p:plain

2.上書きインストールの場合は既存のインストール場合とあわせてくれたはず。違ったらあわせましょう。

f:id:ponmiki:20190713194022p:plain

3.Jenkinsは良く確認してないです。ごめんなさい。一応、使ってたのでチェックしてます。

f:id:ponmiki:20190713194052p:plain

4.そのままで「次へ」をクリックします。

f:id:ponmiki:20190713194056p:plain

5.たぶんそのままで良かったはず。。。

f:id:ponmiki:20190713194101p:plain

6.インストールします。

f:id:ponmiki:20190713194105p:plain

7.進んでいきます。

f:id:ponmiki:20190713194151p:plain

8.サービスでインストールしている場合は一度、既存のサービスを止める必要があります。

f:id:ponmiki:20190713194155p:plain

9.[サービス]のTrac Lightningをクリックして[サービスの停止]をクリックします。Jenkinsのサービスもある場合はそれも止めます。

f:id:ponmiki:20190713194200p:plain

10.インストールの画面で[再試行]をクリックして再開させます。問題なければ、下記のように再起動を促されますので、再起動します。

f:id:ponmiki:20190713194128p:plain

11.Windowsが起動したらさっそくTracにアクセスすると、エラー。お約束のアップグレードコマンドを実行します。

f:id:ponmiki:20190713194132p:plain

12.Trac Lightningで用意されているコマンドを起動して、メッセージの通り「trac-admin C:\TracLight\project\trac\SampleProject upgrade」を実行します。

f:id:ponmiki:20190713194140p:plain

13.さらにWikiのアップグレードを促されますので、メッセージの通り「trac-admin C:\TracLight\project\trac\SampleProject wiki upgrade」を実行します。

f:id:ponmiki:20190713194215p:plain

14.ブラウザを再読み込みさせると……表示が正常に戻っています。
f:id:ponmiki:20190713194226p:plain

15.Wikiの内容は0.12系ですが、左下のフッターを見ると正しくTrac 1.0.15になっていることが確認できます。

f:id:ponmiki:20190713194230p:plain


私が使用している限りはDevバージョンですが問題なく利用できています。

 

 

TracのWikiでJavaScriptを書いてみる

TracWikiJavaScriptが使えるのかなと思って調査。今見ると日本語でも情報があったけど、下記のサイトの記事を見かける。

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をインストールすることも時々あるので、KanonTrac 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のサポートが切られるようなので改造は無理かな。