読者です 読者をやめる 読者になる 読者になる

once upon a time,

Iris Tradをビール片手に聞くのが好きなエンジニアが、機械学習やRubyにまつわる話を書きます

Juliaのパッケージ公開はREPLからできる #JuliaAC #julialang

Julia github advent calender

この記事は、Julia Advent Calendarの11日目の記事です。 10日目は夜道先生のNumericExtensions.jl の話でした。

Juliaのパッケージを作っても、野良パッケージを作るだけでは多くの人に使ってもらえません。 RでいうCRAN、Rubyでいうgemのように、JuliaではMETADATA.jlというエコシステムでパッケージが管理されています。 パッケージはすべてgithub上ですべてホスティングされています。(だから、先日のロシアのgithubアクセス禁止騒ぎみたいなのに巻き込まれると何も出来ません...) METADATA.jlもPull Requestベースで管理されているのですが、中身について議論されることはあまりなく、基本的に1日程度でどんどん取り込まれます。(CRANは厳正な審査がいるそうですね!)

また、パッケージをMETADATA.jlに登録するとパッケージ検索ができるようになります。ちなみに、デイリーでstableとnightlyバージョンでテストがこけると自動で斧が投げられる仕組みとかがあります。

さて、パッケージの作り方は@bicycle1885さんの下記のJuliaTokyo #1のスライドが詳しいです。

Juliaのパッケージをつくろう!

今日は、そこで検証されていなかったPkg.publish()についてご紹介したいと思います。 そもそも、この発表の段階ではGithub2 factor authに対応されていなかったのですが、少し前にできるようになりました

gistc578aed2d97ed2634b5b

Pkg.update()して(この場合は更新なので)Pkg.tag("PackageName")して、Pkg.publish()するだけです。 初回はパスワードの入力とアクセストークンの入力が求められるので、githubでtokenを生成してREPLに入力をしましょう。

すると、自分のMETADATA.jlがbranch切られてpushされて、ブラウザが開いてPull Requestが作られます。(自分が試した時はChromeがちょうどクラッシュしたので、手でPR作りなおしたのでもしかするとMETADATA.jlのページが開くだけだったかもしれません)

f:id:chezou:20141207213426p:plain

f:id:chezou:20141207213437p:plain

最高便利!

明日はbicycle1885さんの「PythonistaのためのJulia100問100答」です。