Skip to content

dwango/moyo

Folders and files

NameName
Last commit message
Last commit date
Jun 13, 2018
Aug 3, 2020
Sep 13, 2023
Apr 22, 2024
May 28, 2024
Jun 13, 2018
Jun 20, 2018
Feb 20, 2015
Dec 21, 2018
Jun 20, 2018
Sep 13, 2023
Jun 13, 2018
Jun 13, 2018

Repository files navigation

moyo

Build Status

概要

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より参照して下さい。

doc/README.md

運用方針

  • コード規約 は以下を参照
  • 修正はプルリクで 反映させる。
    • 修正した場合はプルリクを投げてリポジトリに反映させることとする。
    • 修正時は修正用ブランチfeature/XXXを作成して, そのブランチで作業をする。 (XXXには作業内容を入れる。複数単語の場合-で繋ぐ)。
    • merge先はmasterブランチにする。
  • テストを書く。
    • カバレッジが100%になるように
      • Erlangにはユニットテストフレームワークとして EUnit が存在する。 (実行: % make eunit)
      • EUnitを実行するとカバレッジページ(htmlフォーマット)が生成される。 プルリクはこのカバレッジを100%にして投げるようにする。
        • ただし100%にすることが困難な場合はプルリクに明記すればその限りではない。
    • dialyzerのチェックをパスするように
      • dialyzerはErlangの型の静的解析を行ってくれるツール (リストを期待する関数に整数を渡してたりすると怒ってくれる)
      • make dialyze を実行してエラーがでないことを確認する。
  • ドキュメントは必須
    • exportしている関数には必ずドキュメントを付ける。
      • edoc準拠(詳細は後に記述予定)
      • 例外あり(callback関数等)

バージョン管理方法

  • バージョンはv1.2.3という形でtagを付けることにより管理する。
    • v: 接頭辞として固定
    • 1: メジャバージョン
    • 2: マイナバージョン
    • 3: ビルドバージョン
  • masterに 修正が加えられる毎に ビルドバージョンを増加させる。
    • 後方互換性がない修正が入る場合には マイナバージョン を増加させて、ビルドバージョンは0にリセットする。

その他

  • 特になし

MOYOは、アフリカ東部で使われるスワヒリ語で、心、魂、精神などを意味します。

Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.