SunPoke04

SunPoke04 OP

I don’t use docker also installing docker for a programming language is just weird.

The output is like @Eiji showed, it compiles normally until telemetry.
Output: That’s like, the best I can do to show it, I can’t post images here.

0
Post #11
filmor

filmor

Try running it with the environment DEBUG=1 and/or MIX_DEBUG=1.

0
Post #12
D4no0

D4no0

The first potential issue I spotted is your usage of OTP-27 and elixir compiled with OTP-25, this can be a potential version mismatch.

The next thing to check is phx.new version, I would strongly recommend to to upgrade to the latest generator version and generate a new phoenix project, you can do that by running:

mix local.hex

# Press yes when it asks to override previous verion
mix archive.install hex phx_new

If that still yields no success, then you are most probably missing one of the OTP core libraries. How you are installing your OTP? If you are using kerl, asdf or alternatives you will compile OTP from source, but you will need to have the prerequisite compilation libraries in place to do be able to build OTP.

You should have a similar output if you are compiling from source:

Building Erlang/OTP 25.3 (asdf_25.3), please wait...
WARNING: It appears that a required development package 'libssl-dev' is not installed.
WARNING: It appears that a required development package 'libncurses5-dev' is not installed.
APPLICATIONS DISABLED (See: /home/lucas/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3/otp_build_25.3.log)
 * crypto         : No usable OpenSSL found
 * jinterface     : No Java compiler found
 * odbc           : ODBC library - link check failed
 * ssh            : No usable OpenSSL found
 * ssl            : No usable OpenSSL found

The only apps that you don’t really care being disabled are: wx, odbc, jinterface. If you have crypto listed there, you will be unable to launch a phoenix app, so check out for that too.

1
Post #13
Eiji

Eiji

Oh, that looks interesting …

O sistema não pode encontrar o caminho especificado

Here is a translated version:

The system cannot find the specified path

I would start investigating from here with DEBUG and MIX_DEBUG as previously suggested.

The next thing that catched my eye is last line before red message:

==> zaworld

which most likely is a name of author application. It would not be anything special if there would be no other dependencies left to compile (see my previous message how much it have skipped). Even if there is an environment issue the target application should be compiled last

Just to be sure I have tried to generate 2 apps called a and b. Firstly I have edited b/mix.exs by adding a dependency {:a, "~> 0.1", path: "../a"}. Secondly I put IO.inspectt(:hello_world) at the end of a/lib/a.ex file. Finally I have tried to compile b app and as expected there was no ==> b, see:

$ mix compile
==> a
Compiling 1 file (.ex)

== Compilation error in file lib/a.ex ==
** (UndefinedFunctionError) function IO.inspectt/1 is undefined or private. Did you mean:

      * inspect/1
      * inspect/2
      * inspect/3

    (elixir 1.17.3) IO.inspectt(:hello_world)
    lib/a.ex:20: (file)
    (elixir 1.17.3) lib/kernel/parallel_compiler.ex:429: anonymous fn/5 in Kernel.ParallelCompiler.spawn_workers/8
could not compile dependency :a, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile a --force", update it with "mix deps.update a" or clean it with "mix deps.clean a"

So the author have a very strange edge-case where:

  1. Many dependencies were skipped for some reason
  2. At least message about compilation of main app come way too soon
  3. The could not compile dependency … message happen after going to next step (after telemetry-related output, after skipping dependencies and after at least compilation start message of main app)

@josevalim Could it be a separate compiler/mix issue or maybe I have missed something?

1
Post #14
SunPoke04

SunPoke04 OP

The “cannot find path” “error” is normal here and it happens with other application, it’s a shell/terminal problem, not an elixir problem (It happens when I open my editor, for example).

zaworld is the application name, like, the application it’s trying to build. Not any external one.

1
Post #15
dimitarvp

dimitarvp

How is that normal? Maybe it’s a persistent problem that you simply have not solved yet. Have you tracked it down to its source?

Finally, in order to arrive at a resolution, can you produce a small Git repo that demonstrates the problem?

1
Post #16
Eiji

Eiji

:+1:

In first post:

The command was most probably just:

mix phx.new zaworld

0
Post #17
dimitarvp

dimitarvp

Yes, but there are other elements in the equation like the version of the phx_new generator, and we don’t know for sure if OP didn’t give any other options on the CLI.

I am asking because I just generated a new project and had no problem. But as @D4no0 pointed out, Elixir is 1.17.3 but compiled for Erlang 25, whereas the currently used Erlang on OP’s system is 27. That’s likely the actual problem. (I use Elixir 1.17.3 compiled for Erlang 27, plus I use Erlang 27.)

0
Post #18
Eiji

Eiji

Just tested it. Using asdf I have compiled Erlang first 25.x stable release (25.0) and recompiled Elixir (ref:v1.17.3). Then I have switched back to Erlang latest stable version (27.1.1), generated new phoenix app and compiled dependencies. The output was clear and everything went without any issue.

For sure I’m not using Windows, but it’s not about old Erlang version always failing to build telemetry in every environment.

1
Post #19
dimitarvp

dimitarvp

Yikes. Then it’s either Windows-specific or this “cannot find path” error that OP is brushing off as non-important, is actually important.

0
Post #20