After upgrading to the latest macOS Sonoma 14.0, I had to reinstall erlang and elixir plugins and choose the latest versions:
- erlang
26.1.1
- elixir
1.15.6
I followed the Pragmatic Programmers - programming-phoenix-liveview_B10.0
book and was building the Pento app which was working fine just before the update and used elixir 1.15.2-otp-25
version.
Now the below function:
defmodule PentoWeb.ProductLive.FormComponent do
use PentoWeb, :live_component
alias Pento.Catalog
...
def params_with_image(socket, params) do
path =
socket
|> consume_uploaded_entries(:image, &upload_static_file/2)
|> List.first()
Map.put(params, "image_upload", path)
end
...
end
raises a compilation error:
Compiling 47 files (.ex)
error: undefined function consume_uploaded_entries/3 (expected PentoWeb.ProductLive.FormComponent to define such a function or for it to be imported, but none are available)
lib/pento_web/live/product_live/form_component.ex:53: PentoWeb.ProductLive.FormComponent.params_with_image/2
== Compilation error in file lib/pento_web/live/product_live/form_component.ex ==
** (CompileError) lib/pento_web/live/product_live/form_component.ex: cannot compile module PentoWeb.ProductLive.FormComponent (errors have been logged)
Here is the output of the used Elixir/OTP versions:
elixir -v
Erlang/OTP 26 [erts-14.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]
Elixir 1.15.6 (compiled with Erlang/OTP 26)
Even after installing erlang 25
version as described in this issue, and using the previously installed elixir/phoenix version elixir 1.15.2-otp-25
:
Erlang/OTP 25 [erts-13.2.2.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Elixir 1.15.2 (compiled with Erlang/OTP 25)
it still fails . Is it due to the macOS upgrade or smth else then?
Any idea?