Hi,

As of Elixir 1.13, project specific mix tasks such as `mix test`, can only 
be called from project root.

This is okay when I have to run `npm install` in the `assets` directory in 
a phoenix project,  but has the side effect of making repetitive 
tasks/commands in a subdirectory quite tedious (because I have to cd a 
lot), especially if I have to run a mix task after running the command.

Naturally, I have 2 shell sessions while developing - one for running mix 
tasks, and the other for actual development - editing files, running 
commands etc. Switching between the two sessions can mean using a quick 
keystroke at best, or removing my hands from keyboard and using the mouse 
at worst. This can quickly become irritating if I have to switch sessions 
often and I don't know the keystroke for my terminal.

The rake <https://github.com/ruby/rake> build tool on the other hand, 
allows for calling rake in a project subdirectory by changing rake's 
working directory to project root using this function 
<https://github.com/ruby/rake/blob/5c60da8644a9e4f655e819252e3b6ca77f42b7af/lib/rake/application.rb#L678-L688>.
 
Rake then runs the required task.

This would not be possible for example make, where the buildlogic 
(Makefiles) are found in directories with project source code.

However, rake has all build logic in a Rakefile, or in the `rakelib` 
directory. Similarly, mix has all tasks in `lib/mix/tasks/`. Thus, I feel 
allowing mix to be called in project subdirs, will not have any problems.

I propose that mix allows project specific mix tasks to be called in a 
project subdirectory.

Regards,
Benjamin Philip

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/71e3417b-ae1c-48e3-92f3-524d232f88d0n%40googlegroups.com.

Reply via email to