Debian always has at least three releases in active maintenance: stable, testing and unstable.

The stable distribution contains the latest officially released distribution of Debian. This is the production release of Debian, the one which we primarily recommend using. It is the release that all the commercial vendors support. It's the one that security patches are most easily available for. It's the one that you run on servers you don't want to die. (See below about why stable is so stable.)
The testing distribution contains packages that haven't been accepted into a stable release yet, but they are in the queue for it. The main advantage of using this distribution is that it has more recent versions of software, and the main disadvantage is that it's not completely tested and has no official support from Debian security team.
The unstable distribution is where active development of Debian occurs. Generally, this distribution is run by developers and those who like to live on the edge. It's where you have to go if you want things as soon as they come out - packages don't move to testing as quickly as you might like them to.

There are other criterion

So unstable that unstable doesn't even want them. You have to get these packages from other apt repositories. They are labelled experimental so you don't install them unless you really really want to, and tell apt that with apt-get -t experimental package.
a "backports-esque" repository that updates packages that are made useless by their outdatedness, for example virus defintions and Gaim, which breaks when protocols change. Designed to be able to used as safely as security.

The current (at time of writing) stable distribution of Debian is 3.1, codenamed Sarge. It was released on June 6th, 2005. Check to ensure it is still current, and if not, come back and edit the wiki so it is. The current testing distribution is etch. Eventually, etch will become stable (a FeatureFreeze will occur), sarge will become an unsupported older distribution, and the testing tree will be reborn with a new name.

On a Debian machine, you can find out the version number of the installed distribution by looking in /etc/debian_version.

Previous versions of stable have been named
  • "woody", (v3.0, 2002)
  • "potato" (v2.2, 2000)
  • "slink" (v 2.1, 1999)
  • "hamm" (v2.0, 1998)
  • "bo" (v1.3, 1997)
  • "rex" (v1.2, 1996)
  • "buzz" (v1.1, 1996).

The unstable distribution is called sid, and it doesn't get renamed.

The code names come from the movie Toy Story, because ex-Debian project leader BrucePerens used to work for Pixar. (He went on to become HP's Linux evangelist, but was allegedly fired by HP for "microsoft-baiting".)

Packages are installed into the `testing' directory after they have undergone some degree of testing in unstable. They must be in sync on all architectures where they have been built and must not have dependencies that make them uninstallable; they also have to have fewer release-critical bugs than the versions currently in testing. This way, they ensure (hope) that testing is always close to being a release candidate.

Using packages from different releases

If you would like to use packages from a different release to what you are currently running (ie. you want to install the latest nasm package from unstable, but you like to run the rest of your machine on stable) see AptNotes.