When Mix keeps recompiling your whole project

If you are running Arch Linux and after a recent system upgrade Mix thinks it needs to recompile your whole project all the time, you might be experiencing an incompatibility between Erlang and zlib > 1.2.8. This is especially annoying with Phoenix, where the code reloader will recompile your project on every request now.

To fix this you should upgrade Erlang to the latest version. If you can’t, downgrade zlib to 1.2.8. To do this on Arch, follow these steps:

  1. Download zlib 1.2.8 from the official Arch archive
  2. Install that version with sudo pacman -U PATH_TO_WHERE_YOU_DOWNLOADED_THAT_FILE
  3. Add zlib to the IgnorePkg section of /etc/pacman.conf until you can upgrade Erlang: IgnorePkg = zlib

Now recompile Erlang and you should be fine.