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!!

use branch: "main"

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.

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

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!