Skip to content

Atualiza packtools de 4.16.6 para 4.16.7#22

Open
Rossi-Luciano wants to merge 1 commit into
scieloorg:mainfrom
Rossi-Luciano:update-packtools-4.16.7
Open

Atualiza packtools de 4.16.6 para 4.16.7#22
Rossi-Luciano wants to merge 1 commit into
scieloorg:mainfrom
Rossi-Luciano:update-packtools-4.16.7

Conversation

@Rossi-Luciano

@Rossi-Luciano Rossi-Luciano commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

O que esse PR faz?

Atualiza a dependência packtools da versão 4.16.6 para 4.16.7.

A versão 4.16.7 inclui o fix do packtools#1232, que corrige 3 bugs de serialização JSON em validate_xml_content que quebravam o relatório de validação do spsvalidator, reportados originalmente em spsvalidator#20:

  1. supplementary_material.py: etree.tostring(nodes[0]) sem encoding=str retornava bytes em obtained/got_value na checagem de "Prohibition of inline-supplementary-material", causando TypeError: Object of type bytes is not JSON serializable.
  2. xml_validations.py / validate_journal_meta: buscava a chave publisher_name_list_error_level, mas journal_rules.json define a chave como publisher_name_error_level (sem _list). Ocorria em 100% dos pacotes testados, já que validate_journal_meta sempre roda quando há journal_data.
  3. xml_validations.py / validate_supplementary_materials: achatava visual_resource_base_rules e graphic_rules num único dict antes de repassar para MediaValidation/GraphicValidation. Como os dois conjuntos de regras têm valores diferentes para as mesmas chaves (xlink_href_error_level: CRITICAL vs ERROR; valid_extension: extensões de mídia vs de imagem), o merge fazia os dois validadores sempre usarem os valores de graphic_rules.

Onde a revisão poderia começar?

  • spsvalidator/pyproject.toml: atualização da dependência.
  • spsvalidator/tests/test_packtools_validations.py: test_packtools_version atualizado para a nova versão instalada.

Como este poderia ser testado manualmente?

  1. Recriar o ambiente: cd spsvalidator && python3 -m venv .venv && .venv/bin/pip install -e .
  2. Rodar a suíte de testes: .venv/bin/pytest tests/
  3. Limpar o histórico local (opcional): apagar ~/.spsvalidator/spsvalidator.sqlite3
  4. Subir a aplicação: .venv/bin/spsvalidator --browser
  5. Validar um pacote .zip SPS real e conferir que a coluna "Exceptions" fica em 0

Algum cenário de contexto que queira dar?

Antes do fix, pacotes SPS reais quebravam a geração do relatório JSON com os 3 bugs acima. Refiz o build do ambiente do zero (venv recriado, banco de dados local limpo) e validei, pela interface real (upload manual de cada .zip, sem chamar a API diretamente), os 30 pacotes SPS reais usados originalmente para reproduzir os bugs (pasta gestaoeditorial-20260630T202930Z-3-001/gestaoeditorial, um .zip por subpasta).

Resultado: os 30 pacotes foram processados com sucesso pela interface (upload, HTTP 302, sem exceptions), nenhum traceback no log do servidor, nenhum erro no console do navegador. A coluna "Exceptions" ficou em 0 para todos os 30 registros no histórico de validações. O download do relatório CSV também foi testado e funciona corretamente.

Os totais de CRITICAL/ERROR/WARNING variam em relação ao teste anterior feito diretamente no packtools (issue spsvalidator#20), porque aquele teste usava um patch local pré-revisão; a versão final mesclada em #1232 separou corretamente as regras de media_rules/graphic_rules (item 3 acima), o que reclassifica algumas issues de ERROR para CRITICAL.

Screenshots

image image

Quais são tickets relevantes?

Referências

A versão 4.16.7 inclui o fix do packtools#1232, que corrige 3 bugs de
serialização JSON no relatório de validação (spsvalidator#20).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Rossi-Luciano Rossi-Luciano added the enhancement New feature or request label Jul 3, 2026
@Rossi-Luciano Rossi-Luciano linked an issue Jul 3, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error ao submeter .zip

2 participants