barrel-db / rebar3_elixir_compile

Elixir rebar3 compiler plugin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Trying to get ecto running for the lulz

aerosol opened this issue · comments

commented

I know it's probably pointless due to heavy macro usage, however:

{deps, [
   {ecto, {elixir, "ecto" ,"2.0.0"}},
   {postgrex, {elixir, "postgrex" ,"0.11.2"}}
]}.
$ rebar3 compile
===> Fetching rebar3_elixir ({git,
                                     "https://github.com/barrel-db/rebar3_elixir.git",
                                     {branch,"master"}})
===> Fetching rebar3_hex ({pkg,<<"rebar3_hex">>,<<"2.5.1">>})
===> Downloaded package, caching at /Users/hq1/.cache/rebar3/hex/default/packages/rebar3_hex-2.5.1.tar
===> Compiling rebar3_hex
===> Compiling rebar3_elixir
===> Verifying dependencies...
===> Fetching ecto ({elixir,"ecto","2.0.0"})
Running dependency resolution
Dependency resolution completed
  connection: 1.0.4
  db_connection: 1.0.0-rc.4
  decimal: 1.1.2
  earmark: 1.0.1
  ex_doc: 0.13.0
  inch_ex: 0.5.3
  mariaex: 0.7.7
  poison: 2.2.0
  poolboy: 1.5.1
  postgrex: 0.11.2
  sbroker: 1.0.0-beta.3
* Getting poolboy (Hex package)
  Checking package (https://repo.hex.pm/tarballs/poolboy-1.5.1.tar)
  Using locally cached package
* Getting decimal (Hex package)
  Checking package (https://repo.hex.pm/tarballs/decimal-1.1.2.tar)
Request failed (:timeout)
  Fetch failed. Using locally cached package
* Getting db_connection (Hex package)
  Checking package (https://repo.hex.pm/tarballs/db_connection-1.0.0-rc.4.tar)
Request failed (:timeout)
  Fetch failed. Using locally cached package
* Getting postgrex (Hex package)
  Checking package (https://repo.hex.pm/tarballs/postgrex-0.11.2.tar)
  Using locally cached package
* Getting mariaex (Hex package)
  Checking package (https://repo.hex.pm/tarballs/mariaex-0.7.7.tar)
Request failed (:timeout)
  Fetch failed. Using locally cached package
* Getting sbroker (Hex package)
  Checking package (https://repo.hex.pm/tarballs/sbroker-1.0.0-beta.3.tar)
  Using locally cached package
* Getting poison (Hex package)
  Checking package (https://repo.hex.pm/tarballs/poison-2.2.0.tar)
  Using locally cached package
* Getting ex_doc (Hex package)
  Checking package (https://repo.hex.pm/tarballs/ex_doc-0.13.0.tar)
Request failed (:timeout)
  Fetch failed. Using locally cached package
* Getting inch_ex (Hex package)
  Checking package (https://repo.hex.pm/tarballs/inch_ex-0.5.3.tar)
  Using locally cached package
* Getting earmark (Hex package)
  Checking package (https://repo.hex.pm/tarballs/earmark-1.0.1.tar)
  Using locally cached package
* Getting connection (Hex package)
  Checking package (https://repo.hex.pm/tarballs/connection-1.0.4.tar)
  Using locally cached package
==> connection
Compiling 1 file (.ex)
Generated connection app
==> poolboy (compile)
Compiled src/poolboy_sup.erl
Compiled src/poolboy_worker.erl
Compiled src/poolboy.erl
==> decimal
Compiling 1 file (.ex)
Generated decimal app
==> poison
Compiling 4 files (.ex)
Generated poison app
===> Compiling sbroker
==> db_connection
Compiling 23 files (.ex)
Generated db_connection app
==> postgrex
Compiling 43 files (.ex)
Generated postgrex app
==> mariaex
Compiling 12 files (.ex)
Generated mariaex app
==> ecto
Compiling 68 files (.ex)
Generated ecto app
===> Failed to fetch and copy dep: {elixir,"ecto","2.0.0"}

@aerosol i reproduce it as well. Thanks for the ticket :)

It seems that rebar3_elixir always expect the libs built with an env [1] where ecto disable it [2] and uses shared instead. One possible fix would be checking if this shared folder is created (so we don't have to parse the conf). cc @sivsushruth

[1] https://github.com/barrel-db/rebar3_elixir/blob/master/src/rebar3_elixir_util.erl#L213
[2] https://github.com/elixir-ecto/ecto/blob/master/mix.exs#L12

@benoitc @aerosol #12 allows to compile ecto now. Starting it however requires logger to start. Let me know what you think.

commented

Hey folks, thanks for a blazing fast reaction 🚀
I hope to check it out on weekend.

@aerosol @benoitc Fixed in latest master a8eec56

===> Adding Elixir Libs
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:0] [hipe] [kernel-poll:false] [dtrace]

Eshell V7.3  (abort with ^G)
1> application:ensure_all_started(ecto).
{ok,[logger,decimal,poolboy,ecto]}
2>

@sivsushruth works for me as well. Thanks!