Corrige geração de executável do SPSValidator para Windows - #44
Merged
pitangainnovare merged 3 commits intoAug 13, 2026
Merged
Conversation
pitangainnovare
requested review from
samuelveigarangel
and removed request for
robertatakenaka
August 12, 2026 20:43
samuelveigarangel
approved these changes
Aug 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que esse PR faz?
Corrige o empacotamento do SPSValidator para Windows para gerar um único
arquivo executável.
O script utilizava o modo padrão
onedirdo PyInstaller, mas somente o arquivo.exeera distribuído. Por isso, ao iniciar, o programa não encontravadependências externas como
_internal/python312.dll.O comando de build passa a usar
--onefilee--clean. A documentação tambémfoi atualizada para descrever o formato do artefato, a necessidade de gerar o
build em Windows e a verificação recomendada antes da publicação.
Onde a revisão poderia começar?
A revisão pode começar em
spsvalidator/packaging/build_windows.ps1, onde foi alterado o modo de geraçãodo executável.
Em seguida, as instruções correspondentes podem ser revisadas em:
spsvalidator/packaging/README.mdspsvalidator/README.mdComo este poderia ser testado manualmente?
Em uma máquina Windows com Python instalado:
Acessar o diretório
spsvalidator, onde está opyproject.toml.Remover os diretórios
buildedistde builds anteriores.Executar:
Confirmar que foi criado somente o artefato
dist/spsvalidator.exe.Copiar
spsvalidator.exepara uma pasta vazia, sem_internalou outrosarquivos auxiliares.
Executar o arquivo e confirmar que a interface abre sem o erro relacionado
a
python312.dll.Validar um pacote SPS em formato
.zip.Conferir o relatório, exportar o CSV e encerrar o aplicativo.
O executável gerado durante a análise também foi inspecionado estaticamente. O
arquivo contém o interpretador Python 3.12, os módulos da aplicação, templates,
traduções e as principais dependências dentro do bundle do PyInstaller.
Algum cenário de contexto que queira dar?
Na versão 0.3.0, o executável foi distribuído sem o diretório
_internalproduzido pelo modo
onedir. Ao tentar iniciá-lo no Windows, o bootloader doPyInstaller procurava
python312.dllnesse diretório e encerrava o programaantes da abertura da interface. Como o requisito de distribuição é um executável único, este PR adota o modo
onefileem vez de exigir a distribuição de toda a pasta gerada pelo modoonedir.Screenshots
N/A
Quais são os tickets relevantes?
Closes #43.
Referências
N/A
Segurança da informação (NSI.04)
Este PR manipula dados sensíveis ou pessoais (LGPD)?
Este PR altera autenticação, autorização, controle de acesso ou gerenciamento de sessão?
Este PR introduz, atualiza ou remove dependências de terceiros?
Este PR foi validado pelo pipeline de segurança (SonarQube / Trivy)?
Este PR concatena, monta ou executa comandos SQL, HTML ou JavaScript a partir de entrada externa?
Este PR expõe novos endpoints, telas ou serviços?
Algum segredo, senha, chave ou token está sendo adicionado ao código-fonte?