Saltar para o conteúdo
Build a partir do Código-Fonte

Build a partir do Código-Fonte

O pipeline de build oficial usa SCons como orquestrador, rodado da raiz do monorepo.

Pipeline

build frontend (Vite)  →  build híbrido do backend  →  Electron + electron-builder
frontend/dist/               dist/vectora/vectora(.exe)    frontend/dist-electron/

O “build híbrido” compila só o pacote do backend em C via Nuitka (--mode=package, gerando um .pyd), e usa PyInstaller pra empacotar o launcher + esse módulo compilado + as libs Python num executável único. Compilar só o backend (em vez de Nuitka onefile puro) evita esgotamento de memória ao compilar dependências gigantes (google.genai.types, LanceDB) direto pra C.

Comandos

scons release          # build completo + instalador nativo pro SO atual

Nuitka compila nativo ao host — não faz cross-compile. scons release sempre gera o instalador do SO em que você está rodando; os instaladores dos outros SOs saem da matriz release-native no GitHub Actions (um runner por SO).

Pré-requisitos de build

  • Python 3.13 (fixado — o Nuitka usado ainda não suporta 3.14)
  • uv
  • Node.js 24+ e pnpm
  • No Windows: Visual Studio Build Tools (MSVC) + Windows SDK, pro toolchain C do Nuitka

Qualidade

scons tests       # suíte completa (pytest + vitest)
scons coverage    # mesma suíte, com relatório de cobertura
scons lint        # ruff + ty + bandit (Python) + tsc + oxlint (TypeScript)

Docker de infraestrutura (não o app)

scons docker      # sobe Postgres + Redis + Qdrant pro modo complete

Veja Docker e Storage.