Files
ESPDocs/CHANGELOG.md
Lucas RayanandClaude Sonnet 5.5 3a1a095e97
CI / Lint e auditorias (push) Successful in 42s
CI / Trivy (dependências e segredos) (push) Successful in 8s
CI / Imagem Docker (linux/arm64) (push) Successful in 2m11s
ci: a real smoke test for the localized routes, and a single redirect from the root
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 10:33:40 -03:00

5.8 KiB

Registro de mudanças

Tudo o que muda de relevante no ESPDocs está aqui. O formato segue o Keep a Changelog e o projeto segue o Versionamento Semântico.

Não lançado

Adicionado

  • Infraestrutura de internacionalização com next-intl (Fase 1):
    • Roteamento com prefixo de idioma sob app/[locale]/, com 6 locales declarados (pt, en, es, fr, de, zh-CN).
    • middleware.js com negociação de idioma na raiz por cookie NEXT_LOCALE e cabeçalho Accept-Language (com pesos q), redirecionamento 308 de URLs antigas sem prefixo para /pt/, e retorno 404 para /livro fora do português.
    • Seletor de idiomas acessível no cabeçalho com atalho para os 6 idiomas, persistência via cookie NEXT_LOCALE e mapeamento de rota correspondente.
    • Regras de tipografia de sistema CJK para zh-CN e hifenização/quebra de palavras para de e fr.
  • Extração de strings e dados canônicos (Fase 2):
    • Catálogo de mensagens canônico messages/pt.json cobrindo 15 namespaces de páginas e componentes sem alteração de conteúdo.
    • Conjunto de dados canônicos em data/pt/ (series.json, frameworks.json, conexoes/*.json) e módulos em lib/data/pt/ (glossario.js, diagnostico.js, componentes.js, topicos.js) com carregadores por locale em lib/data/index.js.
    • Script automatizado de validação check:i18n integrado ao npm run check, verificando paridade de chaves, ausência de valores vazios e garantia estrita de ausência de referências ao livro fora do português.

Alterado

  • O teste de subida da imagem na CI virou scripts/smoke-imagem.sh: confere as rotas de cada idioma, a negociação de Accept-Language, os redirects 308 das URLs antigas, o 404 do livro fora do português e a metadata no <head>, e falha se o servidor registrar erro de render. O curl só na raiz deixou passar uma home quebrada.
  • A metadata (título, canonical, Open Graph) sempre sai no <head> do HTML inicial, para qualquer cliente, como já era antes do i18n.
  • A raiz / redireciona direto para /<idioma>, em um salto só.

1.1.0 - 2026-11-01

Adicionado

  • Busca no site, aberta pelo botão do cabeçalho ou por Ctrl/⌘+K. O índice (séries, frameworks, glossário, erros de diagnóstico, componentes e conexões) é gerado no build, em /api/busca.

Alterado

  • Os links do repositório do projeto (rodapé, "Sobre", dados estruturados) apontam para o Gitea, e o ícone do GitHub virou o do Gitea. Os links dos frameworks da Espressif continuam no GitHub, porque os repositórios são deles.
  • O site passou a rodar na Oracle, a partir da imagem Docker do registro do Gitea, em espdocs.cienciaembarcada.com.br e espdocs.lucasrguerra.dev.br.
  • CI: a imagem é construída, escaneada e testada uma vez, em arm64, no push da branch, e o release só aplica as tags; o gatilho pull_request (que repetia o push) e o segundo next build do job de lint saíram, e os caches do npm e da compilação do Next ficam entre as execuções.

1.0.0 - 2026-10-30

A primeira versão com tag. O trabalho anterior nunca foi tagueado, então esta entrada resume tudo desde o primeiro commit, em 2025-10-21, até a imagem Docker.

Conteúdo

  • Documentação não oficial do ecossistema ESP32 em português: uma página por série de chips, com especificações, conexões e consumo, e a página de comparação lado a lado.
  • Diagramas interativos de conexões e componentes, com o esquema de dados de conexões padronizado.
  • Frameworks documentados: ESP-IDF, Arduino, MicroPython, ESP-RainMaker e ESP-Matter.
  • Glossário técnico, página "Sobre" e chamadas para o catálogo.
  • Catálogo de placas de desenvolvimento a partir de uma planilha do Google (/api/placas), com filtros e cache de 10 minutos.
  • Ferramenta de seleção: perguntas sobre o projeto (Ethernet, tela e outras) e recomendação da série mais adequada.
  • Novos modelos, incluindo o ESP32-H4, e a contagem de componentes e de drivers (interface, conectividade e áudio) ampliada.

Interface e acessibilidade

  • Tema escuro e redesenho das páginas internas no novo sistema de design, com contraste AAA e auditoria automática de temas e de páginas (npm run check).
  • Identidade nova: logo, ícones, manifest e imagens Open Graph.
  • SEO: mapa do site, dados estruturados, trilhas de navegação e favicons.
  • Exportação do conteúdo em PDF CMYK e dos slides de treinamento em PDF 16:9, gerados com Puppeteer (scripts locais).

Dados corrigidos

  • Revisão dos dados das séries contra os datasheets oficiais da Espressif: consumo, temperatura, ADC, PSRAM, memória LP, CAN FD, frequências e versões de Secure Boot do ESP32, S2, S3, C2, C3, C5, C6, C61, H2, H4, P4 e S31.

Implantação

  • Imagem Docker (node:22-alpine, build standalone, usuário sem privilégio, HEALTHCHECK), pronta para o servidor Oracle, publicada para linux/arm64 em git.lucasrguerra.dev.br/lucasrguerra/espdocs. A variável NEXT_OUTPUT=standalone liga o empacotamento só dentro da imagem; fora dela o build continua o mesmo para o pm2 (start.config.js, porta 3001).
  • O código passou para o Gitea, com CI em .gitea/workflows: lint, auditorias, Trivy no repositório e na imagem, e teste de que a imagem sobe e responde. O Release reaproveita a imagem quando nada do que a compõe mudou.

Segurança

  • next 15.5.28, que corrige a execução remota de código sem autenticação na otimização de imagens (GHSA-2464-fhr4-w9xw), e postcss fixado acima da cópia embutida no next.