The dependency build is outdated error with getting lib from Github branch

Hello, I have the old version of my library in hex.pm (link). I have created a new branch in my Github and re-write whole project.

Before publishing I want to use it inside a fresh and basic mix new project.

Create a project

mix new user_management --sup

Change user_management mix file to download my new version of lib

  defp deps do
    [
      {:mishka_installer,
       github: "mishka-group/mishka_installer", branch: "refactor-dependencies"}
    ]
  end

Install with mix commands

mix deps.get # has no problem
mix deps.compile # has no problem
mix compile or iex -S mix # **has problem**

Error

➜  user_management mix compile
==> mishka_installer
Compiling 12 files (.ex)
Generated mishka_installer app
==> user_management
Unchecked dependencies for environment dev:
* mishka_installer (https://github.com/mishka-group/mishka_installer.git - refactor-dependencies)
  the dependency build is outdated, please run "mix deps.compile"
** (Mix) Can't continue due to errors on dependencies

What I did after this error

  1. Delete build, deps, mix.lock and re install
  2. I run mix deps.compile as the error said and has no problem but again when you want to use project has top error
  3. Delete lock file of mishka_installer and get the mix get.deps again to create new lock file
  4. Both version of elixir in 2 project I mean mishka_installer and my fresh project in mix files is 1.16
  5. I am using elixir 1.17 in my system with otp 27
  6. I have read many topics in forum :face_with_spiral_eyes:
  7. At last I run this command MIX_DEBUG=1 mix compile
Generated mishka_installer app
<- Ran mix compile.app in 2ms
<- Ran mix compile.all in 479ms
<- Ran mix compile in 482ms
==> user_management
-> Running mix will_recompile (inside UserManagement.MixProject)
<- Ran mix will_recompile in 0ms
Unchecked dependencies for environment dev:
* mishka_installer (https://github.com/mishka-group/mishka_installer.git - refactor-dependencies)
  the dependency build is outdated, please run "mix deps.compile"
** (Mix.Error) Can't continue due to errors on dependencies
    (mix 1.17.1) lib/mix.ex:588: Mix.raise/2
    (mix 1.17.1) lib/mix/tasks/deps.loadpaths.ex:48: Mix.Tasks.Deps.Loadpaths.run/1
    (mix 1.17.1) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
    (stdlib 6.0) timer.erl:590: :timer.tc/2
    (mix 1.17.1) lib/mix/task.ex:519: Mix.Task.with_debug/4
    (mix 1.17.1) lib/mix/tasks/loadpaths.ex:37: Mix.Tasks.Loadpaths.run/1
    (mix 1.17.1) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
    (stdlib 6.0) timer.erl:590: :timer.tc/2

You can see my branch in github: GitHub - mishka-group/mishka_installer at refactor-dependencies

My stuff

MacOS 14.3.1 intel
Erlang/OTP 27 [erts-15.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Elixir 1.17.1 (compiled with Erlang/OTP 27)

Please help me to fix it, thank you in advance

I do not know why it has this behaviour and how to fix it? but I could find the place that did not let me compile the source.

I have a macro GuardedStruct that creates struct and validation and etc for me.

When I use it one time in my whole project I have no problem but if I use it inside 2 module more than one! my project can not be compiled.

for example:

defmodule MishkaUnInstaller.Event do
  use GuardedStruct

  guardedstruct do
    field(:app, String.t(), enforce: true, derive: "validate(not_empty_string)")
  end
end

defmodule MishkaUnInstaller.Hook do
  use GuardedStruct

  guardedstruct do
    field(:app, String.t(), enforce: true, derive: "validate(not_empty_string)")
  end
end

Why it has this compile error? I have many tests in my dev mode and test mode and works perfectly but now does not let me compile? :melting_face: :face_with_spiral_eyes:

It should be noted, it is just happens in the library you want to install from Github, not in your project. it is not limited how much you want to use


Update

I published my lib to hex and tested {:mishka_installer, "~> 0.1.0-alpha.1"} it has this same error.


What weird problem, is it elixir bug?

Did you find any solution?

Hello, See this comment please

I had have to change many code of mine and I left that option of my library, because it needs me to change my approach of passing data from function and do not pass the env from compile to runtime

deleted lines

1 Like