How Debian Uses Britney for Release Migration

This article explains how Britney, the automated release migration tool inside the Debian project, manages the progression of packages from Debian "Unstable" (Sid) to Debian "Testing." It explores the technical rules Britney enforces, such as quarantine aging, dependency validation, and bug tracking, as well as the algorithmic processes used to migrate sets of interdependent packages without breaking the integrity of the target distribution.

The Purpose of Britney

In Debian’s development workflow, developers upload new software and updates directly into the Unstable branch. Because Unstable is constantly changing and prone to temporary breakage, it cannot serve directly as a reliable preview of the next stable Debian release. Britney acts as an automated gatekeeper that manages the Testing branch, ensuring that Testing remains continuously coherent, fully installable, and stable enough to eventually become a release candidate.

Core Migration Criteria

Before Britney permits a package to move from Unstable to Testing, the package must satisfy several strict prerequisites:

  • Quarantine Period (Aging): Packages must reside in Unstable for a set number of days—typically between two and ten days, depending on the urgency assigned to the upload. This waiting period allows developers and users to discover early bugs.
  • Build Availability: The package must be successfully built from source and available across all official release architectures supported by Debian, avoiding situations where an update breaks specific platforms.
  • No New Critical Bugs: Britney interfaces directly with the Debian Bug Tracking System (BTS). A package cannot introduce new Release-Critical (RC) bugs that are not present in the version already in Testing.
  • Co-installability and Dependencies: The package must not cause other packages in Testing to become uninstallable due to unmet dependencies or version conflicts.

The Migration Algorithm

Britney operates via periodic runs (often several times a day) using a trial-and-error simulation engine.

  1. Candidate Assessment: Britney compiles a list of candidate packages from Unstable that meet the basic criteria like aging, build completeness, and bug limits.
  2. Individual Migrations: Britney attempts to install single packages into a simulated instance of the Testing distribution. If the simulation demonstrates that the package can be installed without breaking any existing packages across all architectures, the package is approved for migration.
  3. Set Migrations and Transitions: In modern Linux systems, packages often share shared libraries. When an application changes its Application Binary Interface (ABI), updating a library independently would break its reverse dependencies. Britney detects these relationships and groups dependent packages into sets, attempting to migrate them all at once.

Release Team Hints and Manual Intervention

While Britney automates the vast majority of transitions, large software transitions (such as compiler upgrades or major desktop environment overhauls) can become too complex for standard automated heuristics.

To resolve deadlocks, the Debian Release Team uses "hints." Hints are manual instructions fed into Britney's configuration that direct how packages should be handled. Common hints include:

  • block / unblock: Temporarily prevents or permits a package's migration.
  • force: Bypasses certain non-critical criteria when a manual review confirms it is safe.
  • easy: Instructs Britney to test a specific group of packages together, bypassing the need for Britney to deduce the group on its own.
  • remove: Drops obsolete or permanently broken packages from Testing to allow other dependent packages to advance.

Maintaining Distribution Health

By continually testing potential states against strict dependency graphs, Britney ensures that Debian Testing is never left in a broken or unusable condition. This systematic automation relieves Debian release managers from manual package vetting and keeps the distribution perpetually aligned for its next major release cycle.