Elixir/OTP and Dependencies Update Best Practices

Hi everyone!

I wonder if there are any community-approved guidelines for updating a moderately old system (i.e., Elixir 1.9.0 compiled with Erlang/OTP 20) with a whole bunch of older libraries.

My intuitive approach would be to

  • first apply all the non-breaking updates for all the libraries that will still work with my Elixir/OTP, then
  • update Elixir and OTP to the current ones, and then
  • again update all the libraries,
    probably repeating this several times and rewriting some outdated code.

Is there any better way? What tools should I look for? Is there probably some book on the topic?

Thank you all in advance!


I found Hex diff and mix hex.outdated really useful for gradual upgrade (new versions of hex even generate a link to Hex diff). Also look through the OTP release notes as there were some significant changes between the releases.