- If you have a look at the Debian FTP server or one of its
- mirrors, you'll discover that there is one additional
- directory level on top of the directory tree, as described
- in the previous chapter. These directories are the
- <em/distribution directories/.
- <p>
- There is always a distribution called <em/stable/ and one
- called <em/unstable/. This reflects the development process
- of the Debian project:
- <p>
- The ``development'' is done in the <em/unstable/
- distribution (that's why this distribution is sometimes
- called <em/development distribution/). Every Debian
- developer can update his/her packages in this distribution
- at any time. Thus, the contents of this distribution changes
- from day to day and since no special effort is done to test
- this distribution it's sometimes ``unstable.''
- <p>
- After about two months of development, the <em/unstable/
- distribution is copied in a new distribution directory,
- called <em/frozen/. After that, no changes are allowed to
- the frozen distribution, except bug fixes. (That's why it's
- called ``frozen.'')
- <p>
- After another month or a little longer, the <em/frozen/
- distribution is renamed to <em/stable/, overriding the old
- <em/stable/ distribution, which is removed at that time.
- <p>
- This development cycle is based on the assumption, that the
- once `unstable' distribution finally becomes `stable' after
- passing one month of testing. Unfortunately, a few bugs
- still remain--that's why the stable distribution is updated
- every few weeks. However, these updates are tested very
- carefully and have to be acknowledged individually to reduce
- the risk of introducing new bugs.
- <p>
- Note, that development is continued during the ``freeze''
- period, since a new ``unstable'' distribution will be
- created at that time.
- <p>
- In summary, there is always a <em/stable/ and an
- <em/unstable/ distribution available and the <em/frozen/
- distribution shows up for a month from time to time.
- <p>
-
- <sect>Release code names
- <p>
- Every released Debian distribution has a <em/code name/:
- Debian 1.1 is called <em/buzz/, Debian 1.2 <em/rex/, Debian
- 1.3 <em/bo/, Debian 2.0 <em/hamm/, etc.
- <p>
- Since the Debian has an open development (i.e. everyone can
- participate and follow the development) even the
- ``development versions'' (unstable) are distributed via the
- Internet on the Debian FTP server. This FTP server is
- mirrored by lots of other systems. Thus, if we'd call the
- directory which contains the development version simply
- `unstable', then we would have to rename it to `stable' when
- the version is released, which would cause all FTP mirrors
- to re-get the whole distribution (which is already very
- large!).
- <p>
- On the other hand, if we would call the distribution
- directories <em>Debian-x.y</em> from the beginning, people
- would think that Debian release <em>x.y</> is
- available. (This happened in the past, where a CD-ROM vendor
- built a Debian 1.0 CD-ROM based on a pre-1.0 development
- version. That's the reason why the first official Debian
- release was 1.1, and not 1.0.)
- <p>
- Thus, the names of the distribution directories in the
- archive should stay the same during the development period
- and after the release but there may be symbolic links, which
- can be changed.
- <p>
- That's why the distribution directories use the <em/code
- names/ and there are symbolic links <em/stable/,
- <em/unstable/, <em/frozen/, etc. which point to the
- appriopriate release directories.
- <p>
-
- <chapt>Package uploads<p>
+Extrapolating from this layout, you know that to find the i386 base
+packages for the distribution <em>slink</em>, you would look in
+<ftppath>/debian/dists/slink/main/binary-i386/base/</ftppath>.
+
+ <sect1>Stable, unstable, and sometimes frozen
+ <p>
+There is always a distribution called <em>stable</em> (residing in
+<tt>dists/stable</tt>) and one called <em>unstable</em> (residing in
+<tt>dists/unstable</tt>). This reflects the development process of the
+Debian project.
+ <p>
+Active development is done in the <em>unstable</em> distribution
+(that's why this distribution is sometimes called the <em>development
+distribution</em>). Every Debian developer can update his or her
+packages in this distribution at any time. Thus, the contents of this
+distribution change from day-to-day. Since no special effort is done
+to test this distribution, it is sometimes ``unstable.''
+ <p>
+After a period of development, the <em>unstable</em> distribution is
+copied in a new distribution directory, called <em>frozen</em>. When
+that occurs, no changes are allowed to the frozen distribution except
+bug fixes; that's why it's called ``frozen.'' After another month or
+a little longer, the <em>frozen</em> distribution is renamed to
+<em>stable</em>, overriding the old <em>stable</em> distribution,
+which is removed at that time.
+ <p>
+This development cycle is based on the assumption that the
+<em>unstable</em> distribution becomes <em>stable</em> after passing a
+period of testing as <em>frozen</em>. Even once a distribution is
+considered stable, a few bugs inevitably remain--that's why the stable
+distribution is updated every now and then. However, these updates are
+tested very carefully and have to be introduced into the archive
+individually to reduce the risk of introducing new bugs. You can find
+proposed additions to <em>stable</em> in the <tt>proposed-updates</tt>
+directory. Those packages in <tt>proposed-updates</tt> that pass
+muster are periodically moved as a batch into the stable distribution
+and the revision level of the stable distribution is incremented
+(e.g., `1.3' becomes `1.3r1', `2.0r2' becomes `2.0r3', and so forth).
+ <p>
+Note that development under <em>unstable</em> is continued during the
+``freeze'' period, since a new <em>unstable</em> distribution is be
+created when the older <em>unstable</em> is moved to <em>frozen</em>.
+Another wrinkle is that when the <em>frozen</em> distribution is
+offically released, the old stable distribution is completely removed
+from the Debian archives (although they do live on at
+<tt>archive-host;</tt>).
+ <p>
+In summary, there is always a <em>stable</em> and an <em>unstable</em>
+distribution available, and the <em>frozen</em> distribution shows up
+for a month or so from time to time.
+
+
+ <sect1>Experimental
+ <p>
+The <em>experimental</em> distribution is a specialty distribution.
+It is not a full distribution in the same sense that `stable' and
+`unstable' are. Instead, it is meant to be a temporary staging area
+for highly experimental software where there's a good chance that the
+software could break your system. Users who download and install
+packages from <em>experimental</em> are expected to have been duly
+warned. In short, all bets are off for the <em>experimental</em>
+distribution.
+ <p>
+Developers should be very selective in the use of the
+<em>experimental</em> distribution. Even if a package is highly
+unstable, it could well still go into <em>unstable</em>; just state a
+few warnings in the description. However, if there is a chance that
+the software could do grave damage to a system, it might be better to
+put it into <em>experimental</em>.
+ <p>
+For instance, an experimental encrypted file system should probably go
+into <em>experimental</em>. A new, beta, version of some software
+which uses completely different configuration might go into
+<em>experimental</em> at the maintainer's discretion. New software
+which isn't likely to damage your system can go into
+<em>unstable</em>. If you are working on an incompatible or complex
+upgrade situation, you can also use <em>experimental</em> as a staging
+area, so that testers can get early access.
+ <p>
+However, using <em>experimental</em> as a personal staging area is not
+always the best idea. You can't replace or upgrade the files in there
+on your own (<prgn>dinstall</prgn> and the Debian archive maintainers
+do that). Additionally, you'll have to remember to ask the archive
+maintainers to delete the package one you have uploaded it to
+<em>unstable</em>. Using your personal web space on
+<tt>va.debian.org</tt> is generally a better idea, so that you put
+less strain on the Debian archive maintainers.
+
+
+ <sect id="codenames">Release code names
+ <p>
+Every released Debian distribution has a <em>code name</em>: Debian
+1.1 is called `buzz'; Debian 1.2, `rex'; Debian 1.3, `bo'; Debian 2.0,
+`hamm'; Debian 2.1, `slink'; and Debian 2.2, `potato'. There is also
+a ``pseudo-distribution'', called `sid' which is contains packages for
+architectures which are not yet officially supported or released by
+Debian. These architectures are planned to be integrated into the
+mainstream distribution at some future date.
+ <p>
+Since the Debian has an open development model (i.e., everyone can
+participate and follow the development) even the unstable distribution
+is distributed via the Internet on the Debian FTP and HTTP server
+network. Thus, if we had called the directory which contains the
+development version `unstable', then we would have to rename it to
+`stable' when the version is released, which would cause all FTP
+mirrors to re-retrieve the whole distribution (which is already very
+large!).
+ <p>
+On the other hand, if we called the distribution directories
+<em>Debian-x.y</em> from the beginning, people would think that Debian
+release <em>x.y</em> is available. (This happened in the past, where a
+CD-ROM vendor built a Debian 1.0 CD-ROM based on a pre-1.0 development
+version. That's the reason why the first official Debian release was
+1.1, and not 1.0.)
+ <p>
+Thus, the names of the distribution directories in the archive are
+determined by their code names and not their release status (i.e.,
+`slink'). These names stay the same during the development period and
+after the release; symbolic links, which can be changed, are made to
+indicate the currently released stable distribution. That's why the
+real distribution directories use the <em>code names</em> and symbolic
+links for <em>stable</em>, <em>unstable</em>, and <em>frozen</em>
+point to the appropriate release directories.
+
+
+ <chapt id="upload">Package uploads