Nerves関連の備忘。
Elixir製IoTフレームワーク「Nerves」のRaspberry Pi Zeroのコンフィグ設定を行う「nerves_system_rpi0」でバージョン2の話が出ているので記録しておく。*1
2020年10月14日8:27JSTに、nerves_system_rpi0のv2.0.0-rc.1のリリースされていました。
リリース情報に、「Sync with changes up to v1.13.0」とだけ書いてありました。
”v1.13.0までの変更を同期”の日本語訳を、v1.13.0に対してv2.0.0-rc.1のタグもつけたと勘違いした私は、以下のようなつぶやきをしました。
nerves_system_rpi0のv.2.0.0って何が変わるんだ?と思ったら「Sync with changes up to v1.13.0」って書いてあるから、v.1.13.0から変わらんってことかな?
— みずりゅ(「Elixirへのいざない」技術の泉シリーズで出版:しがないラジオsp65出演) (@MzRyuKa) 2020年10月14日
でも、なぜバージョン2って扱い?
Nerves1.7に対応するからかしら??https://t.co/8FALO46BzM
これに対して、@shozf氏と@pojiro3氏からコメントをもらい、勘違いに気づきました。
よく分からないが、↓だそうです。30 Julにbranchしていた模様。https://t.co/0F1gZjxKf7
— shozf (@ShozF) 2020年10月14日
これですね。firmwareのvalidateのタイミングをコントロールできるのが大きい点みたいです。https://t.co/Y61JHx0uTZ
— 衣川亮太, Tombo Works代表 (@pojiro3) 2020年10月14日
そういえば、確かに2020年7月30日にv2.0.0-rc.0のリリース情報が出た時、反応してた気がする自分。
Why 2.0.0?
@pojiro3氏から教えて頂いたページはこちらです。
タイトルもそのものズバリで「Nerves Raspberry Pi Systems v2.0.0 release candidates」でした。
この記事の中に、「Why 2.0.0?」とあります。
Introducing nerves_initramfs and the revert scheme is a decent size change to how the system functions. It’s a new tool and startup path which, we feel, warrants a major version bump. Our hope is that others try out the release candidates and submit issues to help us iron out any kinks.
DeepLさんに訳してもらうと、こんな感じ。
nerves_initramfsとrevertスキームを導入することは、システムがどのように機能するかについてのまともなサイズの変更です。
これは新しいツールであり、起動経路であり、私たちは大きなバージョンバンプが必要だと感じています。
私たちの望みは、他の人たちがリリース候補を試してみて、問題を提出して、私たちがどんな問題も解決できるようにしてくれることです。
この場合のdecentはおそらく"相当量の"あたりの訳が妥当だと思われます。
端的に言うと「nerves_initramfsとrevert schemeは相当量のシステムの変更だからメジャーバージョンあげたい」かな、と。
もう少しだけ掘り下げると、起動前にfirmwareの検証チェックを行えるようになったこと、検証チェックが無効の場合には最後のfirmwareにリバートされること、がこれまでと大きく変わってきている。だからバージョンが妥当、と言うところかな、と。
まとめ
正直、これで何が良くなるのかまだピンと来ていないです。
ですが、バージョンがv1からv2に変わるわけなので、着目してみました。
実際に触ってみたら、もう少しわかってくるのかな。
もうちょっとドキュメントを読み込んでみるか。
*1:正確には、「nerves_system_***」が全て対象になります。