Wallaby with Phoenix 1.16.rc0

Has anyone successfully gotten Wallaby to work with Phoenix 1.16-rc.0?

It’s complaining that it can’t use mime:

Failed to use "mime" (version 2.0.1) because
  plug (version 1.12.1) requires ~> 1.0 or ~> 2.0
  swoosh (version 1.5.0) requires ~> 1.1 or ~> 2.0
  tesla (versions 1.3.0 to 1.3.3) requires ~> 1.0
  mix.lock specifies 2.0.1

** (Mix) Hex dependency resolution failed, change the version requirements
of your dependencies or unlock them (by using mix deps.update or mix deps.unlock).
If you are unable to resolve the conflicts you can try overriding with
{:dependency, "~> 1.0", override: true}

So, as suggested by the output, I add an override mime with:

defp deps do
  # ...
  {:mime, "~> 2.0.1", override: true},
  # ...
end

This leads to further complaints about telemetry (twice):

Failed to use "telemetry" (version 1.0.0) because
  cowboy_telemetry (version 0.4.0) requires ~> 1.0
  db_connection (version 2.4.0) requires ~> 0.4 or ~> 1.0
  ecto (version 3.7.1) requires ~> 0.4 or ~> 1.0
  ecto_sql (version 3.7.0) requires ~> 0.4.0 or ~> 1.0
  phoenix (version 1.6.0-rc.0) requires ~> 0.4 or ~> 1.0
  phoenix_live_view (version 0.16.3) requires ~> 0.4.2 or ~> 1.0
  plug (version 1.12.1) requires ~> 0.4.3 or ~> 1.0
  swoosh (version 1.5.0) requires ~> 0.4.2 or ~> 1.0
  telemetry_metrics (version 0.6.1) requires ~> 0.4 or ~> 1.0
  telemetry_poller (version 1.0.0) requires ~> 1.0
  tesla (versions 1.3.0 to 1.3.2) requires ~> 0.3
  mix.lock specifies 1.0.0


Failed to use "telemetry" (version 1.0.0) because
  cowboy_telemetry (version 0.4.0) requires ~> 1.0
  db_connection (version 2.4.0) requires ~> 0.4 or ~> 1.0
  ecto (version 3.7.1) requires ~> 0.4 or ~> 1.0
  ecto_sql (version 3.7.0) requires ~> 0.4.0 or ~> 1.0
  phoenix (version 1.6.0-rc.0) requires ~> 0.4 or ~> 1.0
  phoenix_live_view (version 0.16.3) requires ~> 0.4.2 or ~> 1.0
  plug (version 1.12.1) requires ~> 0.4.3 or ~> 1.0
  swoosh (version 1.5.0) requires ~> 0.4.2 or ~> 1.0
  telemetry_metrics (version 0.6.1) requires ~> 0.4 or ~> 1.0
  telemetry_poller (version 1.0.0) requires ~> 1.0
  tesla (version 1.3.3) requires ~> 0.4
  mix.lock specifies 1.0.0

** (Mix) Hex dependency resolution failed, change the version requirements of your dependencies or unlock them (by using mix deps.update or mix deps.unlock). If you are unable to resolve the conflicts you can try overriding with {:dependency, "~> 1.0", override: true}

So I try overriding:

defp deps do
  # ...
  {:telemetry_metrics, "~> 0.6", override: true},
  {:telemetry_poller, "~> 1.0", override: true},
  # ..
end

(…because {:telemetry} doesn’t exist)

This has no effect.

I’ve also tried $ rm -rf deps && mix deps.get to no avail.

$ mix -f deps mix.lock && mix deps.get causes an indefinite hand on Resolving hex dependencies...

I realize that release candidates are going to have problems but I’m just wondering if anyone has worked around this. I’m gun-shy about opening an issue to to 1.16 being in rc. Also, I can’t exclusively use LiveView tests as my app has a JS widget with drag and drop that LiveView tests don’t support.

Thanks!

Ok, never mind… :telemetry does exist, gah.

{:telemetry, "~> 1.0.0", override: true}

Hi, I think this is due to one of our dependencies using the Tesla library. That library was just bumped to relax the Tesla version constraint.

I’ll update Wallaby and cut a release.

1 Like

Oh, even better. Thank you!

I released v0.29.0. Let me know if that works out for you.

3 Likes

Yep, no issues installing deps now, thanks!

I’m having a lot of trouble getting anything to work with LiveView (screenshots just show a blank screen). I’ve followed all the installation guides (and gone over them a few times) and I do see some old issues around this, but mostly around db sharing. I will keep plugging away at and come back with more info if I can’t figure it out.

If you need more help, please open a GitHub discussion on the wallaby repo and link to it from here, if you don’t mind.

The fix for my problem was to change server: false to server: true in config/test.exs:

config :my_app, MyAppWeb.Endpoint,
  http: [ip: {127, 0, 0, 1}, port: 4002],
  server: true

I see that this is a new default for Phoenix 1.16 apps.

Oops, got our messages crossed. I’ve opened an issue: