Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Application upgrades DSL
Elixir
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.gitignore
README.md
mix.exs
package.head.exs

README.md

Somlos

(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", Somlos.Module.Add.new(module: AnotherModule)
  step "Update Example.Server", Somlos.Update.new(module: Example.Server)

end

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

Status

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.

Something went wrong with that request. Please try again.