|This article needs additional citations for verification. (September 2011)|
In software development, a rolling release or rolling update development model refers to a continually developing software system; this is instead of a standard release development model which uses software versions that must be reinstalled over the previous version. Rolling software, instead, is continually updated, in contrast to standard release software which is upgraded between versions. Rolling release development models are one of many types of software release life cycles and, in terms of software development methodology in general, rolling release development models are less common than standard release development models in most mainstream software sectors, such as operating systems.
Although a rolling release software development model can be used in the development of any piece or collection of software, it is typically, though not exclusively, seen in use by a minority of Linux distributions. Software distributions, of which Linux distributions form a very large proportion, are commonly referred to as distros, with rolling release distributions commonly referred to as rolling distros. When used as an adjective, instead of a noun, rolling release is often shortened to rolling, when referring to distributions, software, or development models.
A rolling release is typically implemented using small and frequent updates. However, simply having updates does not automatically mean that a piece of software is using a rolling release cycle; to qualify as a rolling release, the philosophy of developers must be to work with one code branch, versus discrete versions. When the rolling release development model is employed as the development model of a software distribution, software updates are typically delivered to users by a package manager software application on the user's personal computer accessing, through the internet, a remote software repository (often via a download mirror) stored on an internet file server.
Although rolling distributions use a rolling release software development model, most of the software contained in the distribution's software stack is usually standard release (i.e. not rolling release) software. Also, not all software distributions based on, derived from, or related to rolling release distributions are necessarily rolling releases themselves. An example of this is ConnochaetOS (formerly DeLi Linux) which is a standard (i.e. non-rolling) release distribution based on the rolling release distribution Arch Linux.
The remainder of this article focuses on the rolling release model as applied to software distributions (versus software applications). From this point onwards, unless otherwise stated, the term rolling release will be taken to refer to rolling release software distributions specifically and not to rolling release software in general.
For the purpose of this article, rolling releases have been divided into the categories partially rolling (see part-rolling), fully rolling (see full-rolling), truly rolling (see true-rolling) and its pseudo-opposite (see pseudo-rolling), optionally rolling (see opt-rolling), and cyclically rolling (see cyclic-rolling).
The terms partially rolling and partly rolling (along with synonyms semi-rolling and half-rolling), fully rolling, truly rolling and optionally rolling are all standard terms used by software developers and users. However, the term cyclically rolling is not necessarily a standard term, though the term cyclic release is — see Types of non-rolling releases.
The term cyclically rolling (and cyclic-rolling) has been used in this article to differentiate rolling releases based on a cyclical (versus rolling) development branch of a non-rolling distribution, since these (along with pseudo-rolling releases) have relevant differences, from other types of rolling releases — see freeze (software engineering) and Types of rolling releases subsection below.
As a pseudo-opposite to truly rolling (or true-rolling), the term pseudo-rolling is used by some users to describe and distinguish distributions such as aptosid, Aurora OS, antiX and LMDE, among others, which are based on (usually a development branch of) a non-rolling distribution which is modified to provide the end-user with a user experience approximating that of a true rolling release.
For brevity, partially rolling, cyclically rolling, truly rolling, optionally rolling and fully rolling have been contracted to part-rolling, cyclic-rolling, true-rolling, opt-rolling and full-rolling, respectively, in some parts of this article. The contraction of these terms is not necessarily standard nomenclature, or a reflection of general use within the software community, and is used merely as a convenient shorthand for the purposes of this article.
Part-rolling, semi-rolling, or half-rolling distributions have a subset of software packages that are not rolling. These packages usually form either a non-rolling 'core' (such as the kernel and other major packages) or conversely a non-rolling 'wrapper' (normally custom application software to aid ease of use).
Full-rolling distributions (opposed to part-rolling distributions) do not divide the distribution into a rolling and non-rolling part. They apply the rolling release software development model to the entirety of the software stack.
Pseudo-rolling distributions attempt to stabilize a development branch of a non-rolling distribution via software patches to obtain a distribution with features similar to those of a true rolling release.
Opt-rolling distributions either have a separate rolling and non-rolling release edition of the distribution, or can be optionally run as a rolling or a non-rolling release distribution. Generally, they are either rolling or non-rolling by default. Optionally rolling distributions are relatively rare, compared to other rolling release distribution models.
Cyclic-rolling distributions are based on a cyclical development branch of a non-rolling distribution; as a result the general age and stability of the packages does not remain consistent through the development cycle; especially across the end of a cycle, during a release of the non-rolling parent distribution.
In particular, before each release of the parent distribution, its primary development branch is frozen. During this freeze period, no major changes are made to the development branch, and it is at this point that it is at its most stable and bug-free. At the new release of the parent distribution, the old development branch becomes the new stable branch and a fresh development branch is formed, restarting the whole software development cycle. It is at this point that the fresh development branch is now at its most unstable and buggy.
This software development and release cycle can be disruptive for cyclical rolling release software distributions based on primary development branches, due to the freeze period and the subsequent sudden discontinuity in stability and software bugs, as most rolling release distributions try to maintain a steady and consistent user experience. This conflict arises due to the inherent difference between rolling release and non-rolling release software development models, hence making this a challenge for all cyclical rolling release software distributions to overcome.
All rolling distributions (whether part-, full-, pseudo-, true-, cyclic-, etc.) have software contained in the repositories that is more current than that contained on the installation media and usually contains very recent software releases – often the latest stable software releases available. They have pseudo-releases and installation media that are simply a snapshot of the software distribution at the time of the release. There is therefore no need to reinstall the operating system, as is (usually) the case with upgrading between versions of a standard release. Also, a rolling release operating system installed from an old install disc can be fully updated post-installation to the latest system software and application software via the Internet.
Other Linux distributions may maintain a development branch in between releases. These development branches (dev-branches) are often labelled with the suffix -current, -unstable, -testing or -snapshot and may resemble a rolling release because software in such a branch is continually updated. However, unlike a rolling release, primary development branches are intended to be the next release, and will be frozen and tested before such a release.
Mandriva Cooker, openSUSE Factory, Fedora Rawhide and Debian Testing (on which LMDE and antiX are based) are examples of primary development branches, and Debian unstable (on which aptosid is based) is an example of a secondary development branch. By their very nature, these development branches tend to be unstable and buggy, with security fixes being slow, incomplete or non-existent; they also tend to lack support and documentation.
For these reasons, some software distributions recommended (in the software documentation or on the distribution's website) that development branches, developmental milestone releases, pre-alpha software, alpha software, beta software and release candidates should generally not be used as enterprise software in a production environment, in case of data loss, etc. A humorous example of such is the Linux distribution Chakra Linux in alpha stage having the installation message “WARNING: This is alpha software, it could eat your hamster!!“
Unlike rolling releases, development branches are mainly intended to be used by software developers, software testers and early adopters rather than your average end-user — see Software release life cycle.
The following Linux, BSD and Hurd distributions are all examples of full-rolling releases, except for those that are specifically indicated as partial (which are part-rolling) or cyclical (which are cyclic-rolling). Distributions marked as optional can be run either as rolling or non-rolling releases. Software distributions derived from another distribution (called the parent distribution) are called child distributions.
Those marked as fork, although still related to (shared ancestry), are now only derived from (forked codebase) and no-longer based on (shared codebase) their parent distribution, making them independent distributions. Software forking in software development breaks binary-compatibility of software packages between related software distributions in an analogous manner to speciation in biological evolution preventing cross-breeding between species.
Other than Arch Hurd (which uses the GNU Hurd kernel) and the Gentoo/*BSD distributions (which use the BSD kernels), the rest are all Linux distributions (which use the Linux kernel). The following list of rolling distributions is grouped into families of related distributions.
aptosid (Debian unstable base)
siduction (Debian unstable base)
Semplice Linux (Debian unstable base)
LMDE (cyclical: Debian testing base)
Aurora OS (partial: non-rolling core; Debian unstable & Ubuntu base)
antiX (cyclical: Debian testing & MEPIS base)
Vanillux (cyclical: Debian & Ubuntu base)
Gentoo Linux 
Calculate Linux 
Toorox Linux (partial: non-rolling wrapper)
Sabayon Linux 
Google Chrome OS (and its open source development base Chromium OS)
Alpine Linux began as a fork of the LEAF Project which was not a rolling release. In addition to point releases, users may update the system as individual packages become available.
Antergos, Arch Hurd, ArchBang, Bridge Linux, Chakra Linux, CTKArch, KahelOS, Manjaro Linux, Nosonja Linux and Parabola GNU/Linux (among others) are all rolling release binary-based Linux distributions related to, derived from, or based on, the independent rolling release binary-based Linux distribution Arch Linux.
See list of Linux distributions#Pacman-based for a list of Linux distributions using Arch Linux's Pacman package manager.
See Arch Based Distributions (Active) on the Arch Linux Wiki for a list of currently active Arch-based distributions.
Aptosid, siduction and Semplice are rolling release Deb binary-based Linux distributions based on Debian unstable, Debian's unstable development branch (Sid). Linux Mint Debian Edition (LMDE) and antiX are cyclical rolling release Deb binary-based Linux distributions based on Debian testing. Debian testing is a cyclical development branch and is thus frozen before each release of Debian stable. During this time, Debian testing is no longer rolling, which affects rolling distributions based on it — like LMDE and antiX.
Such distributions are therefore described on this page as cyclically rolling releases (or cyclic-rolling for short) to distinguish them from other forms of rolling releases, and are not classed as fully rolling releases (or full-rolling for short). For more information, see Development models section above. Also, the term Debian here refers specifically to Debian GNU/Linux (which uses the Linux kernel) and not Debian GNU/kFreeBSD (which uses the FreeBSD kernel) nor Debian GNU/Hurd (which uses the GNU Hurd kernel).
Note: As of March 2012[update], discussions are ongoing among Debian developers (on Debian developer mailing list) regarding a proposal of developing a rolling release edition of Debian called DebianCUT (DebianCUT unofficial website) — where "CUT" stands for constantly usable testing. This has been suggested to be either a new edition of Debian or to replace (or be a modified or re-branded version of) Debian testing.
See list of Linux distributions#Debian-based for a list of Debian-based Linux distributions.
See list of Linux distributions#Fedora-based for a list of Fedora-based Linux distributions.
LFS stands for Linux From Scratch and is a collection of documentation designed to instruct a computer user in how to build a Linux distribution from scratch. It is intended primarily as an educational tool for computer science students to learn how a Linux-based operating system functions.
Gentoo Linux, the Gentoo/*BSDs, Funtoo Linux, Calculate Linux, Toorox Linux, and most other Gentoo-based distributions, are source-based (rather than binary-based) — with Sabayon Linux (which is binary-based) being an obvious exception. Apart from the Sorcerer-related distributions (which are also source-based) most of the other distributions referred to in this article are binary-based (rather than source-based) distributions, as are most Linux distributions and software distributions in general.
See list of Linux distributions#Gentoo-based for a list of Gentoo-based Linux distributions.
PCLinuxOS and Unity Linux are rolling release RPM binary-based live CD Linux distributions related to, derived from, or based on, the independent non-rolling binary-based Linux distribution Mandriva Linux. Mandriva Linux is developed by Mandriva and was originally forked from Red Hat Linux. Both Mandriva Linux and Red Hat Linux use the RPM binary package format originally developed by Red Hat.
See list of Linux distributions#Mandriva Linux-based for a list of Mandriva-based Linux distributions.
Source Mage and Lunar Linux are forks of the independent Linux distribution Sorcerer Linux. Like Sorcerer, they are 'self-build' source-based (opposed to binary-based) Linux distributions that put an emphasis on compiling software packages from source-code, using a software compiler, rather than installing pre-compiled binary software packages.
By default openSUSE, and most of its derivatives, are not rolling releases since openSUSE has stable fixed releases and developmental milestone releases, as well as a development branch and testing repository called 'Factory'. However, openSUSE and compatible derivatives become rolling releases when pointed at the openSUSE Tumbleweed rolling repository instead of the default repository.
See SUSE Linux distributions for a list of SUSE-based Linux distributions.
Most operating systems and software distributions use a non-rolling release (or standard release) model rather than a rolling release model. They have significant changes between version numbers, requiring a complete operating system reinstall, or at least a major upgrade.
The most common form of non-rolling release (or standard release) software is fixed release software, where (unlike a continual rolling release) the release is discrete and occurs at a fixed point in time. A minor software release in-between software versions is called a point release. Some software projects adopt a date-based (also termed a timed or scheduled release) release policy, where software is released on a specific predetermined date, versus others which use a state-based (or release when ready) release policy, where software is released once deemed by the development team to be in a release-ready state.
An example of these differing release policies are Ubuntu (which uses a date-based release policy) and its derivative Linux Mint (which uses a state-based release policy). Software distributions that use a date-based release policy will often have a countdown clock on their website, in the month leading up to a release, counting down the days to the launch-date. However, some distributions may instead choose to opt for a release policy somewhere between date-based and state-based, in an attempt to gain some of the benefits of both approaches.
The term cyclic release is sometimes used to describe software where the software project uses a cyclic software development process. Likewise, the term periodic release is sometimes used to describe software that is released at regular time intervals. Like rolling release, the terms fixed release, point release, cyclic release and periodic release do not apply solely to operating systems and software distributions. They can apply to any piece or collection of software; for example application software might adopt either a rolling release or fixed release software development model.
In terms of the software development process, standard releases require significant development effort being spent on keeping old versions up to date due to propagating bug fixes back to the newest branch, versus focusing more on the newest development branch. Also, unlike rolling releases, standard releases require more than one code branch to be developed and maintained, which increases the software development and software maintenance workload of the software developers and software maintainers.
On the other hand, software features and technology planning are easier in standard releases due to a better understanding of upcoming features in the next version(s) rather than simply the whim of the developers at any given time. Software release cycles can also be synchronized with those of major upstream software projects, such as desktop environments. Hence, there are pros and cons to both standard release and rolling release software development methodologies.
As far as the end-user experience, standard releases are often viewed as more stable and bug-free since software conflicts can be more easily addressed and the software stack more thoroughly tested and evaluated, during the software development cycle. For this reason, they tend to be the preferred choice in enterprise environments such as computer workstations, IT consulting, system administration, and mission-critical tasks such as data management and servers.
However, rolling releases offer more current software which can also provide increased stability and fewer software bugs along with the additional benefits of new features, greater functionality, faster running speeds, and improved system and application security, among others. With the last of these, software security, the rolling release model can have advantages in timely security updates, fixing system or application security bugs and vulnerabilities, that standard releases may have to wait till the next release for. Though, in a rolling release distribution, where the user has chosen to run it as a highly dynamic system, the constant flux of software packages can introduce new unintended software vulnerabilities.
This section is focused on the popularity and adoption of rolling distributions. For a more general look at the popularity and adoption of Linux distributions, please see Linux adoption. For a specific look at adoption in the desktop computing sector, see Desktop Linux#Measuring adoption.
When discussing the popularity and adoption of rolling distributions, it is worth emphasizing the distinction, not only between current verses cumulative measures, and absolute verses relative measures, but between software distribution, software acquisition, software installation, software population and software utilization numbers:
Note: Although FOSS users can buy FOSS CDs and DVDs, most FOSS distros are available to download legally free of charge. Generalized use of economics terms when referring to free and open source software can thus be potentially misleading.
The ability to install, customize and configure only once, yet still continue to run the very 'latest and greatest' application software on a cutting-edge or bleeding-edge operating system, gives rolling release distributions a highly devoted following in the free and open source software community, which, though still a small minority, seems to be growing.
Indeed, in the rolling release user community, a rolling development model is often viewed as a 'must-have' feature when choosing and moving between software distributions (commonly referred to as distro hopping). In some cases, ardent fans of rolling distributions may become converts, opting solely to use rolling distributions, in a similar manner to 'Linux converts' with Linux adoption.
With major software distributions (such as Google Chrome OS, openSUSE Tumbleweed, LMDE, Fuduntu, Chakra Linux, and the proposed DebianCUT) opting to provide a rolling release offering of some form, the number and popularity of rolling distributions would appear – and has been asserted by some, particularly in the rolling community – to be on the rise. However, whether this is truly part of a bigger long-term software development and use trend (either toward favoring rolling releases over standard releases, or toward giving the user the option to use software in either manner) remains to be seen.
Also although the absolute number of rolling release installs may have increased, the relative number (i.e. the proportion of releases which are rolling releases) may not have. This is likely the case, when one takes into account the explosion in mobile computing that has emerged over the last decade, with the dominance of mobile devices running mobile operating systems like Android, iOS and Windows Phone, since Android, iOS and Windows Phone are non-rolling operating systems. Whether the proportion of rolling release installs will increase may depend partly on the future of the Android (non-rolling) and Google Chrome OS (rolling) operating systems — specifically, if Google merges the two, whether the resulting operating system will be a rolling release or not.
Unlike commercial and proprietary operating systems, which tend to be pre-installed, rolling distributions (which are mostly freeware and FOSS) tend not to be; Google Chrome OS and Chromium OS being notable exceptions. Nor do rolling releases tend to require product activation. Since most are freeware and FOSS, they are legally free to download, copy, modify and redistribute, making the internet their primary distribution channel. This makes it practically impossible to get reliable figures on the userbase and installed base of rolling distributions.
Given their range and number, this is a well recognized issue with Linux in particular. Though the Linux kernel may be detected (e.g. via User-Agent strings) the specific Linux distro running on it might not. Some distros log connections to their repository; however this can prove an unreliable measure due to compounding factors. Direct access to repository mirrors can result in uncounted users, while users using dynamic IPs can be repeat-counted, and users connected via a proxy server may be either under-counted or over-counted depending on the behavior of the exit node's IP address.
Although there are no official figures on popularity, adoption, downloads or installed base of rolling release software distributions, the popular website DistroWatch keeps page-hit statistics for its various distribution pages, including distributions which are rolling releases and those which have rolling release versions. This gives a very rough indication of the overall popularity landscape and adoption trends of software distributions and is used by some as an unofficial measure of popularity and adoption of software distributions.
However, in the case of rolling releases, it is possible that such page-hit statistics may be misleading. Along with server orientated software distributions, users of rolling release distributions are less likely to reinstall their operating system on a regular basis, and thus are also less likely to frequent the distribution's DistroWatch page, a use of which is for downloading software installation ISOs of, and catching up with the latest news on, new releases. This could result in the popularity of rolling releases and server-orientated distributions being under-represented by some measures, like page-hit statistics of websites such as DistroWatch.
There are also no official figures for the total number of Linux systems, partly due to the difficulty of quantifying the number of PCs running Linux (see Desktop Linux#Measuring adoption), since many users download Linux distributions. Hence, the sales figures for Linux systems and commercial Linux distributions indicate a much lower number of Linux systems and level of Linux adoption than is the case; this is mainly due to Linux being free and open source software that can be downloaded free of charge.
However, the website The Linux Counter Project (LiCo) (new website here) keeps a guesstimate of the number of Linux systems, but does not distinguish between rolling release and standard release distributions. The DistroWatch and Linux Counter figures, taken together, could in theory be used to arrive at a very rough guesstimate of the popularity and adoption of rolling distributions.
In September 2008 Microsoft CEO Steve Ballmer claimed 60% of servers run Linux. Linux is by far the most popular operating system among supercomputers, due to its superior performance, flexibility, speed and lower costs. In November 2008 Linux held an 87.8 percent share of the world's top 500 supercomputers.
These figures indicate Linux dominates the supercomputer sector with a market share of over 90% and climbing, and that Linux constitutes well over half of the server market. However, it is unclear what proportion of these run rolling release Linux distributions. Most BSD systems are non-rolling since the only significant rolling release BSDs are the Gentoo/*BSD variants, which have far less popularity than major BSD distributions such as FreeBSD, OpenBSD and NetBSD, or Mac OS which is partially BSD-based. Likewise, as GNU Hurd is still experimental, Hurd distributions (rolling and non-rolling) have minimal market share. BSD and Hurd popularity and adoption thus currently has negligible impact on the overall popularity and adoption of rolling distributions, since most rolling distributions are Linux distributions and Linux popularity and adoption currently dwarfs that of BSD (not including Mac OS) and Hurd in the PC, mobile, enterprise, server and HPC markets.
Regarding this last misconception, it is not a necessary condition for a rolling distribution to be bleeding-edge, and there are many bleeding-edge standard release distributions for which stability is just as big an issue. Hence – though it is sometimes claimed by critics of rolling releases – rolling release distributions in general need not be inherently unstable, compared to standard release distributions. Rather, any apparent instability is more likely to be to do with the developer- and user-base in general opting for a more cutting-edge and bleeding-edge approach to software development and use. Thus, it is more a reflection of the culture and attitude in the 'rolling' community, than it is a flaw or failure in the rolling release software development model. However, most rolling distributions tend to include cutting-edge and bleeding-edge software in their software repositories so the user has the choice whether or not to use such.
It is common to occasionally take snapshots of the rolling release, which can be refined and frozen and only maintained for software security. This is often impractical since it requires duplication of effort. Typically, defects and characteristics of a particular software release are not specifically addressed in a separate/isolated effort (e.g. as patches); instead, they are addressed in the main software development effort.