1 ano depois que o Guix migrou para o Codeberg
(guix.gnu.org)- O Guix mudou em 2025 para o Codeberg o modelo de colaboração que por mais de 10 anos funcionava com Savannah e Debbugs baseado em e-mail, alterando bastante a porta de entrada para contribuições de um projeto com mais de 400 participantes por ano
- A mudança foi o primeiro caso prático do processo de Guix Consensus Document introduzido em dezembro de 2024, e o GCD 002 entrou em vigor no início de maio de 2025 após dois meses de discussão
- O fluxo de trabalho anterior por e-mail era eficiente para usuários experientes graças a ferramentas como Emacs, mumi e qa.guix.gnu.org, mas em uma pesquisa com 900 respostas foi frequentemente apontado como uma barreira para contribuidores
- Depois da migração para o Codeberg, o número de autores e de novos autores aumentou, mas, tirando o pico temporário de junho de 2025, é difícil confirmar um efeito Codeberg claro
- Mais de 500 pull requests são abertos por mês e o backlog está crescendo, então reduzir a lacuna de CI, a exigência de assinatura e a carga de revisão continua sendo a próxima tarefa prática do Guix
Da colaboração baseada em e-mail para o Codeberg
- Em 2025, o Guix migrou para o Codeberg a hospedagem do código-fonte, o rastreamento de issues e os pull requests
- Antes disso, o código ficou hospedado por mais de 10 anos no Savannah
- Relatórios de bugs e patches eram tratados por e-mail e rastreados por uma instância do Debbugs
- Como é um projeto em que mais de 400 pessoas contribuem com código por ano, a própria transição já foi uma grande mudança
- Os principais contribuidores antigos estavam acostumados ao fluxo de trabalho por e-mail e trabalhavam com eficiência usando o pacote Debbugs para Emacs ou clientes de e-mail avançados
- Enquanto o Debbugs depende de algumas centenas de linhas de Perl e de padrões de e-mail e estrutura federada, forges web como o Forgejo são sistemas maiores com muitas dependências em Go
- Em torno do fluxo por e-mail, já existiam também ferramentas auxiliares estabelecidas
- O mumi fornece uma interface web para o Debbugs
- O Quality Assurance service aplica automaticamente séries de patches enviados por e-mail em branches Git e compila os pacotes nessas branches
- Na primeira pesquisa pública com usuários e contribuidores, divulgada em janeiro de 2025, mais de 900 pessoas responderam, e os contribuidores frequentemente apontaram o fluxo por e-mail como uma barreira para contribuir
Uma decisão baseada em consenso conduzida pelo GCD 002
- O Guix não tinha um “benevolent dictator” para tomar decisões, e em dezembro de 2024 introduziu o processo de Guix Consensus Document
- O processo GCD busca construir consenso em vez de apenas votar
- Quem propõe precisa ajustar a proposta junto com os participantes
- Em vez de simplesmente se opor, os participantes devem sugerir suas necessidades e mudanças concretas para refletir isso
- Na versão final, as posições são marcadas como
support,acceptedisapprove
- O GCD 002 foi submetido em fevereiro de 2025 como proposta para migrar ao Codeberg
- A discussão durou os dois meses máximos previstos pelo processo
- Dois terços da equipe do Guix participaram da deliberação
- Entre os participantes, 72% escolheram
supporte os 28% restantes escolheramaccept - Não houve
disapprove, e a proposta entrou em vigor no início de maio de 2025
- Alguns membros com longa trajetória de contribuição consideravam um fluxo aparentemente priorizado para a web menos eficiente do que o e-mail e também relutavam em abrir mão de parte da infraestrutura baseada em e-mail
- A possibilidade de ampliar o contato com a comunidade e melhorar a experiência do desenvolvedor sustentou a mudança
- A preferência por uma forge baseada em software livre e hospedada pela organização sem fins lucrativos Codeberg e.V. não gerou grande controvérsia e também se alinhava à orientação do Guix
Transição gradual e uma lacuna de CI maior do que o esperado
- A migração para o Codeberg foi conduzida de forma gradual, conforme o consenso do GCD
- O repositório principal foi migrado em 25 de maio de 2025
- O repositório anterior continua como mirror até hoje
- O rastreador antigo de issues e patches será mantido até 1º de janeiro de 2026
- Depois disso, issues e pull requests no Codeberg serão o único mecanismo suportado
- Relatórios de bugs e patches antigos continuam acessíveis online
- Graças ao plano criado durante a discussão de consenso, houve poucos problemas ou situações inesperadas na transição
- A qualidade do serviço prestado por funcionários e voluntários do Codeberg e.V. foi boa, e períodos ocasionais de indisponibilidade costumam ser curtos e claramente comunicados
- Para contribuidores que preferem fluxos fora do navegador, melhorias na interface do Emacs ajudaram
fj.ele Emacs-Forgejo evoluíram- A possibilidade de criar pull requests com o workflow AGit também reduziu a dificuldade de adaptação
- O problema que não foi suficientemente previsto foi a integração contínua para pull requests
- O recurso do qa.guix.gnu.org que compilava patches enviados por e-mail não foi portado para o Codeberg
- Durante alguns meses, revisores tiveram de verificar manualmente se os pull requests não causavam problemas, algo que não era sustentável
- Em setembro de 2025, uma instância do Cuirass foi criada em pulls.ci.guix.gnu.org e passou a compilar pull requests
- No início, por ter mais limitações que o qa.guix.gnu.org, foi vista como uma solução provisória
- Hoje, os pacotes são compilados para uma única arquitetura
- Novos contribuidores podem ver imediatamente nos pull requests os resultados de sucesso ou falha deixados pelo
guix-cuirass-bot
O fluxo de contribuições cresceu, mas o backlog também
- Considerando o número de commits no branch principal de maio de 2024 a maio de 2026, o ritmo de commits do Guix permaneceu constantemente entre “alto” e “muito alto”
- Como o ritmo de commits sozinho não mostra bem as mudanças, o número mensal de autores de commits, committers e novos autores de commits se torna um indicador mais útil
- O número mensal de autores e de novos autores continuou aumentando
- Logo após a migração para o Codeberg, em junho de 2025, houve pico tanto no número de autores quanto no de novos autores
- Nos demais períodos, o crescimento entre 2025–2026 foi parecido com o de 2024–2025
- O Guix continua atraindo novos contribuidores, mas não houve um efeito Codeberg muito claro
- O aumento mensal no número de committers foi mais moderado do que o aumento no número de autores, o que pode indicar que os committers estão processando mais contribuições
- Os dados de pull requests foram coletados pela API do Forgejo do Codeberg
- Mais de 500 pull requests são abertos por mês e o ritmo de merge também é alto, mas ainda ligeiramente abaixo da entrada, então o backlog continua crescendo
- Atualmente, cerca de 639 dos 6.459 pull requests totais estão abertos, algo em torno de 10%
- Como comparação, no Nixpkgs há cerca de 12 mil pull requests abertos entre 473 mil no total, ou aproximadamente 2,5%
- O backlog do Guix pode ser resultado de atrito excessivo ou de feedback insuficiente do CI
- O Guix exige que cada commit receba a assinatura de um committer aprovado
- Não é como em muitos projetos, incluindo o Nixpkgs, onde basta apertar o botão
Merge - Quem faz o merge é responsável por aplicar e assinar a mudança
- O Guix escolheu a segurança da cadeia de suprimentos de software entre a conveniência do desenvolvedor e a segurança do usuário
- Ainda não está claro se esse custo poderá ser reduzido
- Não é como em muitos projetos, incluindo o Nixpkgs, onde basta apertar o botão
Colaboração mais visível no Codeberg
- Depois da migração para o Codeberg, a atividade do projeto ficou mais visível
- Os resultados de CI aparecem diretamente nos pull requests, então os contribuidores podem conferir isso de imediato
- As equipes do Guix são implementadas como equipes no Codeberg
- O escopo de cada equipe está definido no arquivo
CODEOWNERS - Os responsáveis por aquela área são chamados automaticamente
- Um bot aplica labels como
team-python, permitindo filtrar issues e pull requests por label
- O escopo de cada equipe está definido no arquivo
- O problema de a equipe não receber notificações em issues com essa label continua sendo um incômodo
- Recursos como referência cruzada entre issues e pull requests e milestones também parecem ajudar na colaboração
Desafios de infraestrutura restantes e a relação com o Codeberg
- A infraestrutura do Guix ainda precisa de mais ajuda
- É preciso melhorar o desempenho de build do pulls.ci.guix.gnu.org
- Também seria bom conseguir compilar para arquiteturas que não sejam x86
- O Cuirass tem várias limitações, e algumas estão sendo resolvidas na futura série 1.4.x
- O pulls.ci.guix.gnu.org ainda é focado em pacotes, e seria desejável poder executar também testes de sistema quando apropriado
- O workflow dos mantenedores de pacotes também ainda pode melhorar
- Branches temáticos e world rebuild scheduling continuam bastante ligados ao bug tracker aposentado
- O Guix precisa evitar sobrecarregar os servidores do Codeberg e também monitorar o uso de armazenamento do repositório
- Já houve casos de carga excessiva nos servidores do Codeberg
- Um único fork do Guix pode ultrapassar a nova cota de 750MiB por usuário no Codeberg
- Como solução, existe a opção de exigir que novos contribuidores usem o workflow AGit para criar pull requests
- O AGit já é popular entre contribuidores do Guix
- Ainda assim, para algumas pessoas ele parece um “downgrade” em relação ao workflow geral e familiar de pull requests
- Como no caso do Gentoo, adicionar um ícone “AGit fork” poderia melhorar a descoberta
- A Guix Foundation votou para se tornar membro apoiador do Codeberg e.V. como forma de agradecimento e apoio
- Foi enviado um pull request para adicionar o Forgejo e o serviço para configurá-lo no Guix
- A direção é tornar possível, dentro do próprio Guix, uma implantação declarativa da forge e reproduzível
1 comentários
Opiniões no Lobste.rs
Ver as métricas reais do projeto relacionadas à migração para o Codeberg é bem interessante. Pessoalmente, tenho motivos demais para sair do GitHub, então espero que o Codeberg se torne o novo GitHub, mas eu migrei para meu próprio servidor Forgejo e agora uso o Codeberg como destino de backup de todos os repositórios
Não precisamos de outro novo hub central de código aberto
Até agora tem sido ótimo, e com certeza prefiro ao
git. Pelos padrões de hoje, a barreira também não é tão alta assimO que realmente me irritou desde que comecei a usar o Codeberg é que quase não existem ferramentas com suporte decente à integração com git, e na prática a maioria é voltada só para GitHub / GitLab
magit forge, dá vontade de chorarNão entendi a parte de manter o antigo rastreador de issues e patches até 1º de janeiro de 2026 e depois passar a oferecer suporte apenas a issues e pull requests do Codeberg
Se uma parte considerável dos contribuidores não gosta do novo fluxo, não entendo por que forçar a mudança, e também fico curioso sobre quais seriam os custos ocultos de permitir vários fluxos. Fico me perguntando por que impor o mesmo método para todo mundo
É uma implicância pequena, mas não parecia que o Codeberg tinha vários funcionários pagos; até onde eu sabia, era só uma pessoa. Correção: disseram que um segundo funcionário foi contratado em dezembro do ano passado