When the .mix folder is created?

Elixir version: 1.8.1
ex_cldr version: 1.8.2

I’m using ex_cldr in my project. (https://github.com/kipcole9/cldr)
It has its own compile task Mix.Tasks.Compile.Cldr, and this task creates .compile.cldr file in manifest_path(by default build/(env)/.mix) folder.

But it fails because build/(env)/.mix folder is not exist.

Generated my_project app
** (File.Error) could not write to file "/Users/me/workspace/project/my_project/_build/dev/.mix/.compile.cldr": no such file or directory
    (elixir) lib/file.ex:1014: File.write!/3
    lib/mix/tasks/compile.cldr.ex:288: Mix.Tasks.Compile.Cldr.previous_locales/0
    lib/mix/tasks/compile.cldr.ex:61: Mix.Tasks.Compile.Cldr.run/1
    (mix) lib/mix/task.ex:331: Mix.Task.run_task/3
    (elixir) lib/file.ex:1506: File.cd!/2
    (mix) lib/mix/project_stack.ex:41: Mix.ProjectStack.on_recursing_root/1
    (mix) lib/mix/tasks/compile.all.ex:68: Mix.Tasks.Compile.All.run_compiler/2
    (mix) lib/mix/tasks/compile.all.ex:52: Mix.Tasks.Compile.All.do_compile/4

When the manifest path folder is created?

This folder is not mandatory to be created for elixir projects. If it’s ex_cldr artifact - you probably should create an issue or migrate for newer version of the library.

@nallwhy opened an issue (thanks - I’m the author). Thats from a piece of legacy code of the old ex_cldr 1.x versions which had some architectural issues and an ugly cldr compiler which was replaced last year with the 2.x series that is a much better citizen.

I recommend migrating to ex_cldr version 2.x if you can. I think the only main reason you might not be able to would be if you also need ex_cldr_dates_times which is not yet on the 2.x release series. It will be soon now…

5 Likes