Skip to content

fix: preserve package lists and detect profile generation failures - #10

Merged
bigbruno merged 1 commit into
mainfrom
fix/profile-tooling-regressions-20260907
Sep 7, 2026
Merged

bigbruno merged 1 commit into
mainfrom
fix/profile-tooling-regressions-20260907

Conversation

@bigbruno

@bigbruno bigbruno commented Sep 7, 2026

Copy link
Copy Markdown
Member

Objetivo

Corrigir falhas identificadas na revisão do motor de construção e da geração de perfis, acrescentando testes de regressão e execução automática da suíte.

Alterações

  • Listas de remoção vazias: substitui NR==FNR por FILENAME == ARGV[1] em apply_profile_removals(). Um arquivo *-remove de zero bytes deixa de apagar silenciosamente a lista Packages-*. Preserva o tratamento de links simbólicos e o staging para a limpeza no chroot.
  • Falhas de commit: separa a verificação do índice da execução de git commit em make-profiles.yml. Ausência de alterações continua sendo sucesso; falhas de commit e erros reais de git diff passam a interromper a etapa. Não depende de mensagens do Git nem de seu idioma.
  • Seções KDE do upstream: verifica os quatro cabeçalhos e o conteúdo das três seções essenciais antes de acrescentar qualquer trecho ao perfil. Aceita separadores com espaços/tabulações. Mantém ## Misc vazio como caso válido, conforme o perfil atualmente versionado. Uma seção ausente ou essencial vazia não deixa saída parcialmente modificada.
  • CI: adiciona .github/workflows/test.yml para push, pull_request e execução manual. Verifica sintaxe Bash e executa pytest -q -ra build-iso/tests/, com permissão somente de leitura e sem persistir credenciais no checkout.

Testes

São 46 cenários novos: 24 para listas vazias/comentários/espaços, arquivos regulares e links simbólicos nas quatro categorias; 6 para a etapa de commit em repositórios Git temporários; 16 para a extração das seções KDE.

Os testes das correções foram executados localmente. Após ajustar a compatibilidade com ## Misc vazio, os 16 testes KDE foram repetidos e passaram. Também foi verificada a sintaxe Bash dos scripts alterados.

Limites da validação: a suíte preexistente completa não foi executada integralmente no ambiente local; o novo workflow foi incluído para executá-la no GitHub. Não foi construída nem inicializada uma ISO. Os testes de seções usam fixtures e o formato do perfil versionado, não constituem uma construção integrada contra o Manjaro atual.

Escopo e preservação

Base: 68ace70b34ccf95bc4a2e90d6fb902e5dbd477de.

São 7 arquivos alterados/adicionados. Nenhum arquivo gerado em biglinux/ foi editado; a seleção de pacotes e a política de remoção por substring do gerador permanecem inalteradas. Não há merge automático nem alteração direta da main.

Handle zero-byte removal files by matching awk inputs by filename.
Propagate real git commit and diff failures from Make Profiles.
Validate upstream KDE sections before appending, while allowing the
legitimately empty Misc section.

Add 46 regression cases and a read-only push/PR test workflow.
Leave generated profiles untouched.

bigbruno commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

Validação confirmada no GitHub Actions

O workflow Test profile tooling do evento pull_request concluiu com sucesso para o commit e3ef6326876dc40a8bb51c37468d1204f5156f40.

  • Verificação de sintaxe Bash: aprovada.
  • Suíte completa (pytest -q -ra build-iso/tests/): 169 passed, 1 skipped.
  • O único teste pulado é test_engine_lsb_release.py:200, que depende de uma instalação real de manjaro-tools; esse pacote não está instalado no runner Ubuntu.

Execução: https://github.com/biglinux/iso-profiles/actions/runs/34146961247

Os logs foram consultados para confirmar os números acima. Isso complementa a validação local descrita no PR, mas não substitui uma construção e inicialização reais da ISO. Nenhum merge foi realizado.

@bigbruno
bigbruno merged commit d52c531 into main Sep 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant