パッケージを作る
先日のJuliaTokyo#1のこの発表資料がわかりやすいので読むと吉。
http://www.slideshare.net/KentaSato/julia-36649709
↑の方のパッケージ(juliaのランダムフォレスト)は実際にコードを書く上で参考になる。
https://github.com/bicycle1885/RandomForests.jl
以下は作業メモ。
まとめ
いきなりだがまとめると以下のような流れである。
Pkg.generate("Yo", "MIT") # 骨組みを作る。 # ファイルを編集 Pkg.test("Yo") # テスト # githubに公開していればこの時点でインストールできる Pkg.clone("git@github.com:dichika/Yo.jl.git") # 野良からのインストール # ここからは公式レポジトリへの公開方法 Pkg.register("Yo") # ローカルのMetadataへの登録 Pkg.tag("Yo") # バージョンタグの付与 Pkg.publish() # 公式レポジトリへのプルリクエスト # プルリクが受け付けられれば公式からインストールできるようになる。 # 私のパッケージはまだです。 #Pkg.update() #Pkg.add("Yo") # 公式レポジトリからのインストール
雛型をつくる
まずは雛型をつくる。
Pkg.generate()を使う。Rのpackage.skeleton()と同様。
Pkg.generate("パッケージ名","ライセンス")のように設定する。
この時gitのユーザー名、メールアドレスが設定されていないとエラーになるので設定しておく。下記参照。
http://www.backlog.jp/git-guide/reference/config.html
Pkg.generate("Yo", "MIT")
パッケージの中身をつくる
~/.julia/v0.3下に上記パッケージ(今回の場合はYo)が作成されている。
src内のYo.jlを編集する。
以下参照。
https://github.com/dichika/Yo.jl/blob/master/src/Yo.jl
パッケージをテストする
Pkg.test("Yo")とすることでtest/runtests.jlが実行されてテストできるが今回はとばした。
繰り返しになるが下記パッケージのtest以下を参照されたい。
https://github.com/bicycle1885/RandomForests.jl
githubにアップしてインストールしてみる
githubにレポジトリを作ってアップすると以下のようにインストールできる。
Pkg.clone("git@github.com:dichika/Yo.jl.git")
公式に登録してインストールする
上記だとまだ野良パッケージなので公式レポジトリ(RでいうところのCRAN)に登録してみる。
http://pkg.julialang.org/
ただプルリクを受け付けてもらう時に説明が足りないと、What is Yo??????みたいなこと言われたりもする。
Yoは個人情報を収集するために作られたアプリなんだ!!!とかいう陰謀論がフランスからとんできたりもする。
https://github.com/JuliaLang/METADATA.jl/pull/1093
公式に登録したい場合説明責任を果たしましょう。私はめんどいです。
Pkg.register("Yo") # ローカルのMetadataへの登録 Pkg.tag("Yo") # バージョンタグの付与 Pkg.publish() # 公式レポジトリへのプルリクエスト
上記がマージされればこれで晴れてPkg.add()でインストールできるようになる。
が、現時点ではまだマージされないのでインストールできません。
#Pkg.update() # METADATAを最新のものにして新しいパッケージがインストールされるようにする #Pkg.add("Yo")
以下の2つ及びJuliaTokyoの発表が大いに参考になった。
- http://www.slideshare.net/KentaSato/julia-36649709
- http://julia.readthedocs.org/en/latest/manual/packages/
- JuliaTokyo #1 を開催しました - りんごがでている
enjoy!!!