Pular para o conteúdo principal
Versão: Próxima

Lock File de Dependências de Módulos

O lock file (invowkmod.lock.cue) registra as versões exatas de todas as dependências de módulo resolvidas, garantindo builds reprodutíveis ao longo do tempo e entre máquinas.

Ele é gerado automaticamente por invowk module sync e invowk module update.

Exemplo de Lock File

version: "2.0"
generated: "2025-01-10T12:34:56Z"

modules: {
"https://github.com/example/common.invowkmod.git": {
git_url: "https://github.com/example/common.invowkmod.git"
version: "^1.0.0"
resolved_version: "1.2.3"
git_commit: "abc123def456789012345678901234567890abcd"
alias: "common"
namespace: "common"
content_hash: "sha256:a1b2c3d4e5f6..."
}
}

Campos da Raiz

CampoDescrição
versionVersão do formato do lock file (atual: "2.0")
generatedTimestamp de criação do lock file
modulesMapa de chaves de módulo para entradas travadas

Campos de Entrada de Módulo

Cada entrada em modules contém:

CampoDescrição
git_urlURL do repositório Git
versionRestrição de versão original de invowkmod.cue
resolved_versionVersão resolvida exata
git_commitSHA do commit da versão resolvida
aliasAlias de namespace (se definido)
pathCaminho de subdiretório (se definido)
namespaceNamespace calculado para comandos
content_hashHash SHA-256 do conteúdo da árvore do módulo em cache (detecção de adulteração)

Chaves de Módulo

A chave no mapa modules é derivada da URL Git e do caminho opcional:

modules: {
"https://github.com/example/monorepo.invowkmod.git#modules/cli": {
git_url: "https://github.com/example/monorepo.invowkmod.git"
path: "modules/cli"
}
}

Notas de Uso

  • Commite invowkmod.lock.cue no controle de versão para builds reprodutíveis.
  • invowk module add grava o lock file automaticamente (não é necessário executar invowk module sync depois).

Workflows Comuns

# Resolve and lock
invowk module sync

# Commit the lock file
git add invowkmod.lock.cue
git commit -m "Lock module dependencies"