MOYOはErlang用のユーティリティモジュール集です。
- OTPのバージョンが18.0以上である必要があります。
ビルドツールには rebar3 を使用しています。 ※ ただし通常はmakeコマンド経由でrebarが実行されるので、自分で叩く機会は少ないです。
# リポジトリ取得
$ git clone git@github.com:dwango/moyo.git
$ cd moyo
# コンパイル
$ make compile
# ユニットテスト
$ make eunit
# 型チェック
$ make dialyze
# reloader(更新モジュールの自動読み込み)付きでErlangシェルを起動する
# => Erlangシェルを立ち上げた状態で, ソースの修正&コンパイルを行うと, 該当モジュールが自動で更新されます
$ make start
> moyo_binary:to_hex(<<"abc">>).
<<"616263">>
rebar3を使った一般的なライブラリと同様の方法で組み込みが可能です。
具体的にはプロジェクトのrebar.configに以下のようなエントリを追加すると、moyoが依存関係に追加され、リポジトリの取得やビルドがrebar3コマンド経由で行えるようになります。
{deps,
[
{moyo, ".*", {git, "git@github.com:dwango/moyo.git", {tag, "対象バージョン"}}}
]}.
各モジュール、各関数に関するドキュメントについては以下のURLより参照して下さい。
- コード規約 は以下を参照
- MOYOコーディング規約
- 足りない部分は随時更新される。
- 修正はプルリクで 反映させる。
- 修正した場合はプルリクを投げてリポジトリに反映させることとする。
- 修正時は修正用ブランチ
feature/XXX
を作成して, そのブランチで作業をする。 (XXXには作業内容を入れる。複数単語の場合-
で繋ぐ)。 - merge先は
master
ブランチにする。
- テストを書く。
- カバレッジが100%になるように 。
- Erlangにはユニットテストフレームワークとして EUnit が存在する。 (実行:
% make eunit
) - EUnitを実行するとカバレッジページ(htmlフォーマット)が生成される。 プルリクはこのカバレッジを100%にして投げるようにする。
- ただし100%にすることが困難な場合はプルリクに明記すればその限りではない。
- Erlangにはユニットテストフレームワークとして EUnit が存在する。 (実行:
- dialyzerのチェックをパスするように 。
- dialyzerはErlangの型の静的解析を行ってくれるツール (リストを期待する関数に整数を渡してたりすると怒ってくれる)
make dialyze
を実行してエラーがでないことを確認する。
- カバレッジが100%になるように 。
- ドキュメントは必須
- exportしている関数には必ずドキュメントを付ける。
- edoc準拠(詳細は後に記述予定)
- 例外あり(callback関数等)
- exportしている関数には必ずドキュメントを付ける。
- バージョンは
v1.2.3
という形でtagを付けることにより管理する。v
: 接頭辞として固定1
: メジャバージョン2
: マイナバージョン3
: ビルドバージョン
- masterに 修正が加えられる毎に
ビルドバージョン
を増加させる。- 後方互換性がない修正が入る場合には
マイナバージョン
を増加させて、ビルドバージョン
は0にリセットする。
- 後方互換性がない修正が入る場合には
- 特になし
MOYOは、アフリカ東部で使われるスワヒリ語で、心、魂、精神などを意味します。
Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.