Skip to content
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

mix.deps.update --all downgrades deps even when there are no conflicts #901

Closed
lukaszsamson opened this issue Aug 26, 2021 · 11 comments
Closed

Comments

@lukaszsamson
Copy link

In one of our projects we observe a strange behaviour (on elixir 1.12, hex master)

mix deps.get

runs fine

mix deps.update --all
...
Upgraded:
  dialyxir 1.0.0 => 1.1.0
  phoenix_live_reload 1.2.4 => 1.3.3
Downgraded:
  plug 1.12.1 => 1.10.0
  plug_cowboy 2.5.1 => 2.5.0
  telemetry 0.4.3 => 0.4.0

for some reason it downgrades those packages

mix deps.update plug
mix deps.update plug_cowboy
mix deps.update telemetry

all work fine

There are no conflicts

@ericmj
Copy link
Member

ericmj commented Aug 30, 2021

Please include your mix.exs and mix.lock files.

@ericmj
Copy link
Member

ericmj commented Sep 1, 2021

We have seen similar reports to the issue, but we are not able to reproduce the issue unless we get a mix.exs and mix.lock file in a project where the issue occurs.

If you run into this issue please share your project files here. Extra credit if you can reduce the number of dependencies in your project for which the issue still occurs. Thanks!

@lukaszsamson
Copy link
Author

@ericmj I created a stub project basing on one of our projects that reproduces the issue.

  1. clone git@github.com:lukaszsamson/elixir_deps_resolution_bug_repro.git
  2. mix deps.get (gets deps fine)
  3. mix deps.update --all (why downgrade when upgrading? why it takes so long? all deps' ranges are now quite narrow)
* Updating browser (https://github.com/lukaszsamson/elixir-browser.git - origin/dev)
Resolving Hex dependencies...
The dependency resolver is taking more than 30 seconds. This typically happens when Hex cannot find a suitable set of dependencies that match your requirements. Here are some suggestions:

  1. Do not delete mix.lock. If you want to update some dependencies, do mix deps.update dep1 dep2 dep3

  2. Tighten up your dependency requirements to the latest version. Instead of {:my_dep, ">= 1.0.0"}, try {:my_dep, "~> 3.6"}

Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal_plug 2.0.8
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  telemetry 0.4.0
  unicode_util_compat 0.7.0
Upgraded:
  sweet_xml 0.7.0 => 0.7.1
Downgraded:
  appsignal 2.2.0 => 2.1.5
  appsignal_phoenix 2.0.12 => 2.0.11
  bamboo 1.7.1 => 1.7.0
  ex_aws 2.2.3 => 2.2.2
  postgrex 0.15.10 => 0.15.0
* Updating appsignal_phoenix (Hex package)
* Updating appsignal (Hex package)
* Updating bamboo (Hex package)
* Updating postgrex (Hex package)
* Updating ex_aws (Hex package)
* Updating sweet_xml (Hex package)
  1. mix deps.update postgrex (no conflicts here)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal 2.1.5
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bamboo 1.7.0
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws 2.2.2
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  unicode_util_compat 0.7.0
Upgraded:
  postgrex 0.15.0 => 0.15.10
  telemetry 0.4.0 => 0.4.3
* Updating telemetry (Hex package)
* Updating postgrex (Hex package)
  1. mix deps.update appsignal (still no conflicts)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bamboo 1.7.0
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws 2.2.2
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  postgrex 0.15.10
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  telemetry 0.4.3
  unicode_util_compat 0.7.0
Upgraded:
  appsignal 2.1.5 => 2.2.0
* Updating appsignal (Hex package)
  1. mix deps.update bamboo (why downgrading here? bamboo does not depend on telemetry directly, any other dependancy not changed)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal 2.2.0
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws 2.2.2
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  postgrex 0.15.10
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  unicode_util_compat 0.7.0
Upgraded:
  bamboo 1.7.0 => 1.7.1
Downgraded:
  telemetry 0.4.3 => 0.4.0
* Updating telemetry (Hex package)
* Updating bamboo (Hex package)
  1. mix deps.update telemetry (no conflicts - downgrade was unnecessary)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal 2.2.0
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bamboo 1.7.1
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws 2.2.2
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  postgrex 0.15.10
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  unicode_util_compat 0.7.0
Upgraded:
  telemetry 0.4.0 => 0.4.3
* Updating telemetry (Hex package)
  1. mix deps.update ex_aws (no conflicts)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal 2.2.0
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bamboo 1.7.1
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  postgrex 0.15.10
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  telemetry 0.4.3
  unicode_util_compat 0.7.0
Upgraded:
  ex_aws 2.2.2 => 2.2.4
* Updating ex_aws (Hex package)
  1. mix deps.update appsignal_phoenix (why downgrade here?
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bamboo 1.7.1
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws 2.2.4
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  postgrex 0.15.10
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  telemetry 0.4.3
  unicode_util_compat 0.7.0
Downgraded:
  appsignal 2.2.0 => 2.1.5
* Updating appsignal (Hex package)
  1. mix deps.update appsignal (again no conflicts, we now have all deps updated)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  absinthe 1.6.5
  absinthe_plug 1.5.8
  appsignal_phoenix 2.0.11
  appsignal_plug 2.0.8
  bamboo 1.7.1
  bcrypt_elixir 2.3.0
  certifi 2.6.1
  comeonin 5.3.2
  connection 1.1.0
  corsica 1.1.3
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  db_connection 2.4.0
  decimal 1.9.0
  decorator 1.4.0
  deferred_config 0.1.1
  dialyxir 1.1.0
  ecto 3.7.1
  ecto_sql 3.7.0
  elixir_make 0.6.2
  erlex 0.2.6
  ex2ms 1.6.1
  ex_aws 2.2.4
  ex_aws_s3 2.3.0
  ex_machina 2.7.0
  ex_rated 2.0.1
  excoveralls 0.14.2
  file_system 0.2.10
  gen_stage 1.1.1
  geolix 0.18.0
  gettext 0.18.2
  hackney 1.17.4
  httpoison 1.8.0
  idna 6.1.1
  jason 1.2.2
  meck 0.9.2
  metrics 1.0.1
  mime 1.6.0
  mimerl 1.2.0
  mmdb2_decoder 1.1.0
  mock 0.3.7
  mogrify 0.9.1
  nimble_csv 1.1.0
  nimble_parsec 1.1.0
  parse_trans 3.3.1
  peerage 1.0.3
  phoenix 1.5.12
  phoenix_ecto 4.4.0
  phoenix_html 3.0.0
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.0
  plug_cowboy 2.5.0
  plug_crypto 1.2.2
  poison 4.0.1
  poolboy 1.5.2
  postgrex 0.15.10
  pot 1.0.2
  ranch 1.8.0
  ssl_verify_fun 1.1.6
  stream_data 0.5.0
  sweet_xml 0.7.1
  telemetry 0.4.3
  unicode_util_compat 0.7.0
Upgraded:
  appsignal 2.1.5 => 2.2.0
* Updating appsignal (Hex package)

@ericmj
Copy link
Member

ericmj commented Sep 2, 2021

@lukaszsamson Do you have project without an umbrella where you have seen the error? The umbrella with that many dependencies makes it hard for us to debug.

@lukaszsamson
Copy link
Author

I've found a smaller non umbrella repro

  1. clone git@github.com:lukaszsamson/elixir_deps_downgrade_repro.git
  2. mix deps.get
  3. mix deps.update --all
* Updating gradualixir (https://github.com/overminddl1/gradualixir.git - master)
* Updating gradualizer (https://github.com/josefs/Gradualizer.git - master)
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  amqp 1.6.0
  amqp_client 3.8.21
  cowboy 2.9.0
  cowlib 2.11.0
  credentials_obfuscation 2.4.0
  dialyxir 1.1.0
  erlex 0.2.6
  file_system 0.2.10
  gettext 0.18.2
  goldrush 0.1.9
  jason 1.2.2
  jsx 3.1.0
  lager 3.9.2
  meck 0.9.2
  mime 2.0.1
  mock 0.3.7
  phoenix 1.5.12
  phoenix_html 2.14.3
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.1
  plug_crypto 1.2.2
  rabbit_common 3.8.21
  ranch 1.8.0
  recon 2.5.1
  telemetry 0.4.3
Downgraded:
  plug_cowboy 2.5.1 => 2.3.0
* Updating plug_cowboy (Hex package)
  1. mix deps.update plug_cowboy
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  amqp 1.6.0
  amqp_client 3.8.21
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  credentials_obfuscation 2.4.0
  dialyxir 1.1.0
  erlex 0.2.6
  file_system 0.2.10
  gettext 0.18.2
  goldrush 0.1.9
  jason 1.2.2
  jsx 3.1.0
  lager 3.9.2
  meck 0.9.2
  mime 2.0.1
  mock 0.3.7
  phoenix 1.5.12
  phoenix_html 2.14.3
  phoenix_live_reload 1.3.3
  phoenix_pubsub 2.0.0
  plug 1.12.1
  plug_crypto 1.2.2
  rabbit_common 3.8.21
  ranch 1.8.0
  recon 2.5.1
  telemetry 0.4.3
Upgraded:
  plug_cowboy 2.3.0 => 2.5.1
* Updating plug_cowboy (Hex package)

I don't recall seeing it that much in smaller projects though

@lukaszsamson
Copy link
Author

@ericmj I isolated it even further. In fact leaving just 2 deps is enough to reproduce it

{:phoenix, "~> 1.5.0"},
{:plug_cowboy, "~> 2.0"}

@ericmj
Copy link
Member

ericmj commented Sep 2, 2021

@lukaszsamson Thank you, that's super helpful!

@NickNeck
Copy link
Contributor

Hi, I have a similar problem and have take a look to the example from @lukaszsamson . I noticed that the order of the dependencies is also important.
When I switch the dependencies I got different results.

      {:plug_cowboy, "~> 2.0"},
      {:phoenix, "~> 1.5.0"}

results in

> mix deps.update --all
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  phoenix 1.5.0
  phoenix_pubsub 2.0.0
  plug_cowboy 2.5.2
  plug_crypto 1.2.2
  ranch 1.8.0
Upgraded:
  mime 1.6.0 => 2.0.1 (major)
  plug 1.10.0 => 1.12.1
  telemetry 0.4.0 => 0.4.3
* Updating plug (Hex package)
* Updating telemetry (Hex package)
* Updating mime (Hex package)

and

      {:phoenix, "~> 1.5.0"},
      {:plug_cowboy, "~> 2.0"}

results in

> mix deps.update --all
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  cowboy 2.9.0
  cowboy_telemetry 0.3.1
  cowlib 2.11.0
  phoenix 1.5.0
  phoenix_pubsub 2.0.0
  plug_cowboy 2.5.2
  plug_crypto 1.2.2
  ranch 1.8.0
Downgraded:
  mime 2.0.1 => 1.6.0 (major)
  plug 1.12.1 => 1.10.0
  telemetry 0.4.3 => 0.4.0
* Updating plug (Hex package)
* Updating mime (Hex package)
* Updating telemetry (Hex package)

diff mix.lock.a mix.lock.b

5c5
<   "mime": {:hex, :mime, "1.6.0", "dabde576a497cef4bbdd60aceee8160e02a6c89250d6c0b29e56c0dfb00db3d2", [:mix], [], "hexpm", "31a1a8613f8321143dde1dafc36006a17d28d02bdfecb9e95a880fa7aabd19a7"},
---
>   "mime": {:hex, :mime, "2.0.1", "0de4c81303fe07806ebc2494d5321ce8fb4df106e34dd5f9d787b637ebadc256", [:mix], [], "hexpm", "7a86b920d2aedce5fb6280ac8261ac1a739ae6c1a1ad38f5eadf910063008942"},
8c8
<   "plug": {:hex, :plug, "1.10.0", "6508295cbeb4c654860845fb95260737e4a8838d34d115ad76cd487584e2fc4d", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "422a9727e667be1bf5ab1de03be6fa0ad67b775b2d84ed908f3264415ef29d4a"},
---
>   "plug": {:hex, :plug, "1.12.1", "645678c800601d8d9f27ad1aebba1fdb9ce5b2623ddb961a074da0b96c35187d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d57e799a777bc20494b784966dc5fbda91eb4a09f571f76545b72a634ce0d30b"},
12c12
<   "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm", "e9e3cacfd37c1531c0ca70ca7c0c30ce2dbb02998a4f7719de180fe63f8d41e4"},
---
>   "telemetry": {:hex, :telemetry, "0.4.3", "a06428a514bdbc63293cd9a6263aad00ddeb66f608163bdec7c8995784080818", [:rebar3], [], "hexpm", "eb72b8365ffda5bed68a620d1da88525e326cb82a75ee61354fc24b844768041"},

@Mazyod
Copy link

Mazyod commented Sep 11, 2021

Wow, I've been trying to figure out why plug was downgraded after deps.unlock, but eventually, the deps reordering trick worked 👍

Upgraded:
  mime 1.6.0 => 2.0.1 (major)
  phoenix_html 3.0.0 => 3.0.3
  plug 1.10.0 => 1.12.1
  telemetry 0.4.2 => 0.4.3

@ericmj
Copy link
Member

ericmj commented Sep 17, 2021

We may have possible fix for this issue in the main branch. Please try it and report back if the issue is fixed or you are still having issues.

Install main: mix archive.install github hexpm/hex.
Install stable: mix local.hex.

@Mazyod
Copy link

Mazyod commented Sep 17, 2021

Thanks for the instructions @ericmj.

  • I reverted the order of the dependencies
  • ran mix deps.update --all, observed the issue
  • installed hex from the main branch
  • ran mix deps.update --all again, the dependencies where upgraded back

... and I am left with a diff in git of just the dependency order in mix.exs :)

Cheers,

@ericmj ericmj closed this as completed Sep 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants