5.1さらうどん

@giginetの技術ブログ。ゲーム開発、iOS開発、その他いろいろ

Djangoでgitのリビジョンを表示するプラグインを作った

django-debug-toobar-vcs-info

Djangoにはdjango-debug-toolbarというプラグインがあります。

github.com

このプラグインを導入すると、プロファイリングを行ったり、利用されているライブラリのバージョンを表示したりといった、デバッグに必要な情報を簡単にサービス上に表示することができます。

f:id:gigi-net:20151227182311p:plain

現在、Djangoで運用しているサービスがあるのですが、本番で現在のGitリビジョンを確認したいという需要があったので、このdjango-debug-toolbarの拡張として、以下のような物を作りました。

github.com

django-debug-toolbar-vcs-infodjango-debug-toolbarにGitなどのバージョン管理システムの現在の状態を表示するパネルを追加するプラグインです。

このプラグインを導入すると、以下のように現在のHEADのハッシュやコミットログを確認することができます。これを本番環境に導入しておくと結構便利です。

f:id:gigi-net:20151227182421p:plain

非常に需要の少ないモノですが、簡単に導入できますし、入れておいて損はないので、Djangoでサービスを運用している方は是非使ってみてください。

vcs-infoという名前ですが、現状、gitにしか対応していないので、Mercurial対応などのPRお待ちしています。

作ってみて

そもそも、作ってみた動機として「PyPIにしっかりテストしたパッケージをホストしたい」という気概がありました。

PyPIにパッケージを登録するのは、3~4年前に一度挑戦したことがあったのですが、全くテストがされていなくて、使いやすい物になっていなかったので、今回はガッチリとテストをしてみました。

f:id:gigi-net:20151227183355p:plain

toxを利用し、Django1.7から1.9に対応させたり、Python2, 3に両対応させたり、カバレッジを計測したり、しっかりモックテストを書いたりと言った知見が溜まりましたし、そういう意味で小さなプラグインを作ってみるのは良いと思います。

今回のような複数Python, Djangoのバージョンに対応させたテスト手法について、Python Advent Calendar 2015の記事として投稿していますので、ご興味のある方はこちらも併せてご覧ください。

複数バージョンのPython向けにCI環境を構築してテストする - Qiita