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

この記事は、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のスライドが詳しいです。

<iframe src="http://www.slideshare.net/slideshow/embed_code/36649709" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>

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

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

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

<script src="https://gist.github.com/c578aed2d97ed2634b5b.js"> </script>

gistc578aed2d97ed2634b5b

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

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

最高便利!

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

Avatar
Aki Ariga
Machine Learning Engineer

Interested in Machine Learning, ML Ops, and Data driven business.