Engenharia de Release do FreeBSD

Murray Stokely

Nota Legal
2018-09-21 03:22:51 +0000 por Edson Brandi.
Resumo

Nota:

Este documento está desatualizado e não descreve com precisão os procedimentos atuais de lançamentos da equipe de Engenharia de Release (Versão) do FreeBSD. É retido para fins históricos. Os procedimentos atuais usados pela equipe de Engenharia de Release do FreeBSD estão disponíveis no artigo Engenharia de Release do FreeBSD.

Este artigo descreve a abordagem usada pela equipe de engenharia de release do FreeBSD para produzir versões do Sistema Operacional FreeBSD com qualidade de produção. Ele detalha a metodologia utilizada para as versões oficiais do FreeBSD e descreve as ferramentas disponíveis para aqueles interessados em produzir versões customizadas do FreeBSD para uso corporativo ou para uso em produtos comerciais.

[ Documento HTML em partes / Documento HTML completo ]

Índice
1. Introdução
2. Processos de Release (Versão)
3. Construção da Release (Versão)
4. Distribuição
5. Extensibilidade
6. Lições Aprendidas do FreeBSD 4.4
7. Direções futuras
8. Agradecimentos

1. Introdução

O desenvolvimento do FreeBSD é um processo muito aberto. O FreeBSD é composto por contribuições de milhares de pessoas em todo o mundo. O Projeto FreeBSD fornece acesso ao Subversion [1] para o público em geral para que outros possam ter acesso a mensagens de log, diffs (patches) entre branches (ramificações) de desenvolvimento e outros aprimoramentos de produtividade que o gerenciamento formal de código-fonte proporciona. Isso tem sido uma grande ajuda na atração de desenvolvedores talentosos para o FreeBSD. No entanto, acho que todos concordariam que o caos logo se manifestaria se o acesso para modificar o repositório principal fosse aberto a todos na Internet. Dessa forma, apenas um grupo seleto de quase 300 pessoas recebe acesso de escrita ao repositório do Subversion. Estes committers [2] são normalmente as pessoas que fazem a maior parte do desenvolvimento do FreeBSD. Um Core team [3] eleito fornece algum nível de orientação sobre o projeto.

O ritmo acelerado de desenvolvimento do FreeBSD torna a principal branch de desenvolvimento inadequada para o uso diário pelo público em geral. Em particular, são necessários esforços de estabilização para polir o sistema de desenvolvimento em uma release de qualidade apropriada para uso em ambiente produtivo. Para resolver este conflito, o desenvolvimento continua em várias trilhas paralelas. A principal branch de desenvolvimento é a HEAD ou trunk da nossa árvore do Subversion, conhecida como FreeBSD-CURRENT ou -CURRENT quando abreviado.

Um conjunto de branches mais estáveis é mantido, e é conhecido como FreeBSD-STABLE ou -STABLE na forma abreviada. Todas as branchs ficam em um repositório principal do Subversion mantido pelo Projeto FreeBSD. O FreeBSD-CURRENT é a vanguarda do desenvolvimento tecnológico do FreeBSD, pelo qual todas as novas alterações entram no sistema pela primeira vez. O FreeBSD-STABLE é a branch de desenvolvimento a partir do qual as releases principais são feitas. Mudanças entram nesta branch em um ritmo diferente, e com a suposição geral de que elas foram primeiro para o FreeBSD-CURRENT e foram exaustivamente testadas por nossa comunidade de usuários.

O termo stable no nome da branch refere-se à estabilidade presumida da Interface Binária da Aplicação (ABI), que é prometida pelo projeto. Isso significa que um aplicativo de usuário compilado em uma versão mais antiga do sistema da mesma branch funciona em um sistema mais novo da mesma branch. A estabilidade do ABI melhorou muito em relação às versões anteriores. Na maioria dos casos, os binários dos sistemas STABLE mais antigos são executados sem modificações em sistemas mais recentes, incluindo o HEAD, assumindo que as interfaces de gerenciamento do sistema não são usadas.

No período intermediário entre as versões, snapshots semanais são construídos automaticamente pelas máquinas de build do Projeto FreeBSD e disponibilizados para download em ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/. A ampla disponibilidade de snapshots binários e a tendência da nossa comunidade de usuários para acompanhar o desenvolvimento do -STABLE com o Subversion e make buildworld [4] ajuda a manter o FreeBSD-STABLE em uma condição muito confiável, mesmo antes que as atividades de garantia de qualidade aumentem na proximidade de um grande lançamento.

Além dos snapshots de instalação no formato ISO, imagens semanais de máquinas virtuais também são fornecidas para uso com o VirtualBox, o qemu ou outros softwares populares de emulação. As imagens de máquinas virtuais podem ser baixadas em ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/VM-IMAGES/.

As imagens das máquinas virtuais tem aproximadamente 150MB compactadas com o xz(1) e contêm um sistema de arquivos esparso de 10GB quando atachado a uma máquina virtual.

Relatórios de bugs e solicitações de recursos são enviados continuamente pelos usuários durante todo o ciclo da release. Os relatórios de problemas são inseridos em nosso banco de dados do Bugzilla por meio da interface da Web disponibilizada em https://www.freebsd.org/support/bugreports.html.

Para atender nossos usuários mais conservadores, versões individuais foram introduzidas com o FreeBSD 4.3. Estas branchs de versões são criadas pouco antes de uma liberação final ser feita. Após o lançamento, somente as correções e adições de segurança mais críticas são aplicadas na branch da versão. Além das atualizações do código fonte via Subversion, patchkits binários estão disponíveis para manter os sistemas nas branchs releng/X.Y atualizadas.

1.1. O que Este Artigo Descreve

As seções a seguir deste artigo descrevem:

Seção 2, “Processos de Release (Versão) ”

As diferentes fases do processo de engenharia de release que levam à criação do sistema atual.

Seção 3, “Construção da Release (Versão)”

O processo de criação atual.

Seção 5, “Extensibilidade”

Como o release base pode ser estendido por terceiros.

Seção 6, “Lições Aprendidas do FreeBSD 4.4”

Algumas das lições aprendidas através do lançamento do FreeBSD 4.4.

Seção 7, “Direções futuras”

Direções futuras de desenvolvimento.



All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.