Application upgrades DSL
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


(Sömlös, Swedish for Seamless)

Somlos is a tiny DSL and a convenince helper for describing Erlang/OTP application upgrades. It is capable of generating instructions and appups from beam files, other modules and remote running nodes.

The primary task that Somlos targets to solve is that maintaining individual appups for every release is complicated.

It ain't a magic tool that solves release upgrades. Upgrades are still a hard thing to develop and test, so Somlos only tries to remove some unnecessary obstacles to achieving zen of seamless upgrades.

All application's developer has to do is to write a 'migration' module:

defmodule Example.Migration do
  use Somlos.Migration

  step "Add module AnotherModule", AnotherModule)
  step "Update Example.Server", Example.Server)


Important note: once deployed, step names should not change and steps should not be reordered. If that happens, you're screwed.


Somlos is a quick experiment so far and only supports high-level appup instructions. It will soon get low level instructions support as well.

Not much documentation yet. Look into tests for some minimal examples.