ラベル trac の投稿を表示しています。 すべての投稿を表示
ラベル trac の投稿を表示しています。 すべての投稿を表示

2008年1月27日日曜日

Trac 0.11の ticket-workflow 設定のための参考サイト

ticket-workflowは、trac.iniで定義しているチケットのStatusが辿るフローについての設定。
(TracのWeb画面のAdminからは変更できない。)

シンプルで分かりやすい設定例
 trac 0.11 ワークフローのカスタマイズ — takanory.net

その他の設定例
 Trac-0.11のワークフロー - Do You PHP はてな
 Trac-0.11のワークフローでTICKET_REVIEW権限を使う - Do You PHP はてな
 Trac-0.11のワークフローの実設定例 - Do You PHP はてな (2008/02/02 追加)

上記で言及されている、本家にあるサンプル設定
 enterprise-review-workflow.ini - The Trac Project - Trac

本家のワークフローについての説明
 TracWorkflow - The Trac Project - Trac


(自分がふだんやっている)Roadmapからチケットを見るという操作だとStatusは表示されないので、Statusを追加しても分かりづらいかも。

2007年11月18日日曜日

TracのWikiをWYSIWYGにするプラグイン

インストール方法
 
easy_install が入っていることが前提

easy_installで"TracWiki WYSIWYG Editor Plugin"をインストール

easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.11
Tracが0.10の場合は最後の数字を0.10にする。



設定方法
 ※Tracのバージョンが0.11(以降)の場合
  1. Trac上部メニューの右端の"Admin”をクリック → Administrationページが表示される
  2. Administrationページの左側のメニューの"Plugins"をクリック → インストールされているプラグインの一覧が表示される
  3. tracwysiwygの設定を開き、"Enabled"の両方をチェックして"Apply changes"ボタンをクリック


使用方法
Wikiの編集ページで、テキストエリアの右上にある"wysiwyg"を選択状態にする



参考: TracWysiwygPlugin - Trac Hacks - Plugins Macros etc. - Trac

2007年11月13日火曜日

Trac 0.11 on Windows 構築メモ

作業前の環境

  • Apache 2.2
    • メインのWebサーバ
    • これではSubversion 1.40へのアクセスはできない
  • Apache 2.0
    • Subversionへのアクセス専用
    • Apache 2.2からリバースプロキシでアクセスする
  • Trac 0.10
  • Python 2.4
  • Subversion 1.40 for Apache 2.0
    • Tracが足枷となりバージョンアップできないでいた



作りたい環境 (全て現時点の最新版にする)
  • Apache 2.2 (変更無し)
  • Trac 0.11dev
    • Trac 0.10のデータや設定を引き継ぐ
    • Subverion 1.45のリポジトリを見られるようにする
  • Python 2.5
  • Subversion 1.45 for Apache 2.2
    • Subversion 1.40のデータを引き継ぐ
    • Apache 2.2経由でアクセス可能にする


Apache 2.5 & Subversion 1.45 にするには、Tracを0.11にしなくてはいけないらしい。(ClearSilverが足枷?) Trac 0.11はまだdev版しかない。
また、今回はTracのインストールにSetuptools(easy_install?)を使う。


Trac 0.11 on Windows 構築の足跡
※インストールの手順としては「11.問題発生」は読む必要は無いが、参考資料として残しておく。
※「Unsupported version control system "svn"」の解決方法を知りたいだけなら「12.libapr-1.dllのバージョン差異を解消」を読んでね。

  1. 古いバージョンをそれぞれアンインストール
  2. Subversion 1.45をインストール
    ・Apache 2.2用をsubversion: ドキュメント & ファイル: Windows Apache 2.2.xからダウンロード
    ・インストーラが付いてない
    ・コマンドプロンプトの文字化けは、コマンドプロンプト上で下記コマンドを入力することにより解消 (参考:UTF-8とコマンドプロンプトとMySQLモニタ | Sarabande
    chcp 65001
    ・サービスとしての実行方法はsvnserve ベースのサーバ参照。以前登録したサービスが残っていてPathが同じならそのサービスを起動するだけでOK。
  3. httpd.confにSubversion用設定追加
    ・たぶんこれだけ (リポジトリの方もバックスラッシュじゃなくていいかも)
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule dav_svn_module "C:/<Subversionのディレクトリ>/bin/mod_dav_svn.so"
    LoadModule authz_svn_module "C:/<Subversionのディレクトリ>/bin/mod_authz_svn.so"
    <Location /svn>
    DAV svn
    SVNParentPath c:<Subversionリポジトリのディレクトリ>
    </Location>
    ・必要に応じて Digest認証 or Basic認証も設定
  4. Python 2.5をインストール
    Download Python Softwareからダウンロード
    ・インストール後にサーバ再起動が必要
  5. Setuptools(easy_install?)をインストール
    ・Python版のPEARやGemsやCPANシェルみたいなものらしい
    Python Package Index : setuptools 0.6c7からダウンロード
    ・インストールすると、PythonのScriptsディレクトリに、easy_install.exeなどが作られる
  6. Tracをインストール
    ・現時点ではTrac 0.11をインストールするにはTracのSubversionリポジトリから取得する必要がある
    ・PythonのScriptsディレクトリでコマンドプロンプトを開き、下記を実行 (参考:0.11/TracInstall - The Trac Project - Trac
    easy_install http://svn.edgewall.com/repos/trac/trunk/
    ・Genshiも一緒にインストールしてくれる
    ・SubversionのbinディレクトリにWindowsのPathを通してないとエラーになると思う。(svnを使うため。)
  7. TracプロジェクトをUpgrade
    ・Trac 0.11用にプロジェクトとWikiをそれぞれUpgradeする
    ・参考:0.11/TracUpgrade - The Trac Project - Trac
    ・TracプロジェクトのDowngradeはできないとどこかに書いてあった気がするので気を付ける
  8. Mod_Pythonをインストール
    ・ApacheからTracへの橋渡しをするためのモジュール
    Index of /dist/httpd/modpython/winからダウンロードしてインストールする
  9. httpd.confのTrac用設定
    ・以前とほぼ同じ
    TracModPython - The Trac Project - Tracで勧められているPythonInterpreterを追加した。(なくても動きそう。)
    LoadModule python_module modules/mod_python.so
    <Location "/trac">
    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir <Tracのデータのディレクトリ>
    PythonOption TracUriRoot /<TracのURL(ドメインの下の部分)>
    </Location>
  10. svn-pythonをインストール
    ・TracからSubversionへの橋渡しをするためのモジュール
    subversion: ドキュメント & ファイル: Windows Apache 2.2.xからダウンロード
    ・TracでSubversionリポジトリを表示しないなら不要。その場合はtrac.iniの"repository_dir"は空欄にしておく (コメントアウトでもいいかも)
    ・下記のようにURLを指定すればeasy_installからのインストールもできる (参考:Fusioncube » Blog Archive » Installing Trac 0.11
    easy_install -Z http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.2/svn-python-1.4.5.win32-py2.5.exe
  11. 問題発生!Apache経由のTracからSubversionに連携できない
    ・Tracの全ページに下記エラーメッセージが表示される
    Warning: Can't synchronize with the repository (Unsupported version control system "svn". Check that the Python support libraries for "svn" are correctly installed.)
    ・Browse Sourceしようとすると下記エラーメッセージも表示される
    Unsupported version control system "svn". Check that the Python support libraries for "svn" are correctly installed.
    ・下記を処方したけど解決しなかった
     ・trac-adminでSubversionリポジトリをresync
     ・easy_installでpysqliteをインストール (Python2.5からpysqliteは標準で組み込まれているので、別途インストールしなくていいはずだけど試しに)
     ・Windows環境変数のPYTHONPATHにsite-packagesを設定 (参考:「Subversion」の検索結果 - 夏 DOKI Lisp スティック
     ・httpd.confでPythonPathをセット (参考:TracModPython - The Trac Project - TracSubversion/ViewVC - てんぷらメモ
     ・subversion: ドキュメント & ファイル: Windows Apache 2.2.xからsvn-win32-1.4.5_py25.zipをダウンロードして上書き
     ・libsvnにWindows環境変数のPATHを通す
     ・SWIGをインストール?
      ・SourceForge.net: Filesからswigwinをダウンロード
      ・インストールの仕方が分からなかった
    ・TracdでならSubversionと連携できた
     ・TracdでTracプロジェクトを全て起動しておき、Apacheからリバースプロキシする
     ・応急対応としては使える
     ・問題点:リバースプロキシ&Tracdだと、TracのWikiを更新した時にResponseが帰ってこない。(更新はされる)
    ・TracとSubversionの連携をやめる(trac.iniの"repository_dir"を空欄にする)ならこの問題は回避できる
    ・trac.iniでログ出力を有効(log_type = file)にしてログを確認してみる (参考:TracIni - akiyan.com - TracTracLogging - Snippets - Trac
     ・"libsvncore.py"のline 5 (import _core)で、「ImportError: DLL load failed: 指定されたプロシージャが見つかりません。」というエラーが出ている
     ・上記のエラーによりSubversion bindingsのloadが完了せず、その結果"svn"が見つからないエラーになるらしい
    ・同じ症状を訴えるメーリングリストを発見!
     ・[Trac] Re: Can't use svn on 0.11 trunk
    mod_python's python can't seem to find init_core() in _core.pyd (it CAN find the module though, it just can't find the procedure, so path issues here are probably out of the question).
    I rolled back to the 1.4.3 bindings and they work well to even in mod_python.

    ・この回答から下記の解決方法が分かった
  12. libapr-1.dllのバージョン差異を解消
    ・Subversionのbinにあるlibapr-1.dllをApacheのbin内に上書きコピーする
    ・そのままだとApacheの方のlibapr-1.dllの方がバージョンが新しいために動かないらしい
     参考:[Trac] Re: Can't use svn on 0.11 trunk
    3. This one was the real pain... The version of libapr-1.dll in the Apache install was newer than the version in the subversion install. I replaced the copy in the Apache install with the copy from subversion (1.2.8.0) and everything works perfectly.
    ・libapr-1.dllを変えてしまってApacheが正常に動くかは不明なので、しばらく様子を見る



所感等
  • Trac 0.11はTracWebAdminが標準になって使いやすい。
  • ClearSilverとpysqliteのインストールが不要になって少しすっきりした。
  • trac-adminがexeになって少し使いやすくなった。
  • easy_installを使うとsite-packagesの中が少しごちゃごちゃになるのが気になる。

関連記事:
 TracのWikiをWYSIWYGにするプラグイン
 TracのWikiで外部サイトへのリンクを別Windowで開くGreasemonkey
 SubversionでExcel等のファイルを比較

2007年10月18日木曜日

TracのWikiで外部サイトへのリンクを別Windowで開くGreasemonkey

TracのWikiで外部サイトへのリンクをいちいち別Windowで開くのが面倒で、でも対策を探したけど見つからなかったのでGreasemonkey作ってみた。
Bloggerで添付ファイルのやり方がわからない(できない?)のでソースコードをそのまま書いておく。


このGreasemonkeyの仕様

  • Trac内へのリンクは同一Windowで開く
  • Trac外へのリンクは新しいWindowで開く
  • Trac内か外かは、ドメインとドメイン直下のディレクトリが同じかどうかで判断する
    • 例:現在地(Trac内のWikiページ)が http://example.com/trac/sample の場合
      • http://example.com/trac/sample/wiki/page → Trac内
      • http://example.com/foo/sample/wiki/page → ドメイン直下のディレクトリが違うのでTrac外
      • http://www.google.com/trac/sample/wiki/page → ドメインが違うのでTrac外
      • https://example.com/trac/sample/wiki/page → スキームが変わってもドメインとディレクトリが同じなのでTrac内
  • 対象ページは http(|s)://*/trac/* にしているので、ここは必要に応じて適宜変更する


ソースコード
// ==UserScript==
// @name Trac_newWindowOpener
// @namespace http://fdays.blogspot.com/
// @description A script to open a page in the new window on "Trac".
// @include http://*/trac/*
// @include https://*/trac/*
// ==/UserScript==
(function(){
var current = location.href.split("/");
var domain = current[2];
var dir = current[3];
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var link = links[i];
var href = link.href.split("/");
if (href[2] != domain || dir != href[3]) {
link.target = "_blank";
}
}
})();

ブログ アーカイブ

tags