Product SiteDocumentation Site

1.6. Ciclo de vida de um Lançamento

O projeto vai ter simultaneamente de três a seis versões diferentes de cada programa, chamadas Experimental, Instável, Teste, Estável, Estável Antiga e até a Estável Antiga Antiga . Cada uma corresponde a uma fase diferente em desenvolvimento. Para um entendimento claro, vamos dar uma olhada no caminho de um programa, do seu empacotamento inicial à inclusão em uma versão estável do Debian.

1.6.1. O Estado Experimental

Primeiro vamos dar uma olhada no caso particular da distribuição Experimental : este é um grupo de pacotes Debian correspondente ao software atualmente em desenvolvimento, e não necessariamente concluído, explicando o seu nome . Nem tudo passa por esta etapa, alguns desenvolvedores adicionam aqui os pacotes a fim de obter o feedback dos mais experientes (ou mais valentes) usuários.
Por outro lado, essa distribuição frequentemente abriga importantes modificações para pacotes básicos, cuja integração na Instável (Unstable) com erros graves teria repercussões críticas. Portanto, é uma distribuição completamente isolada, com seus pacotes nunca migrando para outra versão (exceto pela intervenção direta e expressa do mantenedor ou dos ftpmasters). Ela também não é autossuficiente: apenas um subconjunto dos pacotes existentes estão presentes na Experimental, e geralmente não incluem o sistema de base. Esta distribuição é, portanto, útil principalmente em combinação com uma outra distribuição autossuficiente, como a Instável (Unstable).

1.6.2. O Estado Instável

Vamos voltar para o caso de um pacote típico. O mantenedor cria um pacote inicial, que compila para a versão Instável e coloca no servidor ftp-master.debian.org.Este primeiro evento envolve a inspeção e validação dos ftpmasters. O software fica então disponível na distribuição Instável, que é a distribuição de ponta escolhida pelos usuários que estão mais preocupados em manter seus pacotes atualizados invés de se preocupar com bugs graves. Eles descobrem o programa e o testam.
Se encontrarem bugs, reportam para o mantenedor do pacote. O mantenedor então elabora regularmente versões corrigidas que envia (por upload) para o servidor.
Cada pacote recém-atualizado é atualizado em todos os espelhos Debian ao redor do mundo dentro de seis horas. Os usuários então testam as correções e procuram outros problemas decorrentes das modificações. Várias atualizações podem ocorrer rapidamente. Durante esses tempos, os robôs autoconstrutores entram em ação. O mantenedor carrega as fontes do pacote (sem nenhum pacote pré-compilado). Os autoconstrutores assumem e compilam automaticamente as versões para todas as arquiteturas suportadas. Algumas compilações podem falhar; o mantenedor receberá então um relatório de bug indicando o problema, que deverá ser corrigido nas próximas versões. Quando o bug é descoberto por um especialista para a arquitetura em questão, o relatório do bug pode vir com um patch pronto para uso.
Compilação de um pacote pelos autobuilders

Figura 1.2. Compilação de um pacote pelos autobuilders

1.6.3. Migração para Teste

Um pouco mais tarde, o pacote terá amadurecido; compilados em todas arquiteturas, não vai ter sofrido modificações recentes. É então um candidato de inscrição na distribuição Teste - um grupo de pacotes instáveis escolhidos de acordo com alguns critérios quantificáveis. Todos os dias um programa seleciona automaticamente os pacotes para incluir em Teste , de acordo com os elementos que garantem um certo nível de qualidade:
  1. compilação bem-sucedida em todas arquiteturas suportadas oficialmente;
  2. ausencia de bugs críticos, ou ao menos uma quantidade menor do que a versão atualmente incluída na Teste (Testing);
  3. pelo menos 5 dias na Instável (Unstable) , que é usualmente tempo suficiente para encontrar e relatar quaisquer problemas graves (passar com sucesso na suíte de testes própria do pacote, se houver uma, reduz este tempo);
  4. dependências que podem ser satisfeitas na Teste, ou que podem pelo menos ser mudadas para lá junto com o pacote em questão;
  5. testes de qualidade automáticos do pacote (autopkgtest) — se definidos — não mostram nenhuma regressão.
É claro que este sistema não é infalível; bugs críticos são encontrados regularmente em pacotes incluídos na Teste . Ainda assim, é geralmente eficaz, Teste apresenta muito menos problemas do que a Instável , sendo para muitos, um bom compromisso entre estabilidade e novidade.

1.6.4. A Promoção de Teste para Estável

Vamos supor que o nosso pacote agora está incluído na Teste. Embora tenha espaço para melhorias, o mantenedor do mesmo deve continuar a melhorá-lo e reiniciar o processo a partir da Instável (mas a sua última inclusão na Teste é geralmente mais rápido: a menos que tenha mudanças significativas, todas suas dependências já estão disponíveis). Quando se atinge a perfeição, o mantenedor conclui seu trabalho. O próximo passo é a inclusão na distribuição Estável, que é, na realidade, uma cópia simples da Teste em um momento escolhido pelo Gerente de Lançamento. Idealmente, esta decisão é tomada quando o instalador está pronto, e quando nenhum programa na Teste tem qualquer bug crítico conhecido.
Como esse momento nunca chega verdadeiramente, na prática, o Debian deve se comprometer a: remover pacotes cujo mantenedor não tiver corrigido bugs a tempo, ou concorda em publicar uma distribuição com alguns bugs nos milhares de programas. O Gerente de lançamento vai previamente anunciar um período de congelamento, durante o qual cada atualização para Teste deve ser aprovado. O objetivo aqui é evitar qualquer nova versão (e seus novos bugs), e só aprovar as atualizações com correção de bugs.
Caminho de um pacote através das várias versões Debian

Figura 1.3. Caminho de um pacote através das várias versões Debian

Após o lançamento de uma nova versão estável, os Gerentes de Lançamento da Estável gerenciam todo o desenvolvimento posterior (chamado de "revisões", ex: 10.1, 10.2, 10.3 para a versão 10). Essas atualizações incluem sistematicamente todos os patches de segurança. Eles também incluem as correções mais importantes (o mantenedor de um pacote deve comprovar a gravidade do problema que deseja corrigir a fim de ter suas atualizações incluídas).
No fim da viagem: Nosso pacote hipotético está agora incluído na distribuição estável. Esta viagem, não sem dificuldades, explica os atrasos significativos que separam os lançamentos do Debian Estável. Isso contribui, sobretudo, para sua reputação de qualidade. Além disso, a maioria dos usuários está satisfeita usando uma das três distribuições simultaneamente disponíveis. Os administradores de sistema, preocupados acima de tudo com a estabilidade de seus servidores, não precisam da última e melhor versão do GNOME; eles podem escolher o Debian Estável, e estarão satisfeitos. Os usuários finais, mais interessados nas versões mais recentes do GNOME ou KDE Plasma do que em uma estabilidade sólida, acharão o Debian Teste um bom meio-termo entre a ausência de problemas graves e softwares relativamente mais atuais. Finalmente, os desenvolvedores e usuários mais experientes podem abrir caminho, testando todos os últimos desenvolvimentos no Debian Instável direto da fonte, correndo o risco de sofrer as dores de cabeça e erros inerentes a qualquer nova versão de um programa. Cada um com o seu Debian!
Trilha Cronológica de um pacote de programas do Debian

Figura 1.4. Trilha Cronológica de um pacote de programas do Debian

1.6.5. O status OldStable e Oldoldstable

Cada lançamento Estável tem uma expectativa de vida de 5 anos e cada lançamento tende a acontecer a cada 2 anos, pode acontecer de haver 3 lançamentos com suporte em dado momento do tempo. Quando um novo lançamento estável acontece, o lançamento anterior se torna Estável Antiga e o anterior a este se torna Estável Antiga Antiga.
Esse Suporte de Longo Prazo (Long Term Support - LTS) dos lançamentos Debian é uma iniciativa recente: contribuintes individuais e companhias juntaram forças para criar a equipe Debian LTS. Lançamentos antigos que não são mais suportados pela equipe de segurança do Debian ficam sob responsabilidade dessa nova equipe.
A equipe de segurança do Debian gerencia o suporte de segurança no lançamento Estável corrente e também no lançamento Estável Antiga (mas apenas o tempo necessário para garantir um ano de sobreposição com o lançamento estável corrente). Isso equivale, aproximadamente, a três anos de suporte para cada lançamento. A equipe do Debian LTS gerencia os (dois) últimos anos de suporte de segurança para que cada lançamento se beneficie por pelo menos 5 anos de suporte e que os usuários possam atualizar da versão N para a N+2, por exemplo, do Debian 9 Stretch para o Debian 11 Bullseye.