grisp / mix_grisp

Mix plug-in for GRiSP
https://www.grisp.org
Apache License 2.0
5 stars 6 forks source link

mix grisp.deploy fails #9

Open Rashidwi opened 1 month ago

Rashidwi commented 1 month ago

Hi,

Following the sequence: mix get.deps mix compile mix grisp.deploy fails with the following output. No file is found in _build/dev/rel/myapp/bin

mix grisp.deploy:

<

===>🐟 Deploying GRiSP application

Release created at _build/dev/rel/myapp

# To start your system
_build/dev/rel/myapp/bin/myapp start

Once the release is running:

# To connect to it remotely
_build/dev/rel/myapp/bin/myapp remote

# To stop it gracefully (you may also send SIGINT/SIGTERM)
_build/dev/rel/myapp/bin/myapp stop

To list all commands:

_build/dev/rel/myapp/bin/myapp

** (FunctionClauseError) no function clause matching in :grisp_tools_deploy.distribute/1

The following arguments were given to :grisp_tools_deploy.distribute/1:

    # 1
    %{copy: %{force: false, destination: ~c"/tmp/grisp"}, shell: %{env: %{~c"GRISP" => ~c"yes", ~c"GR

ISP_PLATFORM" => ~c"grisp2"}}, build: %{config: %{xcomp_conf: ~c"xcomp/erl-xcomp-arm-rtems5-27.conf"}, ha sh: %{index: [{"00100-rtems.patch", "8c7b1985d9e8df4978117e252869e86264cad051acf9b3310f3da9d35081d2c1"}, {"00300-drivers-nifs.patch", "8e9085f6f0fc2ff7e22dea796bb279a805c3b0a1da4adadc4c468b02c5940c8d"}, {"erts/ emulator/drivers/unix/grisp_termios_drv.c", "7681801fca2aa5639e32365e9fad1626e3226f205bd3a7f4944e6e57ea29 a3d0"}, {"erts/emulator/nifs/common/grisp_gpio_nif.c", "6d88dab1b11f41b7ca34791b67bb3dcdc288262db0c4c0ac0 1707248ed75194e"}, {"erts/emulator/nifs/common/grisp_hw_nif.c", "7be1ac99d35234c7370728d1bc3a1bdf6a31f3bc a2c181406336959567e6c528"}, {"erts/emulator/nifs/common/grisp_i2c_nif.c", "eb989c69d1455eb84a9e3f0ff5646e 4b9696cd8910a8f9f57d183925417c2cd7"}, {"erts/emulator/nifs/common/grisp_rtems_nif.c", "86840705643b73bda6 edafaa6a65653346eede3f6be47c160842c192b6e98646"}, {"erts/emulator/nifs/common/grisp_spi_nif.c", "71af6571 67e7fe8b94463a589f0ee1a72e6572d5f41b28f685481cfcef0949d7"}, {"erts/emulator/sys/unix/erl_main.c", "713846 4d3d2f6e51ee1580128ea0b0957842e21ee78a00a01c31b280888454e1"}, {"post-install-00500-clean.sh", "8257667f99 ce2814c6f15f3b9b1c35765f986e9da1661736402dc91f78ad52a"}, {"xcomp/erl-xcomp-arm-rtems5-27.conf", "4c9e8c89 ae1e15b6540648c54f32d834ab0ce45f891bcac416ad608624b33750"}, {"xcomp/erl-xcomp-arm-rtems5.conf", "6340b8cc 1bae3f205ea0d5323a9e7054efa804231d67b86069208c148d924c00"}], value: "965a12b8e5895ee11cbec834499b0a3e2b68 a570476218904dbaa9ded4b6377b"}, overlay: %{nifs: %{"erts/emulator/nifs/common/grisp_gpio_nif.c" => %{name : "erts/emulator/nifs/common/grisp_gpio_nif.c", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp /grisp/grisp2/common/build/nifs/grisp_gpio_nif.c", target: "erts/emulator/nifs/common/grisp_gpio_nif.c", app: :grisp}, "erts/emulator/nifs/common/grisp_hw_nif.c" => %{name: "erts/emulator/nifs/common/grisp_hw_n if.c", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default/common/build/nifs/grisp_hw _nif.c", target: "erts/emulator/nifs/common/grisp_hw_nif.c", app: :grisp}, "erts/emulator/nifs/common/gri sp_i2c_nif.c" => %{name: "erts/emulator/nifs/common/grisp_i2c_nif.c", source: "/media/Dev/Internal/elixir /grisp_test/deps/grisp/grisp/default/common/build/nifs/grisp_i2c_nif.c", target: "erts/emulator/nifs/comm on/grisp_i2c_nif.c", app: :grisp}, "erts/emulator/nifs/common/grisp_rtems_nif.c" => %{name: "erts/emulato r/nifs/common/grisp_rtems_nif.c", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default /common/build/nifs/grisp_rtems_nif.c", target: "erts/emulator/nifs/common/grisp_rtems_nif.c", app: :grisp }, "erts/emulator/nifs/common/grisp_spi_nif.c" => %{name: "erts/emulator/nifs/common/grisp_spi_nif.c", so urce: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default/common/build/nifs/grisp_spi_nif.c", target: "erts/emulator/nifs/common/grisp_spi_nif.c", app: :grisp}}, files: %{"erts/emulator/sys/unix/erl _main.c" => %{name: "erts/emulator/sys/unix/erl_main.c", source: "/media/Dev/Internal/elixir/grisp_test/d eps/grisp/grisp/default/common/build/files/erts/emulator/sys/unix/erl_main.c", target: "erts/emulator/sys /unix/erl_main.c", app: :grisp}, "xcomp/erl-xcomp-arm-rtems5-27.conf" => %{name: "xcomp/erl-xcomp-arm-rte ms5-27.conf", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/grisp2/27/build/files/xcomp /erl-xcomp-arm-rtems5-27.conf", target: "xcomp/erl-xcomp-arm-rtems5-27.conf", app: :grisp}, "xcomp/erl-xc omp-arm-rtems5.conf" => %{name: "xcomp/erl-xcomp-arm-rtems5.conf", source: "/media/Dev/Internal/elixir/gr isp_test/deps/grisp/grisp/grisp2/common/build/files/xcomp/erl-xcomp-arm-rtems5.conf", target: "xcomp/erl- xcomp-arm-rtems5.conf", app: :grisp}}, hooks: %{post_install: %{~c"post-install-00500-clean.sh" => %{name : "post-install-00500-clean.sh", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/grisp2/c ommon/build/hooks/post-install-00500-clean.sh", app: :grisp}}}, patches: %{"00100-rtems.patch" => %{name: "00100-rtems.patch", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default/27/build/pa tches/00100-rtems.patch", target: "00100-rtems.patch", app: :grisp}, "00300-drivers-nifs.patch" => %{name : "00300-drivers-nifs.patch", source: {:template, "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp /default/27/build/patches/00300-drivers-nifs.patch.mustache"}, target: "00300-drivers-nifs.patch", app: : grisp}}, drivers: %{"erts/emulator/drivers/unix/grisp_termios_drv.c" => %{name: "erts/emulator/drivers/un ix/grisp_termios_drv.c", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/grisp2/common/bu ild/drivers/grisp_termios_drv.c", target: "erts/emulator/drivers/unix/grisp_termios_drv.c", app: :grisp}} }}, handlers: %{shell: {#Function<2.112262286/3 in Mix.Tasks.Grisp.Deploy.shell_handler>, %{}}, release: {#Function<3.112262286/2 in Mix.Tasks.Grisp.Deploy.release_handler>, nil}, event: {#Function<1.112262286/ 2 in Mix.Tasks.Grisp.Deploy.event_handler>, %{name: ~c"grisp_test", version: ~c"0.1.0"}}}, deploy: %{over lay: %{files: %{"erl_inetrc" => %{name: "erl_inetrc", source: "/media/Dev/Internal/elixir/grisp_test/deps /grisp/grisp/default/common/deploy/files/erl_inetrc", target: "erl_inetrc", app: :grisp}, "etc/dhcpcd.con f" => %{name: "etc/dhcpcd.conf", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default/ common/deploy/files/etc/dhcpcd.conf", target: "etc/dhcpcd.conf", app: :grisp}, "etc/hosts" => %{name: "et c/hosts", source: "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default/common/deploy/files/etc /hosts", target: "etc/hosts", app: :grisp}, "etc/resolv.conf" => %{name: "etc/resolv.conf", source: "/med ia/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/default/common/deploy/files/etc/resolv.conf", target: "etc/resolv.conf", app: :grisp}, "grisp.ini" => %{name: "grisp.ini.mustache", source: {:template, "/media /Dev/Internal/elixir/grisp_test/deps/grisp/grisp/grisp2/common/deploy/files/grisp.ini.mustache"}, target: "grisp.ini", app: :grisp}, "loader/entries/erlang.conf" => %{name: "loader/entries/erlang.conf.mustache" , source: {:template, "/media/Dev/Internal/elixir/grisp_test/deps/grisp/grisp/grisp2/common/deploy/files/ loader/entries/erlang.conf.mustache"}, target: "loader/entries/erlang.conf", app: :grisp}}}}, apps: %{gri sp_test: %{dir: "/media/Dev/Internal/elixir/grisp_test", deps: [:mapz, :grisp]}, grisp: %{dir: "/media/De v/Internal/elixir/grisptest/deps/grisp", deps: [:mapz]}, mapz: %{dir: "/media/Dev/Internal/elixir/grisp test/deps/mapz", deps: []}}, otp_version: {[27, 0, 1], "", "", "27.0.1"}, package: %{meta: %{etag: ~c"\"7 bd627391f86cf5d645db10f74773b4f-9\""}, file: "/home/rashid/.cache/grisp/packages/grisp2/otp/grisp_otp_bui ld_27.0.1_965a12b8e5895ee11cbec834499b0a3e2b68a570476218904dbaa9ded4b6377b.tar.gz", state: :not_modified, tmp: "/home/rashid/.cache/grisp/packages/grisp2/otp/grisp_otp_build_27.0.1_965a12b8e5895ee11cbec834499b0 a3e2b68a570476218904dbaa9ded4b6377b.tar.gz.temp"}, custom_build: false, release: %{name: ~c"myapp", versi on: ~c"0.1.0", dir: ~c"/media/Dev/Internal/elixir/grisp_test/_build/dev/rel/myapp", erts: "/home/rashid/. cache/grisp/grisp2/otp/27.0.1/965a12b8e5895ee11cbec834499b0a3e2b68a570476218904dbaa9ded4b6377b/install"}, platform: :grisp2, otp_version_requirement: ~c"27.0.1", project_root: ~c"/media/Dev/Internal/elixir/gris p_test", scripts: %{pre_script: "mkdir /tmp/grisp", post_script: :undefined}, paths: %{build: "/home/rash id/.cache/grisp/grisp2/otp/27.0.1/965a12b8e5895ee11cbec834499b0a3e2b68a570476218904dbaa9ded4b6377b/build" , install: "/home/rashid/.cache/grisp/grisp2/otp/27.0.1/965a12b8e5895ee11cbec834499b0a3e2b68a570476218904 dbaa9ded4b6377b/install", package: "/home/rashid/.cache/grisp/grisp2/otp/27.0.1/965a12b8e5895ee11cbec8344 99b0a3e2b68a570476218904dbaa9ded4b6377b/package", package_cache: ~c"/home/rashid/.cache/grisp/packages/gr isp2/otp"}, package_source: :online, event_stack: [:deploy, :distribute], otp_version_list: ["common", "2 7", "27.0", "27.0.1"], sorted_apps: [:grisp, :grisp_test]}

(grisp_tools 2.7.0) /media/Dev/Internal/elixir/grisp_test/deps/grisp_tools/src/grisp_tools_deploy.erl

:49: :grisp_tools_deploy.distribute/1 (stdlib 6.0.1) lists.erl:2151: :lists.foldl_1/3 (grisp_tools 2.7.0) /media/Dev/Internal/elixir/grisp_test/deps/grisp_tools/src/grisp_tools_util.erl:6 4: :grisp_tools_util.weave/2 (stdlib 6.0.1) lists.erl:2151: :lists.foldl_1/3 (grisp_tools 2.7.0) /media/Dev/Internal/elixir/grisp_test/deps/grisp_tools/src/grisp_tools_util.erl:5 1: :grisp_tools_util.weave/2 (mix_grisp 0.2.0) lib/mix/tasks/grisp/deploy.ex:54: Mix.Tasks.Grisp.Deploy.run/1 (mix 1.17.2) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5 (mix 1.17.2) lib/mix/cli.ex:96: Mix.CLI.run_task/2

When compiling the dependencies (mix deps.compile) I note the following:

< make: Entering directory '/media/Dev/Internal/elixir/grisp_test/deps/erlexec/c_src' fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). make: Nothing to be done for 'all'. make: Leaving directory '/media/Dev/Internal/elixir/grisp_test/deps/erlexec/c_src'

Not sure if this is meaningful or just a missing .gitignore...

uname -a:

< Linux gratitude 6.10.8-1-default #1 SMP PREEMPT_DYNAMIC Thu Sep 5 05:47:00 UTC 2024 (db7c2e2) x86_64 x86 _64 x86_64 GNU/Linux

erl version: < Erlang/OTP 27 [erts-15.0.1] [source] [64-bit] [smp:24:24] [ds:24:24:10] [async-threads:1] [jit:ns] [syste mtap]

Eshell V15.0.1 (press Ctrl+G to abort, type help(). for help) 1>

Any suggestions gratefully received.

S

ziopio commented 1 month ago

You just found a bug in the latest grisp_tools release, I can reproduce it, thanks for spotting it. While we work on an hotfix, can you try reverting to version 2.6.1 of grisp_tools?

The mix_grisp plugin depends on {:grisp_tools, "~> 2.5"}, if you add it in your project and force the version to 2.6.1 or 2.5.0 it might fix it if it was introduced in 2.7.0.

I'll get back once we know more

ziopio commented 1 month ago

To solve this we need to update mix_grisp to be compatible with grisp_tools ~> 2.7.0