Coder Social home page Coder Social logo

moyo's Introduction

moyo

Build Status

概要

MOYOはErlang用のユーティリティモジュール集です。

依存関係

  • OTPのバージョンが18.0以上である必要があります。

ビルド方法

ビルドツールには rebar3 を使用しています。 ※ ただし通常はmakeコマンド経由でrebarが実行されるので、自分で叩く機会は少ないです。

# リポジトリ取得
$ git clone [email protected]: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, "[email protected]: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.

moyo's People

Contributors

sile avatar zeek0x avatar yaoshimax avatar kouchangdw avatar koba-e964 avatar dw-kihara avatar mopp avatar amutake avatar zukky162 avatar gfngfn avatar kitowadaa avatar kyos3 avatar kojingharang avatar roentgen avatar soranoba avatar kojingharang-dw avatar takahiro-yachi avatar aoimoe avatar dw-y-kubota avatar shokoss avatar yao2525 avatar

Stargazers

Taiki Yoshii avatar Shoichi Sasaki avatar Felipe Menegazzi avatar  avatar  avatar makoto-developer avatar  avatar  avatar feapoi avatar David.Gao avatar Sora Morimoto avatar 仇啟飞 avatar Pine Mizune avatar Itsuki Hayashi avatar  avatar  avatar shikato avatar Hiroto Funakoshi avatar gerald avatar KeitaTakahashi avatar liuis Lee avatar Yusuke Kasuga avatar  avatar Michael avatar AlexanderT avatar Kentaro "zigen" Teramoto avatar  avatar HS avatar Satoshi Goto avatar tanitta avatar 長留裕平 avatar  avatar pocketberserker avatar Tatsuya Kawano avatar  avatar Lee GiTack avatar Raphael Mu avatar Katsuma Ito avatar Atsushi Araki avatar cz avatar gnaggnoyil avatar Hiroki TOI avatar aoki avatar okumin avatar hisui avatar AMAGI / Jun Yuri avatar  avatar Raina Otoni avatar Vladimir Galunshchikov avatar gomi_ningen avatar Takuya Mannami avatar Hirofumi Yoshikawa avatar ohr486 avatar Toshihiro Shimizu avatar Kenji Rikitake avatar Eishun Kondoh avatar Massn avatar  avatar  avatar KOUCHANG avatar SUZUKI Keiichi avatar

Watchers

masarakki avatar Takuya Fujimura avatar Soichiro Yoshimura avatar ohsuke noguchi avatar oskimura avatar  avatar  avatar hisui avatar Kosuke Kawahira avatar Lee GiTack avatar Takashi Sakai avatar James Cloos avatar Tetsuro Sano avatar yskw avatar SUZUKI Keiichi avatar  avatar WANG ZHIJUN avatar atsushi chiba avatar  avatar Massn avatar  avatar  avatar KOUCHANG avatar  avatar  avatar tkyshm avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.