nix2intel
Compiling igniter ** (Mix) Can't continue due to errors on dependencies
i’m using the new ash installer and i’m getting an error right after compiling igniter
- running mix deps.compile
We are almost there! The following steps are missing:
$ cd test
Then configure your database in config/dev.exs and run:
$ mix ecto.create
Start your Phoenix app with:
$ mix phx.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phx.server
installing igniter ![]()
compiling igniter ⢽
compiling igniter ![]()
** (Mix) Can’t continue due to errors on dependencies
how can I get it to work, it looks like ash isn’t in the dependencies for the application in mix.exs, any help would be appreciated.
Marked As Solved
nix2intel
what if I were to tell you that it was a space in the name with a certain length? When I do
sh <(curl 'https://ash-hq.org/new/hairbnb?install=phoenix') \
&& cd hairbnb \
&& mix igniter.install \
ash_phoenix ash_json_api ash_postgres ash_authentication \
ash_authentication_phoenix ash_admin ash_state_machine \
ash_paper_trail cloak ash_cloak \
--auth-strategy password \
--yes
The above works, but the below will fail.
sh <(curl 'https://ash-hq.org/new/some_long_name_with_spaces?install=phoenix') \
&& cd some_long_name_with_spaces \
&& mix igniter.install \
ash_phoenix ash_json_api ash_postgres ash_authentication \
ash_authentication_phoenix ash_admin ash_state_machine ash_paper_trail cloak \
ash_cloak \
--auth-strategy password \
--yes
I get the error that
Issues:
- ** (Rewrite.SourceError) could not write to file “lib/some_long_name_with_spaces/application.ex”: file changed since reading
i’ll pull that down, connect, and get you a copy of that debug.
Also Liked
zachdaniel
Wowee, that was a rabbit hole
Fixed versions are released. Here is what was happening:
Duplicate files were being added into the rewrite struct, due to how in some places (when adding a glob), we were adding files by absolute path, instead of relative to CWD path.
The kicker is how we were alerted to this problem
The reason that it only happened when the app name was longer is because rewrite uses Task.async_stream to write files in parallel. Inside of that stream each thing reads its original contents and then writes it if it hasn’t changed. The slight additional extra time that it took to either read the file or hash the file name (not sure which) for the longer file names, changed the performance of the writing enough that one of the tasks was slow enough to see the new file contents from one of the other tasks completing and writing its file contents. Now there are no duplicates because everything is using relative paths.
This could also have been the source of other subtle bugs ![]()
Thank you for your help in figuring this one out!
nix2intel
This is on an arm linux box (asahi linux) the plot thickens ![]()
nix2intel
I know this is a plea for help but this is really cool i’ll add!
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








