Esta é uma tradução da página original em Inglês.

Recursos de desenvolvimento do GNU

Esta página descreve muitos dos recursos de desenvolvimento disponíveis para desenvolvedores GNU em máquinas do Projeto GNU. Para obter detalhes completos sobre os privilégios e responsabilidades dos mantenedores do GNU, consulte o documento Informações para os mantenedores do GNU e siga também o Padrão de Codificação GNU. Também é interessante revisar as dicas para mantenedores do GNU e visão geral do que é significa ser um pacote GNU.

Com a abundância de computadores baratos que podem executar o GNU/Linux, bem como a maior disponibilidade de acesso à Internet, muitos voluntários do GNU hoje têm todas as instalações de computadores de que precisam. No entanto, ainda existem vantagens em ter computadores centrais onde os voluntários do GNU podem trabalhar juntos sem precisar tornar suas próprias máquinas acessíveis a outras pessoas.

Por esse motivo, a Free Software Foundation incentiva fortemente os projetos de software GNU a usar as máquinas em gnu.org como base. O uso dessas máquinas também beneficia o Projeto GNU indiretamente, aumentando a conscientização do público sobre o GNU e difundindo a ideia de trabalhar em conjunto para o benefício de todos.

Savannah e controle de versão

Se você estiver desenvolvendo um pacote oficial do GNU, é altamente recomendável usar um repositório de controle de código-fonte pública em Savannah, o servidor de hospedagem GNU. Para fazer isso, primeiro crie uma conta para você e depois registre seu pacote GNU. Após a criação, você poderá escolher um sistema de controle de versão, criar páginas web para o seu pacote, gerenciar permissões para colaboradores das páginas e muitos outros recursos.

Listas de discussão

Operamos listas de discussão para pacotes de software GNU, conforme necessário, incluindo listas gerenciadas manualmente e gerenciadas automaticamente.

Quando um pacote GNU é registrado em Savannah, uma interface web permite que os desenvolvedores criem e gerenciem listas de discussão dedicadas ao seu pacote.

Cada pacote GNU nome deve ter pelo menos uma lista de relatórios de erros com o nome canônico bug-nomepacote@gnu.org, além de aliases que podem ser úteis. Usando Savannah, você pode criar listas para o seu pacote com nomes como este. Alguns pacotes compartilham a lista bug-gnu-utils@gnu.org, mas agora incentivamos os pacotes a configurar suas próprias listas individuais.

Os pacotes podem ter outras listas de anúncios, pedindo ajuda, publicando o código-fonte, discutindo os usuários ou o que o mantenedor do pacote achar útil.

Os arquivos da lista de discussão para listas gerenciadas automaticamente estão disponíveis em lists.gnu.org (os arquivos mbox podem ser baixados por HTTPS), bem como por meio do gerenciador de listas. Arquivos para listas mantidas à mão geralmente são mantidos em /com/archive nas máquinas GNU.

Quando uma lista de discussão se torna grande o suficiente para justificá-la, podemos configurar um grupo de notícias gnu.* com um link bidirecional para a lista de discussão.

Páginas web

O servidor web principal do GNU é http://www.gnu.org/. É altamente recomendável que os pacotes GNU usem http://www.gnu.org/software/nomepacote como sua página inicial principal.

Usando Savannah, os desenvolvedores podem criar e manter suas próprias páginas nesse URL por meio de um “repositório web” do CVS, separado do repositório de origem principal do pacote (que pode usar qualquer sistema de controle de versão suportado). Mais informações sobre como manter páginas web do GNU.

FTP

O site FTP principal para o softwares do GNU em http://ftp.gnu.org/, o qual é espelhado em todo o mundo. É altamente recomendável que todos os pacotes GNU carreguem seus lançamentos aqui (além de qualquer outro local que você achar conveniente).

Usamos um servidor diferente para lançamentos de teste, para que as pessoas não os instalem pensando que estão prontos para o horário nobre. Este servidor é ftp://alpha.gnu.org/.

O documento Informações para mantenedores do GNU possui detalhes completos sobre o processo de envio por ftp, que é o mesmo para os dois servidores.

Contas de login

Fornecemos acesso de login do shell às máquinas GNU para pessoas que precisam delas para trabalhar no software GNU. Ter uma conta de login é um privilégio e uma responsabilidade, e elas devem ser usadas apenas para o seu trabalho no GNU. Instruções para obter máquinas de uma conta estão escritas separadamente.

Na máquina de login geral, os desenvolvedores do pacote gsrc mantêm uma hierarquia das versões atuais de pacotes GNU (/gd/gnu/gnusys/live), compilada a partir dos fontes originais. Para usá-lo, carregue /gd/gnu/gnusys/live/setup.

Você também pode usar uma conta GNU para e-mail.

Hydra: Compilações contínuas e testes de portabilidade

As ferramentas de compilação contínua (geralmente chamadas de ferramentas de integração contínua) permitem detectar erros de programação logo após serem introduzidos em um projeto de software, o que é particularmente útil para software desenvolvido em cooperação.

Hydra é uma ferramenta de compilação contínua livre com base no gerenciador de pacote Nix. Administradores da instância Hydra na Universidade Técnica de Delft ofereceram generosamente slots para o Projeto GNU. Projetos na Hydra são recompiladas em cada commit ou alteração em suas dependências, o que vier primeiro (dependências incluem o ambiente de compilação padrão sendo usado,o qual em si contém versões de lançamento recentes do GCC, GNU make etc.)

Atualmente, ela pode compilar software no GNU/Linux (i686 e x86_64), bem como no FreeBSD, Darwin, Solaris e Cygwin, e pode fazer compilação cruzada de versões para o GNU/Hurd, GNU/Linux em outras arquiteturas e MinGW. Ele pode fornecer relatórios de cobertura de código produzidos usando LCOV. Além de tarballs de fontes e pacotes Nix, ela pode construir pacotes para distribuições baseadas em deb e RPM. Os pacotes podem ser criados com base nas versões mais recentes de suas dependências; por exemplo, o GnuTLS é compilado usando as versões GNU libtasn1 e GNU libgcrypt correspondentes à sua última revisão.

Além da interface web, a Hydra pode enviar notificações por e-mail quando o status da compilação de um projeto for alterado — por exemplo, de SUCCEED a FAILED. Quando uma compilação falha, seu log e a árvore de compilação são acessíveis a partir da interface web; o último permite que os arquivos gerados (por exemplo, config.log ou testsuite.log) sejam inspecionados, o que fornece dicas de depuração.

Qualquer pacote de software GNU pode solicitar um slot na Hydra. Cada pacote deve fornecer sua própria “receita de compilação” escrita na linguagem Nix (uma expressão Nix, na linguagem Nix). Expressões Nix para projetos GNU estão disponíveis no Git. Para projetos simples usando ferramentas de compilação padrão do GNU, como Automake e Autoconf, a receita geralmente é bastante simples. Por exemplo, consulte a receita para o GNU Patch. Você pode pedir orientação em hydra-users@gnu.org.

Após criar sua receita de compilação, envie um e-mail para hydra-users@gnu.org e peça para ser incluída na Hydra. Certifique-se também de se tornar um membro do projeto hydra-recipes no Savannah. Isso permitirá que você personalize o trabalho de compilação do seu projeto diretamente.

Para informações técnicas sobre a Hydra, consulte o manual da Hydra. Para mais detalhes, confira o manual do Nix.

platform-testers: Testes de portabilidade manuais

Outra opção útil para testes de pré-lançamento é a lista de discussão de platform-testers. Se houver tempo, as pessoas nesta lista criam pré-lançamentos em uma ampla variedade de plataformas, mediante solicitação. (São necessários voluntários para lidar com solicitações de teste! Basta se inscrever na lista e começar a participar.)

Ao contrário da ferramenta Hydra descrita acima, a lista de platform-testers funciona essencialmente à mão, portanto cada método tem suas vantagens e desvantagens. Além disso, a equipe de platform-testers tem acesso a uma variedade maior de plataformas e compiladores do que a configuração da Hydra.

Portanto, se você tiver um pré-lançamento, poderá escrever para a lista de discussão, fornecendo (1) o URL para o tarball, (2) a data planejada do lançamento e (3) o endereço de e-mail para o qual os relatórios de compilação devem ser enviado. As compilações e relatórios são feitos à mão pelos voluntários da lista.