Skip to content

Maintenance policy

さっちゃん edited this page Nov 2, 2018 · 1 revision

We are maintaining these Docker images :

& these Erlang/Elixir libraries :

Here is the maintenance policy of above.

Basic rule

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Support 2 major ver. of both Erlang/OTP & Elixir

MUST support 2 major ver. of Erlang/OTP & Elixir.

Erlang/OTP has MAJOR.minor.patch.patch versioning & Elixir has SUPER_MAJOR.MAJOR.minor one. We support 2 SUPER_MAJOR & MAJOR ver. We don't support major ver. older than 3 generations.

Example. When Erlang/OTP X.y & Elixir x.Y.z are the latest, we support :

  • Erlang/OTP X.y
  • Erlang/OTP X-1.y
  • Elixir x.Y-1.z
  • Elixir x.Y.z

Respect Semver

We respect Semantic Versioning. 0.y.z is not stable, but we are using them in our production.

Keep latest

SHOULD keep dependencies to latest.

We don't lock patch ver. in most cases. mix.exs is set in ~> major.minor style. We SHOULD NOT rewrite the assignment when the latest & assigned ver. are compatible.

{:example, "~> x.y"},

Use InnerCotton

Use latest or HEAD of InnerCotton. MUST be green mix cotton.lint. SHOULD write Typespecs to all public functions.

Test

SHOULD write tests by ExUnit to all public functions. We want to be the coverage 100%.