# Rolling release

Dans le domaine du développement logiciel, l'approche rolling release (littéralement « publication roulante », soit « publication continue ») fait référence à un système de développement logiciel en continu, par opposition au système par version, où l'on ne procède à des mises à jour en production qu'à la fin du cycle de développement d'une version du logiciel ou du système tout entier. Il s'agit donc d'un des nombreux types de cycles de vie de publication d'un logiciel.
Il est notamment utilisé par certaines distributions GNU/Linux. Un système rolling release est généralement implémenté par la mise en œuvre de petites et fréquentes mises à jour. Cependant, appliquer des mises à jour régulières ne signifie pas nécessairement faire usage d'un système en rolling release. Pour qu'une telle dénomination s'applique, les développeurs doivent utiliser une méthode de travail avec une branche unique, par opposition à des versions spécifiques à une étape du cycle (par exemple versions de développement, de test et de production). Dans un système de rolling release les mises à jour sont généralement fournies via un gestionnaire de paquets à travers une connexion internet.

## Exemples

Parabola GNU/Linux-libre, Manjaro qui sont basées sur Arch Linux, Gentoo Linux, Sabayon Linux, Foresight Linux, Frugalware, Aptosid, Siduction, PCLinuxOS et SparkyLinux sont des exemples de distributions en rolling release. Le média d'installation est tout simplement un aperçu provisoire de la distribution au moment de sa sortie. Les logiciels contenus dans les dépôts sont plus récents que ceux contenus sur les médias d'installation.
D'autres distributions GNU/Linux peuvent maintenir une branche de développement entre deux versions successives. Ces branches de développement peuvent ressembler aux rolling releases parce que les logiciels dans de telles branches sont continuellement mis à jour. Cependant, contrairement aux rolling releases, ces branches sont destinées à être la prochaine version, et seront gelées et testées avant la publication d'une version. Mageia Cauldron, openSUSE Tumbleweed, Fedora Rawhide, et les branches testing et unstable de Debian sont des exemples de ce type de développement. L'utilisation de ces branches de développement dans un environnement de production est à déconseiller, à cause de risques d'instabilité, de sécurité, etc.
Toutefois, la branche testing de Debian contient les paquets de la prochaine version stable, le flot de paquets n'est donc pas tout à fait continu. De la même façon chez Frugalware, où les paquets ne sont pas continus dans la version current pour préparer la prochaine version stable.
Il arrive également que les distributions suivent un modèles half-rolling release, littéralement publication par demi-roulement : les paquets importants du système sont soumis à des tests tandis que les logiciels comme les navigateurs webs, suites bureautiques, outils multimédias, jeux, sont mis à jour continuellement. Par exemple Chakra Linux qui met à jour les paquets critiques du système tous les six mois.
Aptosid est une rolling release Linux basée sur Debian et sa branche de développement unstable (sid). Outre des dépôts de Debian unstable, Aptosid utilise ses propres dépôts de paquets et ses outils pour aider à éviter un éventuel crash (assez fréquent lors de l'utilisation de Debian unstable).
Au 1er janvier 2022, Red Hat a fait le choix de basculer CentOS 9 - devenue CentOS Stream - dans un processus de développement continu.
Contre-exemples : Windows, Mac OS, OpenBSD, et beaucoup de distributions GNU/Linux (Debian, y compris la version « stable ») ne sont pas des rolling releases, car d'importants changements sont réalisés entre versions successives (une réinstallation complète du système d'exploitation, ou du moins une mise à jour majeure, est nécessaire). Cela entraîne également un effort de développement important pour garder à jour les anciennes versions, en raison de la propagation de correctifs de bogues en provenance de la dernière branche, au lieu de se concentrer davantage sur la branche de développement la plus récente.
Un grand nombre de distributions Linux permettent d'installer les versions de logiciels spécialement compilés ou empaquetés pour elles :
* Par le biais d'un site comme kde-apps.org.
* Par le biais du site officiel ou d'un site tiers, en téléchargeant les sources et en les recompilant soi-même, sous forme de script qui installe les composants par le biais des dépôts de la distribution ou de fichiers trouvables en téléchargement sur d'autres sites (pkgbuilds d'archlinux par exemple), ou encore un fichier binaire tout prêt.
* Par le biais de dépôts non officiels, comme les PPA d'Ubuntu.

## Concentration de l'effort

Il est courant de prendre à l'occasion un instantané (snapshot) de la rolling release, pouvant être raffiné et «gelé», et gardé uniquement par sécurité (comme Frugalware avec la branche current (rolling release) et stable (paquets gelés)). Cela n'est souvent pas pratique, car cela nécessite la multiplication des efforts. En règle générale, les caractéristiques et les défauts d'une release particulière ne sont pas spécifiquement abordés dans un effort distinct/isolé (par exemple, patches) ; au contraire, ils sont traités dans l'effort principal de développement.