Apache Bloodhound


trac kanon


登録ユーザのみ使用可能にする

vim /etc/httpd/conf.d/kanon.conf
----
#<LocationMatch "/[^/]+/login($|/)">
<LocationMatch "/">
----
service httpd graceful

インストール

  1. http://kanon.ultimania.org/hg/KanonConductor/ からkanonダウンロード。右のメニューから「gz」のリンクをコピー
    cd /tmp
    wget http://kanon.ultimania.org/hg/KanonConductor/archive/tip.tar.gz
    tar xvfz tip.tar.gz
    cd KanonConductor-803f7b41dfdf/
    ./kanon-setup
  2. Maven, Jenkins をインストールするかどうか聞いてくるので用途に応じて「y」「n」で選択
  3. インストール後、ブラウザで http://www.example.com/trac/SampleProject/ を開いてみる
  4. adminユーザでログインし、管理メニューを見てみる
    ユーザ名パスワード
    adminadmin
    leaderleade
    guestguest

Trac


定量的プロジェクト管理ツール


mime-type


その他プラグイン


コミットログからマイルストーンを完了にする

あまりテストしていないので自己責任で。

コミットログに「milestone #1」と記入すると「チケット#1のマイルストーンを完了」に変更するパッチ。
コマンド名を変更したい場合は「'milestone': '_cmdMilestoneClose'」の「milestone」を任意の英数字に変更


trac-post-commit-hookのテスト


ExcelやOpenOffice.org Calcから表をコピー

  1. 編集モードにし、Wysiwygボタンをクリック
  2. ExcelやOpenOffice.org Calcから表を選択しコピー
  3. Trac側で貼り付け。※色やフォント等は失われる

クエリの結果をWikiに保存

テーブル情報

カスタムレポート等の作成時にテーブル内容を参照する必要がある


tracにスクリーンショットを添付できるFirefox/Chromeプラグイン「fulmo」

MediaWikiからTrac Wikiへの変換


mod_pythonの代わりにmod_wsgiを使う

mod_pythonプロジェクトはclosedになったため、mod_wsgiを使ってインストールする場合。高速化も期待出来る。
trac 0.12以降で良い場合は kanon の方が良いだろう。


マイルストーンを色分け

trac-milestone-color.jpg


Trac Lightningにインストールされているプラグイン一覧

○を付けたプラグインをCentOS5.5環境に導入した


日付フォーマットの変更

cat > /tmp/ticket.html.patch << 'EOS'
--- ticket/templates/ticket.html
+++ mod/ticket.html
@@ -146,8 +146,8 @@
         <div id="ticket" py:if="ticket.exists or preview_mode"
           class="${preview_mode and 'ticketdraft' or None}">
           <div class="date">
-            <p py:if="ticket.exists">登録: ${dateinfo(ticket.time_created)} 前</p> <!--! FIXME: message_contains_tag -->
-            <p py:if="ticket.time_changed != ticket.time_created">最終更新: ${dateinfo(ticket.time_changed)} 前</p> <!--! FIXME: message_contains_tag -->
+            <p py:if="ticket.exists">登録: ${format_datetime(ticket.time_created)}(${dateinfo(ticket.time_created)}前)</p> <!--! FIXME: message_contains_tag -->
+            <p py:if="ticket.time_changed != ticket.time_created">最終更新: ${format_datetime(ticket.time_changed)} (${dateinfo(ticket.time_changed)}前)</p> <!--! FIXME: message_contains_tag -->
             <p py:if="not ticket.exists"><i>${_('(ticket not yet created)')}</i></p>
           </div>
           <!--! use a placeholder if it's a new ticket -->
@@ -240,7 +240,7 @@
                     &#160;
                   </span>
                   <!--! FIXME: message_contains_tag -->
-                  更新者: ${authorinfo(change.author)} (${dateinfo(change.date)} 前)
+                  更新者: ${authorinfo(change.author)}  ${format_datetime(change.date)} (${dateinfo(change.date)} 前)
                 </h3>
                 <div py:if="'cnum' in change and can_append" class="inlinebuttons">
                   <input type="hidden" name="replyto" value="${change.cnum}" />
EOS

cat > /tmp/query_results.html.patch << 'EOS'
--- ticket/templates/query_results.html  2009-03-10 04:26:18.000000000 +0900
+++ ticket/templates/query_results.html  2011-04-26 21:41:12.000000000 +0900
@@ -62,7 +62,7 @@
                     <td py:when="name == 'id'" class="id"><a href="$result.href" title="${_('View ticket')}" class="${classes(closed=result.status == 'closed')}">#$result.id</a></td>
                     <td py:otherwise="" class="$name" py:choose="">
                       <a py:when="name == 'summary'" href="$result.href" title="${_('View ticket')}">$value</a>
-                      <py:when test="isinstance(value, datetime)">${dateinfo(value)}</py:when>
+                      <py:when test="isinstance(value, datetime)">${format_date(value)} (${dateinfo(value)})</py:when>
                       <py:when test="name == 'reporter'">${authorinfo(value)}</py:when>
                       <py:when test="name == 'cc'">${format_emails(ticket_context, value)}</py:when>
                       <py:when test="name == 'owner' and value">${authorinfo(value)}</py:when>
@@ -79,7 +79,7 @@
                   <td colspan="${len(headers)}">
                     <!--! FIXME: message_contains_tag -->
                     <p class="meta">${_('Reported by')} <strong>${authorinfo(result.reporter)}</strong>,
-                      ${dateinfo(result.time)}前.</p>
+                      ${format_date(result.time)} (${dateinfo(result.time)}前.)</p>
                   </td>
                 </tr>
                 <py:choose>
EOS

cd /usr/lib/python2.4/site-packages/Trac-0.11.5.ja1-py2.4.egg/trac/ticket/templates/
patch -p2 < /tmp/ticket.html.patch
patch -p2 < /tmp/query_results.html.patch

TracReport

wikiやマイルストーンにマクロの形で埋め込む事ができる


編集内容に、IPアドレス、メールアドレスの表示


TortoiseSVN等でのコミット時にメッセージ等を表示する


ページ毎のアクセス制御


リビジョンツリー


改ページを入れる


Googleカレンダー表示プラグイン

trac v0.11で、Googleカレンダーをwikiに表示させたい。


添付ファイルに直接リンク

HTMLプレビューをせずに直接ファイルにリンクする


trac0.11で通知メールのTicket URLが不完全


Database is Locked エラー


trac-post-commit-hookから、ticket_customへのアクセス


コミットログに作業時間を入力するとtracに反映


trac0.11のワークフローを視覚化


高速化


CentOS5でFastCGIを使う


一つのサーバで複数バージョンのTracを使用する方法


TraMプラグイン Trac0.11対応版


make_obcallback: could not import mod_python.apache.


TraM+TracWholeSearchでマルチプロジェクト横断検索

TraMプラグインを使用していますが、マルチプロジェクトの検索ができません。
Trac Whole Search がTrac0.11に対応しました。 - almost nearly deadプラグインはAJAXで複数プロジェクトの検索ができるようです。
そのままだと、tramのリンクも拾ってしまうので改造しました。

  1. 展開とインストール
    # wget -O trunk.tar.gz "http://svn.sourceforge.jp/view/plugins/TracWholeSearch/trunk.tar.gz?root=shibuya-trac&view=tar"
    # tar xvfz trunk.tar.gz
    # mv trunk/search /var/www/html/
    # chown -R 適当なユーザ /var/www/html/search
  2. 変更点
  3. 適用
    $ cd search
    $ patch < TracWholeSearch0.21.patch
  4. TraMのテンプレートの適当な位置に追加
    # vi /usr/lib/python2.3/site-packages/TraM-0.1-py2.3.egg/tram/templates/project_list.cs
    ----
    <p><a href="/search/" title="プロジェクト横断検索">プロジェクト横断検索</a></p>
    ----

プラグインのアンインストール

アンインストーラが用意されてない場合のメモ。

wikiページのPDF化はまだ未定

現在 trac-hacks には2つプラグインが登録されているが、いずれも htmldoc を使用しており、これが日本語(UTF-8)に対応していない。現在は 1.8.27。1.9のロードマップではペンディングになっている

シンタックスハイライトの有効化

Trac 0.10.4 で 「NoSuchChangeset: No changeset ?? in the repository」

Trac 0.10.4でTraMプラグインを入れたところ、以下のようなエラーが出た。が、これはどうもTrac本体がよくないようだ。

Trac本家を検索すると、同じ症状のチケットがあったので、r5612を当てる。一応、エラーは出なくなった。修正内容はtrac 0.10.5に含まれる模様。

  1. q.authn width=ame).sync()
      File "/usr/lib/python2.3/site-packages/trac/versioncontrol/cache.py", line 102, in sync
        self.youngest = self.repos.normalize_rev(self.youngest)
      File "/usr/lib/python2.3/site-packages/trac/versioncontrol/svn_fs.py", line 312, in normalize_rev
        raise NoSuchChangeset(rev)
    NoSuchChangeset: No changeset 38 in the repository

ParentWiki.pyでページ名に全角文字が含まれるとエラー

Trac 0.10.xからページ名に全角文字が含まれると、ParentWiki.pyがエラーを出すので、パッチを作成してみました。util.escape()でエスケープする必要があるようです。

TraMプラグインでパーミッションを持つプロジェクトのみを表示

Trac0.9用のTraMでは、ログインユーザによらず全てのプロジェクトが表示されていました。
これでは、プロジェクト名すら見せたくないものがあった場合に問題でした。

Trac0.10用のTraM中のソースを何気なく読んだところ、ユーザのパーミッションによって表示を制限できるようです。

# svn co https://svn.rectang.com/tram/trunk
# cd trunk/
# python setup.py install
# vi /usr/share/trac/conf/trac.ini
----
[components]
tramplugin.* = enabled

[tram]
check_auth=true
permission=WIKI_VIEW
----
# vi /var/trac/all/conf/trac.ini
----
[components]
trac.ticket.report.* = disabled
trac.Search.* = disabled
trac.Timeline.* = disabled
trac.ticket.web_ui.NewticketModule = disabled
trac.Settings.SettingsModule = disabled
webadmin.* = disabled
acct_mgr.* = disabled
----
# vi /etc/httpd/conf.d/trac.conf
----
<Location /projects>
  SetHandler mod_python
#  PythonHandler trac.web.modpython_frontend
  PythonHandler tram.modpython_frontend
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /projects
  SetEnv PYTHON_EGG_CACHE /var/www/.python-eggs

  # Require SSL connection for password protection.
  SSLRequireSSL
</Location>

#<LocationMatch "/projects/[^/]+/login">
<LocationMatch "/projects/">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /var/svn/.htpasswd
  Require valid-user
</LocationMatch>
----
# service httpd restart

プロジェクト一覧用テンプレート

標準のプロジェクト一覧画面が味気ないので、それらしく見せるテンプレート。
※/projects/SandBox が必ずあると仮定してますので、それ以外の場合は書き換える必要あり。
TraMプラグインの方が多機能。


資料/リンク



添付ファイル: filetrac-post-commit-hook.0.11.patch 1558件 [詳細] filetrac-milestone-color.jpg 1587件 [詳細] fileGoogleCalendar.py 1791件 [詳細] filetrac-post-commit-hook.trac0.11.patch 2485件 [詳細] filetrac0.11-enterprise.png 1980件 [詳細] filetrac0.10.5-ja_workflow.png 1740件 [詳細] filetrac0.11.5-ja_workflow.png 1783件 [詳細] fileTracWholeSearch0.21.patch 2305件 [詳細] fileParentWiki.py 1942件 [詳細] fileTraM.jpg 2049件 [詳細] fileindex.cs 7081件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-11-21 (日) 19:06:12