What are betas, release candidates, and HEAD?

Last modified: May 19, 2009 - 15:00

What are betas and release candidates?

Before every official "x.0" stable release of a new major version of Drupal core, there are usually a handful of beta releases and release candidates that are made available. These releases are not yet stable enough for production use, but are essential milestones on the way towards the official release. They allow a much wider pool of users to test the latest code and provide feedback before the official stable release. These releases should only be downloaded and used by developers very familiar with Drupal or those wishing to help find bugs in the software.

Beta releases
These are the first to come out, and are therefore the least stable. During the period of beta releases, usability features are still considered, the translatable strings (help texts, words in the interface, etc) might be altered, and if absolutely necessary, the API or database schema could change (to fix a critical bug). Of course, other kinds of bug fixes are always applied.
Release candidates
Release candidates are usually only created once no more critical bugs have been reported in a given beta release. These are considered nearly stable code, something the Drupal development community is considering as a candidate to be released as the official .0 version. No more usability changes are made, and the translatable strings are usually unchanged at this point.

Some maintainers might choose to provide beta releases or release candidates of their contributed modules and themes (though this is not required). You should read the release notes carefully in these cases, since the details might vary across projects, though the basics explained here should hold (a "beta" is less stable than an "RC", etc).

Once a feature freeze is announced, no new features will be added to that version of Drupal. That version of Drupal's feature set is locked and any new features or change of behavior will need to go into the next release version.

In the forums you will see references to Drupal HEAD or just HEAD. You will also see references to Drupal CVS which is often the same thing. The name comes from the fact that Drupal uses the CVS version control system to track changes to the code, and in CVS, "HEAD" refers to the main development area (also known as "the trunk").

In Drupal core, HEAD is the name given to the version of Drupal core being worked on by developers right now. Of course, now that core is only using two digits for the version number (starting with the 5.0 release), there's no longer any ambiguity about what the next version of core will be called, so the use of "HEAD" to identify a release is no longer necessary. For example, now that the official 6.0 release of Drupal core is out, everyone knows that the next version of core under development will eventually become the 7.x release series, so the nightly snapshot releases are more properly called "7.x-dev", not "HEAD".

HEAD versions of Drupal core are not meant for use on production sites and should only be downloaded and used by developers who are very familiar with Drupal, or by testers who are helping to find bugs. HEAD is a moving target, and is prone to serious bugs and security holes.

When a contributed module or theme is tagged with HEAD, that means that it is the latest version on the main development branch. But "latest" can be any age -- perhaps over a year old! When a file was made for Drupal 4.3.x, it is HEAD of its own branch, but that does not mean you can run it with Drupal 4.7.x, or 5.5, or that it is necessarily compatible with any other module or core code that's tagged with HEAD.

In general, production sites should never use HEAD versions of any module or theme; they should always use official releases with real version numbers. Under the new release system, even the HEAD releases of contributed projects are required to include version information and to indicate which versions of Drupal core they are compatible with. A contribution without any official releases indicates that the contribution maintainer is not being very responsible, and you should use these contributions at your own risk.

 
 

Drupal is a registered trademark of Dries Buytaert.