Skip to content

Rodapé e versão sempre mostram dados de build estáticos (macOS), mesmo rodando em outra plataforma #32

Description

@Rossi-Luciano

Descrição do problema

src/spsvalidator/build_info.py é um arquivo estático, commitado no repositório, com os valores de uma build antiga feita num Mac:

APP_VERSION = "1.10"
BUILD_MACOS_VERSION = "26.3.1 (25D2128)"
BUILD_PLATFORM = "macOS"

build_metadata.py (get_footer_build_label()) usa esses valores sempre que BUILD_MACOS_VERSION != "development" e BUILD_PLATFORM == "macOS", sem checar a plataforma real em que o app está rodando. Como o arquivo é estático e esses valores nunca mudam, o rodapé mostra "Compilado para macOS 26.3.1 (25D2128)" mesmo rodando em Linux, Windows, ou numa build de desenvolvimento local, qualquer que seja a plataforma real.

Isso também afeta a versão exibida no título da página. version.py só lê pyproject.toml quando esse arquivo existe (rodando a partir do código-fonte). Num executável empacotado, sem pyproject.toml embutido, cai no mesmo build_info.APP_VERSION estático ("1.10"), desacoplado da versão real declarada em pyproject.toml (hoje "0.2.0"). Ou seja, atualizar a versão em pyproject.toml não tem nenhum efeito no título de um binário já empacotado, seria preciso reempacotar com um build_info.py atualizado manualmente.

Os PRs #17 e #19 (abertos, ainda não mesclados) já propõem substituir esse arquivo estático por detecção de plataforma/versão em tempo de execução, na mesma linha do que este problema descreve.

Passos para reproduzir o problema

  1. Rode o app a partir do código-fonte em qualquer plataforma que não seja macOS (ex.: spsvalidator --browser em Linux).
  2. Observe o rodapé da página inicial.
  3. O texto mostra "Compilado para macOS 26.3.1 (25D2128)", em vez de refletir a plataforma real (Linux, no exemplo).

Comportamento esperado

O rodapé deveria refletir a plataforma e a versão reais de onde o app está rodando, ou indicar claramente que é uma build de desenvolvimento (como o código já faz corretamente quando build_info.py está ausente ou em "development"). A versão exibida no título deveria vir de uma única fonte de verdade, o pyproject.toml, ou um build_info.py gerado automaticamente a cada empacotamento, não de um arquivo estático desatualizado commitado no repositório.

Screenshots ou vídeos

N/A

Anexos

N/A

Ambiente utilizado

  • Linux (ambiente de desenvolvimento local)
  • Python 3.12, rodando via spsvalidator --browser

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions