Testar recursos em desenvolvimento costuma ser uma tarefa reservada aos usuários mais experientes. Instalar pacotes experimentais, adicionar repositórios temporários ou substituir componentes importantes do sistema sempre envolve algum risco.

Pensando nisso, os desenvolvedores do GNOME apresentaram um novo projeto que pretende tornar esse processo muito mais simples. Batizada provisoriamente de Test Center, a ferramenta deverá funcionar como uma central para instalar, gerenciar e remover versões experimentais de aplicativos e até mesmo componentes do próprio sistema operacional.

A iniciativa faz parte do projeto GNOME OS Developer Tool Suite, financiado pelo Prototype Fund da Alemanha, e busca melhorar a experiência de desenvolvimento e testes no GNOME OS, uma distribuição baseada em imagens imutáveis utilizada principalmente pelos desenvolvedores do projeto.

Testar novidades sem comprometer o sistema

A proposta do Test Center é permitir que qualquer pessoa experimente novos recursos sem precisar modificar permanentemente a instalação do sistema. Para aplicativos, o funcionamento será semelhante ao de programas beta distribuídos em plataformas como o TestFlight, da Apple.

O desenvolvedor poderá compartilhar um link para uma versão experimental de seu aplicativo e, ao acessá-lo, o usuário instalará essa versão diretamente pelo Test Center. O sistema identificará claramente que se trata de um software em testes e ainda poderá definir uma data de expiração automática para essa instalação.

Quando o período de testes terminar, basta remover a versão experimental e voltar imediatamente para a edição estável.

Hoje esse fluxo já é possível utilizando Flatpak, mas exige uma série de etapas pouco amigáveis, como baixar artefatos de integração contínua ou gerar manualmente pacotes para instalação. O objetivo do GNOME é eliminar praticamente toda essa complexidade.

GNOME quer facilitar testes de recursos experimentais
Mockup do Test Center. Imagem: Modal Collective

Recursos do sistema também poderão ser testados

A ideia fica ainda mais interessante quando aplicada aos próprios componentes do sistema operacional. Atualmente, testar uma funcionalidade em desenvolvimento normalmente exige substituir pacotes oficiais por versões experimentais. Em distribuições tradicionais isso costuma acontecer por meio de repositórios alternativos, como PPAs no Ubuntu ou COPRs no Fedora.

Embora esse método funcione, ele apresenta alguns inconvenientes. Os pacotes experimentais substituem diretamente os componentes estáveis do sistema. Caso algo apresente problemas, o usuário pode precisar resolver conflitos manualmente, perder atualizações ou até restaurar pacotes antigos para voltar ao estado anterior.

O Test Center pretende eliminar esse risco utilizando um mecanismo conhecido como system extensions, ou simplesmente sysext. Em vez de substituir arquivos do sistema, essas extensões funcionam como uma camada adicional sobre a instalação existente. Os componentes originais permanecem intactos, permitindo ativar ou remover um experimento sem alterar permanentemente o sistema operacional.

Essa abordagem é especialmente interessante para sistemas baseados em imagens imutáveis, como o próprio GNOME OS, nos quais modificar diretamente a base do sistema não faz parte da proposta da plataforma.

Uma resposta à evolução dos sistemas imutáveis

O projeto também responde a uma mudança mais ampla que vem acontecendo no ecossistema Linux. Cada vez mais distribuições adotam arquiteturas baseadas em imagens, nas quais o sistema principal permanece protegido contra alterações diretas. Fedora Atomic, openSUSE Aeon, SteamOS e o próprio GNOME OS seguem essa tendência.

Esse modelo oferece vantagens importantes em estabilidade, segurança e confiabilidade durante atualizações, mas também exige novas formas de distribuir software para desenvolvedores.

Enquanto o Flatpak resolveu grande parte da distribuição de aplicativos gráficos, ainda existem lacunas quando o assunto são componentes internos do sistema e ferramentas utilizadas durante o desenvolvimento. O Test Center surge justamente para preencher parte desse espaço.

Ferramentas de linha de comando também estão nos planos

Além do Test Center, a equipe trabalha em outro desafio importante: distribuir ferramentas de linha de comando em sistemas imutáveis ainda é uma experiência relativamente complicada.

Programas como RenderDoc, Nmap, GitHub CLI, Traceroute e diversas outras utilidades utilizadas por desenvolvedores nem sempre encontram um método padronizado de distribuição nesse tipo de ambiente.

Segundo os desenvolvedores, eles já trabalham em uma solução específica para esse cenário, embora os detalhes ainda não tenham sido divulgados. A expectativa é que essa proposta seja apresentada em uma publicação separada nos próximos meses.

Tornando o desenvolvimento mais acessível

Embora o projeto seja voltado inicialmente ao GNOME OS, seus benefícios podem alcançar toda a comunidade. Quanto mais fácil for distribuir versões experimentais de aplicativos e recursos do sistema, maior tende a ser a quantidade de usuários participando dos testes.

Isso permite identificar problemas mais cedo, coletar feedback de pessoas que não necessariamente possuem conhecimento técnico e reduzir o risco de falhas chegarem às versões estáveis.

Ainda não existe uma previsão para que o Test Center seja disponibilizado aos usuários, já que o projeto continua em fase de prototipagem. Mesmo assim, a proposta mostra como o GNOME pretende adaptar seu fluxo de desenvolvimento à crescente adoção de sistemas imutáveis, aproximando a experiência de testes daquela encontrada em plataformas como Android, iOS e macOS, sem abrir mão das características que tornam o Linux tão flexível.

Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!