niszetの日記

細かい情報を載せていくブログ

TokyoR 96でLTしてきました。

ひさびさの投稿

お久しぶりです。niszetです。 何かやったこと、成果が出た事以外はブログにすることがないのでめっきり書くことが減ってしまいました。

TokyoR もオンライン化してから初めての登壇な気がする…

コロナ禍でTokyoRもオンライン化して久しいですが、よくよく考えると私はその間全然登壇していないのでした。 そんなわけで、Zoomで発表ってどうやるんでしたっけ?という感じでしたが、運営チームの方々に優しくフォローしていただき、開始前の準備で画面を確かめて臨むことが出来ました。ありがとうございました。

さて、TokyoRのconnpassはこちらにあります。

https://tokyor.connpass.com/event/236539/

私のスライドは

https://niszet.github.io/TokyoR96LT/TokyoR96LT.html

で見れます。

その元になるファイルはこちらにあります。

https://github.com/niszet/TokyoR96LT

何話したの

今回は、「RのパッケージはどのくらArchiveされているか?」というタイトルでLTしてきました。 これは、CRAN上にあるパッケージも、AvailableなものとArchiveにあるものがあり、いつどのくらいArchiveされたのだろうか?ということを調べたので、まとめて発表しようということでやってきました。

元々はSlack上のosakaRの朝モクのやりとりから生まれたものです。originはkilometerさんですね。

2021年の年末から今年の頭にかけてOSS中にバグがあったり、メンテナが疲弊してライブラリに細工をしたりみたいなことがあり、Rはどうか?CRANがあるから大丈夫…いやいやCRANも関数の中身は保証していないぞ…というやりとりがありました。 結果、パッケージの中身や関数の中身は自分で実行したりコードを読んだりして正しさを確認するしかないですねということになりました。

本LTではそれはそれとして、上記のようにメンテが出来なくなったようなライブラリはどのくらいあるのか?ということで、CRANにあるパッケージはどのくらいArchiveになっているかを調べています。

アーカイブされたパッケージ数、そのパッケージがアーカイブされた年、その理由を見ています。

日々アーカイブされたり、その後Availableに復帰したりとチェックするたびに件数が変わる点、その年にArchiveになった全てのパッケージ数を見ているわけではない(Availableに戻るとArchivedの記録が消える)点に注意が必要です。

あとはスライドを見てもらえれば良いかなと思います。コードはなんかきになるので書き直したいんだよな~ってなって半月くらい経ちましたね。書き直してupするまでが発表です…うぅ。

最後のグラフだけ説明が口頭のみだったので一応書いておきます。

アーカイブされた理由については手作業で分類したのでご参考程度に。 一番多いのはエラー直らずでした。CRANのチェックがpassしなくなったあとに一定期間で修正しないといけないそうですが、それが直っていないというものです。それぽい理由は全部これに入れました。 依存パッケージは何らかの別のパッケージ名が書かれているものを分類しています。細かくは追っていませんが、依存してるパッケージがArchiveに落ちたら連鎖的にArchive行きだと思いますが、それ以外もあるかもしれません。 ここで「連絡不能」というのは、メンテナにメールを送ったけど宛先不明で届かないといったもので、失踪したというわけでは(たぶん)ありません。所属が変わるとメールアドレスが変わったりするので、転送処理がされない、あるいは(転送の猶予の)一定期間が過ぎてしまった、などがあるかもしれません。CRANにパッケージを登録する方は所属が変わっても連絡が取れるメールアドレスを登録するようにした方が良いでしょう。 一方、メンテナから今後メンテナンスすることが難しいなどの連絡があってArchiveになるパッケージも毎年一定数あるようです。やはりメンテの負荷がのしかかってくるのですかね。 ポリシー違反も近年増えており、CRANのポリシーのページは目を通しておいた方が良いかもしれません。具体的にどのポリシーに違反しているかという記載はなかったと思います。 意外と理由の記載がないものもあり、またtypoもあるので最終的には目視分類が必要になる(正規表現で仕分けしきれない)のであまりやりたくないですね。2016年以前がグラフに含まれていないのは2017年以降とまた違う傾向のメッセージで仕分けの手間がかかりすぎたためです…

ということで、ざっと書きましたがLTの内容はこのようなものでした。

5分以内にLTする、というのは気が引き締まって良いですね。でも、録音したものを流した方がオンラインの時代には良いのかもしれないなぁと他の型の発表を聞いていて思ったのでした(時間オーバーを気にしなくてよいですしね!)

以上です。

Enjoy!!