The number of source packages in each Debian release (stable, testing, unstable and experimental) is illustrated below. Note that removals from experimental do not necessarily happen automatically when the package in experimental is superseded by a package in unstable.
Source packages may be updated with a new Debian revision (1.2.3-1 → 1.2.3-2) or a new upstream version (1.2.3 → 1.2.4). The number of source packages that have an updated package between releases is show below. Note that:
- immediately following release, testing is identical to stable
- packages migrate from unstable into testing (quite rapidly following the release) thus increasing the differences between stable and testing
- once testing migration is frozen to prepare for a release, testing and unstable start to diverge more and more
- during the freeze, experimental is used both as a test-bed and also to house new versions that would not make it into the next release but whose upload to unstable could be disruptive to the release preparations.
New upstream versions rather than just new Debian revisions tend to be of more interest to end users. New upstream revisions tend not to be uploaded to unstable during a freeze as there is essentially no chance of them being included in the upcoming release but having them present means that packages that pick them up as dependencies cannot migrate to testing to fix bugs. Note that packages adding an epoch (1:) to their version or repackaging the upstream source and adding a marker like +dfsg to their version (perhaps to remove non-free material like RFCs or sourceless binaries) will also look like "new upstream" versions in this metric; however, there aren't that many such changes.
Over time, new upstream packages are added Debian. In the Debian context, new packages are ones that a source package name that does not exist in the archive already. New packages can be:
- completely new upstream effort (e.g. nodejs)
- a fork of an existing upstream (e.g. mate, cinnamon)
- a split upstream package (e.g. kdebase was split into konsole, kate, konqueror, …)
- a renamed old source package (e.g. linux-2.6 → linux)
- simply a new upstream version of the package but with a different source package name; this is only for a very few Debian packages where multiple upstream versions are supported at the same time (e.g. gcc-4.4 and gcc-4.7, python2.6 and python2.7)
These analyses were prepared by Stuart Prescott and make use of the data in #debian's Ultimate Debian Database and queries based on the work of Raphaël Hertzog.
Data last updated: 2021-06-20