mix nerves.new hogeのちょっとした改善プルリクがマージされた話(Elixir)
はじめに
-
Nervesとは、ElixirのIoTでナウでヤングなcoolなすごいヤツです
-
mix nerves.new hoge
して、hoge/mix.exs already exists, overwrite? [Yn]
にn
で答えるとちょっとだけあれれ? なことがおきます
-
Nervesの準備のところでやる
$ mix archive.install hex nerves_bootstrap
のnerves_bootstrapに(本当に)ちょっとしたあれれ? がありました
-
Nervesの環境構築は、@takasehideki 先生のElixirでIoT#4.1:Nerves開発環境の準備(2020年9月版)が詳しいです
(本当に)ちょっとだけあれれ? なこと
$ mix nerves.new hoge
* creating hoge/config/config.exs
* creating hoge/config/target.exs
* creating hoge/lib/hoge.ex
* creating hoge/lib/hoge/application.ex
* creating hoge/test/test_helper.exs
* creating hoge/test/hoge_test.exs
* creating hoge/rel/vm.args.eex
* creating hoge/rootfs_overlay/etc/iex.exs
* creating hoge/.gitignore
* creating hoge/.formatter.exs
* creating hoge/mix.exs
* creating hoge/README.md
Fetch and install dependencies? [Yn] n
Your Nerves project was created successfully.
You should now pick a target. See https://hexdocs.pm/nerves/targets.html#content
for supported targets. If your target is on the list, set `MIX_TARGET`
to its tag name:
For example, for the Raspberry Pi 3 you can either
$ export MIX_TARGET=rpi3
Or prefix `mix` commands like the following:
$ MIX_TARGET=rpi3 mix firmware
If you will be using a custom system, update the `mix.exs`
dependencies to point to desired system's package.
Now download the dependencies and build a firmware archive:
$ cd hoge
$ mix deps.get
$ mix deps.get
$ mix firmware
If your target boots up using an SDCard (like the Raspberry Pi 3),
then insert an SDCard into a reader on your computer and run:
$ mix firmware.burn
Plug the SDCard into the target and power it up. See target documentation
above for more information and other targets.
- わかりますか?
-
Now download the dependencies and build a firmware archive:
の下あたりで$ mix deps.get
が2回でてきているのです
気づいてしまったからには改善したほうがいいとおもってプルリクを出しました
-
プルリクを出してからなんと30分くらいでマージしてもらいました
mix nerves.new hoge
して、hoge/mix.exs already exists, overwrite? [Yn]
にn
で答えるとちょっとだけあれれ? なことがおきます$ mix archive.install hex nerves_bootstrap
のnerves_bootstrapに(本当に)ちょっとしたあれれ? がありました
- Nervesの環境構築は、@takasehideki 先生のElixirでIoT#4.1:Nerves開発環境の準備(2020年9月版)が詳しいです
$ mix nerves.new hoge
* creating hoge/config/config.exs
* creating hoge/config/target.exs
* creating hoge/lib/hoge.ex
* creating hoge/lib/hoge/application.ex
* creating hoge/test/test_helper.exs
* creating hoge/test/hoge_test.exs
* creating hoge/rel/vm.args.eex
* creating hoge/rootfs_overlay/etc/iex.exs
* creating hoge/.gitignore
* creating hoge/.formatter.exs
* creating hoge/mix.exs
* creating hoge/README.md
Fetch and install dependencies? [Yn] n
Your Nerves project was created successfully.
You should now pick a target. See https://hexdocs.pm/nerves/targets.html#content
for supported targets. If your target is on the list, set `MIX_TARGET`
to its tag name:
For example, for the Raspberry Pi 3 you can either
$ export MIX_TARGET=rpi3
Or prefix `mix` commands like the following:
$ MIX_TARGET=rpi3 mix firmware
If you will be using a custom system, update the `mix.exs`
dependencies to point to desired system's package.
Now download the dependencies and build a firmware archive:
$ cd hoge
$ mix deps.get
$ mix deps.get
$ mix firmware
If your target boots up using an SDCard (like the Raspberry Pi 3),
then insert an SDCard into a reader on your computer and run:
$ mix firmware.burn
Plug the SDCard into the target and power it up. See target documentation
above for more information and other targets.
- わかりますか?
-
Now download the dependencies and build a firmware archive:
の下あたりで$ mix deps.get
が2回でてきているのです
気づいてしまったからには改善したほうがいいとおもってプルリクを出しました
-
プルリクを出してからなんと30分くらいでマージしてもらいました
- 私の黄色い猫のアイコンが左上と右下にいますよね!
- 今回はElixirで書かれたコードを少し変えたコミットがマージしてもらえました
- 以前、Nerves関連でプルリクをマージしてもらったことがあるのですがそのときはドキュメントだけでした
- ソースコードのちょっとした修正ではありますが、Elixirのプログラムを修正したプルリクがマージしてもらえたのはとてもうれしくおもっておりますし、自信にもなりました
- 以前ドキュメント修正したというプルリク → Update /CONTRIBUTING.md to /.github/CONTRIBUTING.md on README.md #501
- 全体をみないとなんのことやらわからないとはおもいますが、差分は以下の通りです
@@ -215,15 +215,11 @@ defmodule Mix.Tasks.Nerves.New do
install? = Mix.shell().yes?("\nFetch and install dependencies?")
File.cd!(path, fn ->
- extra =
- if install? && Code.ensure_loaded?(Hex) do
- cmd("mix deps.get")
- []
- else
- [" $ mix deps.get"]
- end
+ if install? && Code.ensure_loaded?(Hex) do
+ cmd("mix deps.get")
+ end
- print_mix_info(path, extra)
+ print_mix_info(path)
end)
end
@@ -255,8 +251,8 @@ defmodule Mix.Tasks.Nerves.New do
end
end
- defp print_mix_info(path, extra) do
- command = ["$ cd #{path}"] ++ extra
+ defp print_mix_info(path) do
+ command = ["$ cd #{path}"]
Mix.shell().info("""
Your Nerves project was created successfully.
- いろいろ修正の方法があるとおもいました
-
print_mix_info
の第2引数のextra
はそのまま残す修正の方法もあるとはおもいましたが、空のリストを渡すというような処理が増えることになりますし、プライベート関数で使われ方は限られていたので、思い切って第2引数のextra
を消してしまうことにしました
nerves_bootstrapのプルリクを出すにあたってやったこと
- READMEを読んで手元でビルドしたオレオレnerves_bootstrapをインストールした状態で、
$ mix nerves.new hoge
が正しく動作することを確認しました
- あとはちょっとドキドキしながらプルリクを送ったらすぐにマージしてもらえました
$ cd nerves_bootstrap
$ mix test
$ mix do deps.get, archive.build, archive.install
$ cd ..
$ mix nerves.new hoge
Wrapping Up
$ mix nerves.new hoge
が正しく動作することを確認しました$ cd nerves_bootstrap
$ mix test
$ mix do deps.get, archive.build, archive.install
$ cd ..
$ mix nerves.new hoge
Author And Source
この問題について(mix nerves.new hogeのちょっとした改善プルリクがマージされた話(Elixir)), 我々は、より多くの情報をここで見つけました https://qiita.com/torifukukaiou/items/26fed9d7193dc674e8fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .