-
-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Elixir 1.15 + Umbrella Project + Dialyzer issues #508
Comments
I prefer keeping that setting safer. I did find that adding: {:dialyxir, "~> 1.3", only: [:dev, :test], runtime: false}, into every sub-application worked around everything. See this example commit: elliottneilclark/dialyzer_new_umbrella@aaba7c6 I'm not sure why credo can work when added to the umbrella, but dialyzer fails. |
Dialyxir has a runtime dependency on |
@elliottneilclark Adding to each umbrella app seems to fix the |
Temporary fix: jeremyjh/dialyxir#508 (comment)
I came here having a similar problem with elixir 1.15.2 and erlang 26.0.2. After reading this issue I tried adding $ mix dialyzer
** (UndefinedFunctionError) function Dialyxir.Output.info/1 is undefined (module Dialyxir.Output is not available)
(dialyxir 1.3.0) Dialyxir.Output.info("Finding suitable PLTs")
(dialyxir 1.3.0) lib/mix/tasks/dialyzer.ex:172: Mix.Tasks.Dialyzer.run/1
(mix 1.15.2) lib/mix/task.ex:447: anonymous fn/3 in Mix.Task.run_task/5
(mix 1.15.2) lib/mix/cli.ex:92: Mix.CLI.run_task/2
Error: exit status 1 |
@Toady00 Did you try adding |
@carlogilmar I didn't want to disable that functionality if I could help it so no, I didn't add that. But it works as expected adding it to every child's mix.exs |
Came to comment this also solved the issue for us (umbrella app). Thanks! |
* Bump appsginal, ex_phone_number, hackney, sentry * Bump dialyxir * Bump more stuff * Fix broken test * Bump ymlr (major but apparently passing) * Bump phoenix_html yarn package * Bump more stuff * Bump Elixir & NodeJS * Try to fix `function Dialyxir.Output.info/1 is undefined (module Dialyxir.Output is not available)` * Fix warning * Try to fix dialyzer error * Try to fix Dialyzer error See jeremyjh/dialyxir#508 (comment) * Mix format (1.15) * Update phoenix_live_view package * Fix warnings * Bump jumper * Bump unsafe * Bump sweet_xml * Bump dialyxir * Go back to mainstream vex (now fixed) Fix at: - CargoSense/vex#68
This seems to be fixed with Elixir 1.15.6, the workaround is not needed anymore for umbrella projects. |
I'm seeing the same
when running dialyxir on ElixirLS repo. Those apps are explicitly listed in |
Environment
Current behavior
I have an umbrella project with Phoenix + LiveView that worked well on 1.14 and is broken in 1.15. To reproduce it's pretty easy:
{:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false}
to the depsmix do deps.get, compile
mix dialyzer
This worked with 1.14. I've put together an example repo: https://github.com/elliottneilclark/dialyzer_new_umbrella that will fail with 1.15.0 and work with the latest 1.14. If you already use nix it should be set up to reproduce. https://github.com/elliottneilclark/dialyzer_new_umbrella/blob/830f9c867a1938af97e6e56357fe7d19f2a6b04b/flake.nix#L38 You can change that line to see it work in 1.14
If I add dialyxir as a dependency to each sub-app, it seems to work, however, it complains LOUDLY about missing deps.
Expected behavior
I would expect to be able to upgrade from 1.14 to 1.15 successfully.
https://gist.github.com/elliottneilclark/33cb21c37be951a38268217a8a2e1f1c
The text was updated successfully, but these errors were encountered: