Mix.install: Always download

Hi Everyone!!

Say I have:

Mix.install([
  {:foo, git: "https://myhost.com/whatever/foo.git"}
])

but i always want the latest from main, so this:

Mix.install([
  {:foo, git: "https://myhost.com/whatever/foo.git",
         tag: "main"}
])

which doesnt work, as it is caching (i assume).

So, what would always get me the HEAD of main?

Thx!!

1 Like

use branch: "main"

2 Likes

That doesnt seem to pull the branch everytime.

Maybe im doing it wrong?

I don’t think you can do this automatically. You need to call mix deps.update foo to fetch the latest.

1 Like

Oh sorry you are using Mix.install. Try using the force option

3 Likes

ugh! was focused on the Mix.install docs–which point you to mix deps–and didnt go back to the call of it.

so i tried it and am being told it cant recursively delete (File.rm_rf!) the cached files?!!?

ill poke around a bit more … but not liking my chances.

well, no luck because on 2nd run to verify this will re-pull (though it looks good) using force: true, deleting the cache is failing as the symlink’s target doesnt exist??!! BUG?

** (File.Error) could not remove files and directories recursively from "c:/Users/***/AppData/Local/mix/Cache/installs/elixir-1.13.3-erts-10.7/bc559022e7fc1b4f933fabb38cb6b669": not owner
    (elixir 1.13.3) lib/file.ex:1292: File.rm_rf!/1
    (mix 1.13.3) lib/mix.ex:692: Mix.install/2
    .github/actions/pr_basics.exs:1: (file)

c:\Users\***\***\Documents\***\github\***>dir c:\Users\***\AppData\Local\mix\Cache\installs\elixir-1.13.3-erts-10.7\bc559022e7fc1b4f933fabb38cb6b669\_build\dev\lib\certifi\

Volume in drive C is OSDisk

Directory of c:\Users\***\AppData\Local\mix\Cache\installs\elixir-1.13.3-erts-10.7\bc559022e7fc1b4f933fabb38cb6b669\_build\dev\lib\certifi

05/31/2022  09:01 AM    <DIR>          .
05/31/2022  09:01 AM    <DIR>          ..
05/31/2022  08:42 AM    <SYMLINKD>     priv [\\?\c:\Users\***\AppData\Local\mix\Cache\installs\elixir-1.13.3-erts-10.7\bc559022e7fc1b4f933fabb38cb6b669\deps\certifi\priv]
               0 File(s)              0 bytes
               3 Dir(s)  45,843,521,536 bytes free

c:\Users\***\***\Documents\***\github\***>dir c:\Users\***\AppData\Local\mix\Cache\installs\elixir-1.13.3-erts-10.7\bc559022e7fc1b4f933fabb38cb6b669\deps\
The system cannot find the file specified.

oh goodness! ignore me: i was running in an elevated git bash which seems to get itself confused who is running and who owns what.

works just find from a basic cmd.exe … thx!

2 Likes