Skip to main content

We provide a one year long term support on several Decidim versions. The goal is to rely on a stable version of Decidim, that is compatible with most of the modules out there. This document explains how we use semantic versioning, and where to find the long term support versions.

Usage

Add the gem in your Gemfile, in place of decidim :

gem "decidim", 
git: "https://github.com/octree-gva/decidim-lts",
tag: "v0.24.3+0.0.1"

You need to pin the LTS version you want, as post-release tags are ignored by bundle update, as specified in the Semver 2.0.0-rc.2. This is specific to LTS versions, where we want to have full control on version updates.

Process

We forked Decidim in a decidim-lts repository that offers post-releases to backport and fix bugs. This step explain the git flow we use, and how we select the LTS for the year.

When something is added to the LTS?

  1. If a blocking bug is reported on the LTS
  2. Security and dependencies patches.

How do we select the LTS version

  1. Given a release/<version>-stable
  2. The branch did not receive updates for at least three months
  3. The version is compatible with both awesome-decidim and term-customizer

How do we uses post-release tags.

  1. Given a LTS (here 0.24.3):
    1. We make a lts/0.24.3 on our fork
    2. We backport or fix bugs on feature-branch, like fix-stuff
    3. Once reviewed we merge fix-stuff in lts/0.24.3
    4. We push a tag with a post-release tag: v0.24.3+0.0.1

💡 N.B.
We might merge several fixes before pushing a post-release tags, that’s will up to the Repository Maintainer

References