ccavolt

ccavolt

In my mix.exs file, if I try to create an alias with a hex mix task, for example hex.audit or hex.outdated, I get an error saying the task could not be found. I know I have hex installed because the above mix tasks work on the command line, so I’m guessing it has something to do with those mix tasks not being sourced when run as an alias, but I’m unsure how I can fix it. Here’s a larger example:

defp aliases do
    [
      audit: ["hex.audit"]
    ]
end

Showing Posts 1 to 10

dimitarvp

dimitarvp

Is the aliases function actually called inside mix.exs?

ccavolt

ccavolt OP

I think so? All my other non-hex mix tasks work just fine there as aliases.

ccavolt

ccavolt OP

@dimitarvp I think I may have misunderstood your question. Yes, I’m calling it inside mix.exs. I initially thought you were asking if that’s what I should be doing. Like I said above, non-hex aliases are working. So for instance this works:

defp aliases do
  [
    setup: ["deps.get", "deps.compile", "ecto.reset", "assets.setup", "assets.build"]
  ]
end
dimitarvp

dimitarvp

A-ha, I see. Was just making sure. A drive-by contribution if you will. :slight_smile:

ccavolt

ccavolt OP

Is there anyone else that can help with this? I considered using elixirc_paths, but I don’t know what path I would give it, since the hex files are already compiled.

LostKobrakai

LostKobrakai

I just tried your initial example on a project and it seemed to work just fine.

ccavolt

ccavolt OP

Okay, so apparently my example wasn’t specific enough. :sweat_smile:
Upon further examination, the hex mix task has to be at least the third in line in the list. The list can have more than three items in it as long as the hex mix task is number one or two. So for example this works:

defp aliases do
    [
      testtask: ["deps.get", "hex.audit", "deps.compile"]
    ]
end

But this does not:

defp aliases do
    [
      testtask: ["deps.get", "deps.compile", "hex.audit"]
    ]
end

It results in:

** (Mix) The task "hex.audit" could not be found. Did you mean "deps.audit"?
katafrakt

katafrakt

I don’t have a solution, but I was able to reproduce it and note a few things:

  1. If hex.audit is the first task in the alias, it works
  2. If you only alias hex tasks (for example ["hex.info", "hex.audit"]) - it also works

So it would seem that deps tasks somehow disable them :thinking:

ccavolt

ccavolt OP

It’s actually not specific to deps; any non-hex tasks (as you discovered) will cause a failure. For example:

defp aliases do
    [
      testtask3: ["format", "compile", "hex.audit"],
    ]
end
katafrakt

katafrakt

So I traced it down to the fact that after running any non-hex task Code.ensure_loaded(Mix.Tasks.Hex.Audit) returns {:error, :nofile}. But if no other non-hex task was run before, it returns {:module, Mix.Tasks.Hex.Info}. Unfortunately I don’t know why is that, but maybe someone more knowledgeable would have some idea.

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
psy-q
I’m trying to set up Emacs with elixir-ls via lsp-mode and credo via Flycheck. This should mostly be preconfigured as Flycheck picks up c...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews