Implementar validações para elemento <journal-meta> (SPS 1.10)#1098
Draft
Implementar validações para elemento <journal-meta> (SPS 1.10)#1098
Conversation
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
…ata fields Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Implement validations for the <journal-meta> element
Implementar validações para elemento <journal-meta> (SPS 1.10)
Feb 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?
Implementa 11 validações estruturais, de formato e atributos para
<journal-meta>conforme especificação SPS 1.10, excedendo meta de 75% (11/11 regras planejadas vs 9/12 mínimo).Classes adicionadas:
JournalMetaPresenceValidation: Valida presença/unicidade de elementos obrigatórios (7 métodos, nível CRITICAL)ISSNFormatValidation: Valida formato ISSNXXXX-XXXXcom 'X' maiúsculo (ISO 3297)JournalMetaAttributeValidation: Valida valores permitidos de atributos e unicidade de tiposRegras implementadas:
@journal-id-type,@pub-type, unicidade de tipos ISSNOnde a revisão poderia começar?
packtools/sps/validation/journal_meta.py- linhas 387-775 (classes novas)tests/sps/validation/test_journal_meta.py- linhas 721+ (23 novos testes)Padrão de implementação:
Como este poderia ser testado manualmente?
Testes unitários:
Algum cenário de contexto que queira dar?
Validações seguem padrão existente usando
format_response()e retornam generators com estrutura padronizada:{ 'response': 'OK|CRITICAL|ERROR|WARNING', 'title': 'Validation title', 'validation_type': 'exist|format|value in list|uniqueness', 'advice': 'Como corrigir (se inválido)', 'data': {...} }Decisões de implementação:
^\d{4}-\d{3}[\dX]$(uppercase X apenas, conforme ISO 3297)datainclui valores apenas quandois_valid=True(consistência)CodeQL: 0 vulnerabilidades
Testes: 23/23 passing
Cobertura: 100% das regras planejadas (P0 + P1)
Referências
packtools/sps/validation/article_doi.pyOriginal prompt
This section details on the original issue you should resolve
<issue_title>Criar validações para o elemento </issue_title>
<issue_description>## Objetivo
Implementar validações para o elemento
<journal-meta>conforme a especificação SPS 1.10, aumentando a conformidade de X% para 75% (9 de 12 regras).Nota: Algumas validações para
<journal-meta>podem já estar parcialmente implementadas no repositório. Este Issue visa reavaliar, complementar e garantir cobertura completa das regras SPS 1.10.Contexto
O elemento
<journal-meta>identifica os metadados do periódico registrados na SciELO, incluindo IDs, títulos, ISSNs e publisher. Validações corretas garantem que todos os elementos obrigatórios estejam presentes, que ISSNs tenham formato válido, e que atributos obrigatórios estejam corretos.Conformidade atual: X de 12 regras implementadas (X%)
Meta após implementação: 9 de 12 regras (75%)
Documentação SPS
Referência oficial: https://docs.google.com/document/d/1GTv4Inc2LS_AXY-ToHT3HmO66UT0VAHWJNOIqzBNSgA/edit?tab=t.0#heading=h.journalmeta
Regras principais conforme SPS 1.10:
Ocorrência:
<journal-meta>deve aparecer exatamente uma vez em<front>Elementos obrigatórios:
<journal-id journal-id-type="publisher-id">- Acrônimo oficial do periódico na SciELO<journal-title>- Título do periódico registrado na SciELO<abbrev-journal-title abbrev-type="publisher">- Título abreviado registrado na SciELO<issn>(epub ou ppub)<publisher-name>- Nome do publisher registrado na SciELOElementos condicionais:
<journal-id journal-id-type="nlm-ta">- Obrigatório se o periódico for indexado no PubMed (usar título abreviado do PubMed)Valores permitidos para
@journal-id-type:publisher-id- Acrônimo oficial SciELO (obrigatório)nlm-ta- Título abreviado PubMed (condicional)Valores permitidos para
@pub-typeem<issn>:epub- ISSN onlineppub- ISSN printValores permitidos para
@abbrev-typeem<abbrev-journal-title>:publisher- Título abreviado do publisher (obrigatório)Formato de ISSN:
XXXX-XXXX(4 dígitos, hífen, 4 dígitos)Fonte de dados:
Regras a Implementar
P0 – Críticas (implementar obrigatoriamente)
<journal-meta><journal-meta>é obrigatório em<front><journal-meta><journal-meta>deve aparecer exatamente uma vez em<front><journal-id @journal-id-type="publisher-id"><journal-id>com@journal-id-type="publisher-id"é obrigatório<journal-title><journal-title>é obrigatório<abbrev-journal-title @abbrev-type="publisher"><abbrev-journal-title>com@abbrev-type="publisher"é obrigatório<issn><issn>(epub ou ppub) é obrigatório<publisher-name><publisher-name>é obrigatório<issn>deve seguir formatoXXXX-XXXX(4 dígitos, hífen, 4 dígitos)P1 – Importantes (implementar se possível)
@journal-id-type@journal-id-typedeve serpublisher-idounlm-ta@pub-typeem<issn>@pub-typedeve serepubouppub<issn><issn>com o mesmo@pub-typeP2 – Futuras (fora do escopo deste Issue)
nlm-taquando indexado no PubMedArquivos a Criar/Modificar
Avaliar existentes (podem ter validações parciais):
packtools/sps/models/journal_meta.pyou similar – Verificar se modelo existepacktools/sps/validation/journal_meta.py– Verificar validações existentespacktools/sps/validation/rules/journal_meta_rules.jsonou similar – Verificar configuraçãoCriar (se não existirem):
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.