hexpm / hex

Package manager for the Erlang ecosystem.
https://hex.pm
969 stars 184 forks source link

Installing github dependencies broken on main #997

Closed lukaszsamson closed 5 months ago

lukaszsamson commented 1 year ago

Versions

elixir

Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit]

Elixir 1.14.5 (compiled with Erlang/OTP 25)

hex

main@15f9e6605295b61ce8ffe8e64501afc09afac622

To reproduce

Mix.install([{:elixir_ls, github: "elixir-lsp/elixir-ls", tag: "v0.14.6"}])

Result

* Getting elixir_ls (https://github.com/elixir-lsp/elixir-ls.git - v0.14.6)
remote: Enumerating objects: 10404, done.        
remote: Counting objects: 100% (10404/10404), done.        
remote: Compressing objects: 100% (3633/3633), done.        
remote: Total 10404 (delta 6692), reused 10055 (delta 6501), pack-reused 0        
* Getting elixir_sense (https://github.com/elixir-lsp/elixir_sense.git - 71efd1e2efbac43e6c98c525cc879ddd747ac62e)
remote: Enumerating objects: 10083, done.        
remote: Counting objects: 100% (1605/1605), done.        
remote: Compressing objects: 100% (577/577), done.        
remote: Total 10083 (delta 1161), reused 1280 (delta 1017), pack-reused 8478        
* Getting erl2ex (https://github.com/dazuma/erl2ex.git)
remote: Enumerating objects: 1431, done.        
remote: Total 1431 (delta 0), reused 0 (delta 0), pack-reused 1431        
origin/HEAD set to master
* Getting dialyxir_vendored (https://github.com/elixir-lsp/dialyxir.git - 896fa45817c6a1be8ec408577c88ab52c27f6851)
remote: Enumerating objects: 3198, done.        
remote: Counting objects: 100% (386/386), done.        
remote: Compressing objects: 100% (179/179), done.        
remote: Total 3198 (delta 181), reused 359 (delta 169), pack-reused 2812        
* Getting jason_v (https://github.com/elixir-lsp/jason.git - c81537e2a5e1acacb915cf339fe400357e3c2aaa)
remote: Enumerating objects: 1553, done.        
remote: Counting objects: 100% (229/229), done.        
remote: Compressing objects: 100% (87/87), done.        
remote: Total 1553 (delta 160), reused 148 (delta 142), pack-reused 1324        
* Getting path_glob_vendored (https://github.com/elixir-lsp/path_glob.git - origin/vendored)
remote: Enumerating objects: 395, done.        
remote: Counting objects: 100% (395/395), done.        
remote: Compressing objects: 100% (200/200), done.        
remote: Total 395 (delta 179), reused 361 (delta 149), pack-reused 0        
* Getting mix_task_archive_deps (https://github.com/elixir-lsp/mix_task_archive_deps.git)
remote: Enumerating objects: 265, done.        
remote: Counting objects: 100% (57/57), done.        
remote: Compressing objects: 100% (27/27), done.        
remote: Total 265 (delta 20), reused 57 (delta 20), pack-reused 208        
origin/HEAD set to master
Failed to fetch record for elixir_ls_utils from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
Failed to fetch record for elixir_ls_debugger from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
Failed to fetch record for elixir_ls from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
** (Mix.Error) No package with name elixir_ls (from: mix.exs) in registry
    (mix 1.14.5) lib/mix.ex:513: Mix.raise/2
    (hex 2.0.7-dev) lib/hex/remote_converger.ex:319: Hex.RemoteConverger.verify_package_req/4
    (elixir 1.14.5) lib/enum.ex:975: Enum."-each/2-lists^foreach/1-0-"/2
    (hex 2.0.7-dev) lib/hex/remote_converger.ex:304: Hex.RemoteConverger.verify_input/2
    (hex 2.0.7-dev) lib/hex/remote_converger.ex:51: Hex.RemoteConverger.converge/2
    (mix 1.14.5) lib/mix/dep/converger.ex:118: Mix.Dep.Converger.all/4
    (mix 1.14.5) lib/mix/dep/converger.ex:74: Mix.Dep.Converger.converge/4
    iex:1: (file)
iex(1)> Failed to fetch record for jason_v from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
supersimple commented 1 year ago

Hi @lukaszsamson are you still able to reproduce this? I just attempted, using the same elixir/otp versions and did not have an issue. I am going to close for now, but please respond if it is still an issue and I will reopen and investigate further.

lukaszsamson commented 1 year ago

@supersimple @ericmj Still an issue and it breaks ElixirLS install. I just installed main@ 1881f9fe8e0571ba7fdcfc86ecf484913125dc37 and retried the repro steps

elixir --version
Erlang/OTP 25 [erts-13.2.2.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit]

Elixir 1.15.4 (compiled with Erlang/OTP 25)

mix archive.install github hexpm/hex branch main
* Getting new package (https://github.com/hexpm/hex.git - origin/main)
remote: Enumerating objects: 13716, done.        
remote: Counting objects: 100% (1171/1171), done.        
remote: Compressing objects: 100% (578/578), done.        
remote: Total 13716 (delta 707), reused 940 (delta 543), pack-reused 12545        
All dependencies are up to date
Compiling 1 file (.xrl)
Compiling 14 files (.erl)
Compiling 81 files (.ex)
Generated hex app
Generated archive "hex-2.0.7-dev.ez" with MIX_ENV=prod
Found existing entry: /Users/lukaszsamson/.mix/archives/hex-2.0.6
Are you sure you want to replace it with "hex-2.0.7-dev.ez"? [Yn] y
* creating /Users/lukaszsamson/.mix/archives/hex-2.0.7-dev
iex
Erlang/OTP 25 [erts-13.2.2.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit]

Interactive Elixir (1.15.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Mix.install([{:elixir_ls, github: "elixir-lsp/elixir-ls", tag: "v0.14.6"}])
* Getting elixir_ls (https://github.com/elixir-lsp/elixir-ls.git - v0.14.6)
remote: Enumerating objects: 10867, done.        
remote: Counting objects: 100% (2389/2389), done.        
remote: Compressing objects: 100% (756/756), done.        
remote: Total 10867 (delta 1838), reused 1924 (delta 1585), pack-reused 8478        
* Getting elixir_sense (https://github.com/elixir-lsp/elixir_sense.git - 71efd1e2efbac43e6c98c525cc879ddd747ac62e)
remote: Enumerating objects: 11367, done.        
remote: Counting objects: 100% (2895/2895), done.        
remote: Compressing objects: 100% (987/987), done.        
remote: Total 11367 (delta 2073), reused 2493 (delta 1892), pack-reused 8472        
* Getting erl2ex (https://github.com/dazuma/erl2ex.git)
remote: Enumerating objects: 1431, done.        
remote: Total 1431 (delta 0), reused 0 (delta 0), pack-reused 1431        
origin/HEAD set to master
* Getting dialyxir_vendored (https://github.com/elixir-lsp/dialyxir.git - 896fa45817c6a1be8ec408577c88ab52c27f6851)
remote: Enumerating objects: 3198, done.        
remote: Counting objects: 100% (386/386), done.        
remote: Compressing objects: 100% (172/172), done.        
remote: Total 3198 (delta 180), reused 362 (delta 176), pack-reused 2812        
* Getting jason_v (https://github.com/elixir-lsp/jason.git - c81537e2a5e1acacb915cf339fe400357e3c2aaa)
remote: Enumerating objects: 1553, done.        
remote: Counting objects: 100% (229/229), done.        
remote: Compressing objects: 100% (99/99), done.        
remote: Total 1553 (delta 156), reused 150 (delta 130), pack-reused 1324        
* Getting path_glob_vendored (https://github.com/elixir-lsp/path_glob.git - origin/vendored)
remote: Enumerating objects: 395, done.        
remote: Counting objects: 100% (395/395), done.        
remote: Compressing objects: 100% (200/200), done.        
remote: Total 395 (delta 179), reused 361 (delta 149), pack-reused 0        
* Getting mix_task_archive_deps (https://github.com/elixir-lsp/mix_task_archive_deps.git)
remote: Enumerating objects: 265, done.        
remote: Counting objects: 100% (57/57), done.        
remote: Compressing objects: 100% (27/27), done.        
remote: Total 265 (delta 20), reused 57 (delta 20), pack-reused 208        
origin/HEAD set to master
Failed to fetch record for elixir_ls from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
Failed to fetch record for elixir_ls_debugger from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
Failed to fetch record for elixir_ls_utils from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it
** (Mix.Error) No package with name elixir_ls (from: mix.exs) in registry
    (mix 1.15.4) lib/mix.ex:577: Mix.raise/2
    (hex 2.0.7-dev) lib/hex/remote_converger.ex:319: Hex.RemoteConverger.verify_package_req/4
    (elixir 1.15.4) lib/enum.ex:984: Enum."-each/2-lists^foreach/1-0-"/2
    (hex 2.0.7-dev) lib/hex/remote_converger.ex:304: Hex.RemoteConverger.verify_input/2
    (hex 2.0.7-dev) lib/hex/remote_converger.ex:51: Hex.RemoteConverger.converge/2
    (mix 1.15.4) lib/mix/dep/converger.ex:141: Mix.Dep.Converger.all/4
    (mix 1.15.4) lib/mix/dep/converger.ex:74: Mix.Dep.Converger.converge/4
    iex:1: (file)
iex(1)> Failed to fetch record for jason_v from registry (using cache instead)
This could be because the package does not exist, it was spelled incorrectly or you don't have permissions to it

Compare it with 2.0.6

mix local.hex   
Found existing entry: /Users/lukaszsamson/.mix/archives/hex-2.0.7-dev
Are you sure you want to replace it with "https://builds.hex.pm/installs/1.14.0/hex-2.0.6.ez"? [Yn] y
* creating /Users/lukaszsamson/.mix/archives/hex-2.0.6

iex          
Erlang/OTP 25 [erts-13.2.2.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit]

Interactive Elixir (1.15.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Mix.install([{:elixir_ls, github: "elixir-lsp/elixir-ls", tag: "v0.14.6"}])

...
Generated language_server app
:ok
lukaszsamson commented 11 months ago

I did a bisect and the commit that broke that was https://github.com/hexpm/hex/commit/8619cc8bf7852d86b5fb3d2bd2bb48ddc0f16004 @ericmj

ericmj commented 7 months ago

@lukaszsamson Can you try with mix archive.install github hexpm/hex branch ericmj/fix-umbrella-deps to see if it fixes your issue?

lukaszsamson commented 6 months ago

@ericmj I can confirm your patch is fixing the issue. Thanks