Kanon とは?

Kanon

Trac/Maven/Jenkins を一括インストールするツール (Trac Lightning の Linux 版)

Kanon LAB (公式サイトだが繋がらない?) okamototk / KanonConductor — Bitbucket

trac-code-comments-plugin

Trac(Kanon)のリポジトリブラウザ上でコードに対するコメントを付けることが出来るようになるプラグイン Automattic/trac-code-comments-plugin

Trac には他にも同様のプラグインがいくつかあるが、これが一番新しそうで、使いやすそうに見えた。 (リポジトリも Github にあるし)

環境

使用環境

AWS EC2 の Red Hat Enterprise Linux 7.0 (HVM), SSD Volume Type - ami-99bef1a9 を利用する。

準備

yum updateと Mercurial,git のインストールをしておく。 (Kanon 上のリポジトリとして svn,bazaar を使用する場合は併せてインストールしておく)

sudo yum update
sudo yum install -y hg git

Kanon インストール

BitBucket に書いてある手順どおりに。 okamototk / KanonConductor — Bitbucket

Kanon ソースの取得

BitBucket では Mercurial を使用してクローンする。

hg clone https://bitbucket.org/okamototk/kanonconductor

Kanon インストール

コマンド一発で。

cd kanonconductor
sudo ./kanon-setup

幾つか質問されるので、それなりに答えるだけでインストール完了。 自分の環境では、/opt/kanonに Kanon がインストールされた。 また、サンプルプロジェクトが/var/opt/kanon/trac/SampleProjectに作成されていた。

trac 関連のコマンドを実行出来るようにするために/opt/kanon/binにパスを通しておく。

export PATH=/opt/kanon/bin:$PATH

Kanon にアクセス

インストールが完了した時点で、Kanon の httpd によるサーブも完了しており、http://${IP}/tracで Kanon プロジェクトにアクセスできる。

新たに Kanon プロジェクトを作成したい場合はkanon-create-projectコマンドにより行う。 いくつかの質問に答えるだけでプロジェクトを作成できる。

trac-code-comments-plugin のインストール

Kanon のリポジトリブラウザでコードに対するコメントを残せるtrac-code-comment-pluginをインストールする。 Automattic/trac-code-comments-plugin

trac-code-comments-plugin ソースの取得

Github よりクローンする。

git clone https://github.com/Automattic/trac-code-comments-plugin

trac-code-comment-plugin のインストール

git cloneしたソースより egg ファイルを作成する。 (python 2.4+ が必要)

cd trac-code-comments-plugin
python setup.py bdist_egg

これで、distディレクトリに egg ファイルが作成されるので、この egg ファイルを${TRAC_PROJECT}/plugins配下に移動する。 今回は Kanon インストール時に作成されたSampleProjectにインストールする。

sudo mv dist/TracCodeComments-1.1.1-py2.6.egg /var/opt/kanon/trac/SampleProject/plugins
sudo chown apache:apache /var/opt/kanon/trac/SampleProject/plugins/TracCodeComments-1.1.1-py2.6.egg

これで、httpdを再起動すればインストールが完了するはずだが、自分の環境ではエラーとなった。

Traceback (most recent call last):
  File "/opt/kanon/lib/python2.6/site-packages/Trac-0.12.4.ja1-py2.6.egg/trac/web/api.py", line 446, in send_error
    data, 'text/html')
  File "/opt/kanon/lib/python2.6/site-packages/Trac-0.12.4.ja1-py2.6.egg/trac/web/chrome.py", line 835, in render_template
    template = self.load_template(filename, method=method)
  File "/opt/kanon/lib/python2.6/site-packages/Trac-0.12.4.ja1-py2.6.egg/trac/web/chrome.py", line 796, in load_template
    self.get_all_templates_dirs(), auto_reload=self.auto_reload,
  File "/opt/kanon/lib/python2.6/site-packages/Trac-0.12.4.ja1-py2.6.egg/trac/web/chrome.py", line 511, in get_all_templates_dirs
    dirs.extend(provider.get_templates_dirs() or [])
  File "build/bdist.linux-x86_64/egg/code_comments/web.py", line 25, in get_templates_dirs
    return [self.get_template_dir()]
  File "build/bdist.linux-x86_64/egg/code_comments/web.py", line 29, in get_template_dir
    return resource_filename(__name__, 'templates')
  File "/opt/kanon/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg/pkg_resources.py", line 869, in resource_filename
    self, resource_name
  File "/opt/kanon/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg/pkg_resources.py", line 1345, in get_resource_filename
    return self._extract_resource(manager, zip_path)
  File "/opt/kanon/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg/pkg_resources.py", line 1352, in _extract_resource
    manager, os.path.join(zip_path, name)
  File "/opt/kanon/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg/pkg_resources.py", line 1370, in _extract_resource
    self.egg_name, self._parts(zip_path)
  File "/opt/kanon/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg/pkg_resources.py", line 949, in get_cache_path
    self.extraction_error()
  File "/opt/kanon/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg/pkg_resources.py", line 915, in extraction_error
    raise err
ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg
cache:

  [Errno 13] Permission denied: '/var/opt/kanon/trac/.egg-cache'

The Python egg cache directory is currently set to:

  /var/opt/kanon/trac/.egg-cache

Perhaps your account does not have write access to this directory?  You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.

どうやら、egg ファイルを展開する場合、.egg-cacheディレクトリを作成する必要があるらしい。 ので、apache がアクセスできる.egg-cacheディレクトリを作成する。

sudo mkdir /var/opt/kanon/trac/.egg-cache
sudo chown apache:apache /var/opt/kanon/trac/.egg-cache

Kanon の上部メニューに Code Comments メニューが表示されていればインストール完了。 (ログインする必要あり)

コードレビュー

スクリーンショット 2014-11-23 0.04.18.png

スクリーンショット 2014-11-23 0.04.34.png

スクリーンショット 2014-11-23 0.04.55.png

スクリーンショット 2014-11-23 0.05.08.png

comments powered by Disqus