Pular para o conteúdo principal
Versão: 0.11.0

Comandos CLI de Dependências de Módulos

O Invowk fornece um conjunto de comandos invowk module para gerenciar dependências declaradas em invowkmod.cue.

Visão Geral dos Comandos​

ComandoDescrição
invowk module addAdiciona uma dependência de módulo (resolve, faz cache e atualiza lock file e invowkmod.cue)
invowk module removeRemove uma dependência de módulo (atualiza lock file e invowkmod.cue)
invowk module depsLista dependências resolvidas
invowk module syncResolve dependências de invowkmod.cue
invowk module updateAtualiza dependências para as versões mais recentes compatíveis
invowk module tidyAdiciona dependências transitivas faltantes ao invowkmod.cue
invowk module vendorFaz vendor das dependências em invowk_modules/

invowk module add​

Resolve uma dependência, faz cache, atualiza o lock file e autoedita invowkmod.cue para adicionar a entrada em requires.

Uso​

invowk module add <git-url> <version> [flags]

Argumentos​

ArgumentoDescrição
git-urlURL do repositório Git (HTTPS ou SSH)
versionRestrição de versão semântica

Flags​

FlagDescrição
--alias <name>Namespace personalizado para a dependência
--path <path>Subdiretório dentro do repositório

Exemplos​

# Add a dependency with caret version
invowk module add https://github.com/user/mod.invowkmod.git ^1.0.0

# Add with SSH URL
invowk module add git@github.com:user/mod.invowkmod.git ~2.0.0

# Add with custom alias
invowk module add https://github.com/user/common.invowkmod.git ^1.0.0 --alias tools

# Add from monorepo subdirectory
invowk module add https://github.com/user/monorepo.invowkmod.git ^1.0.0 --path modules/cli

Saída​

Add Module Dependency

ℹ Resolving https://github.com/user/mod.invowkmod.git@^1.0.0...
✓ Module resolved and lock file updated

ℹ Git URL: https://github.com/user/mod.invowkmod.git
ℹ Version: ^1.0.0 → 1.2.3
ℹ Namespace: mod@1.2.3
ℹ Cache: /home/user/.invowk/modules/github.com/user/mod.invowkmod/1.2.3
✓ Updated invowkmod.cue with new requires entry
observação

invowk module add realiza três ações automaticamente:

  1. Resolve e faz cache do módulo
  2. Atualiza o lock file
  3. Autoedita invowkmod.cue para adicionar a entrada em requires (se o arquivo existir)

invowk module remove​

Remove uma dependência de módulo do lock file e de invowkmod.cue.

Uso​

invowk module remove <identifier>

Argumentos​

ArgumentoDescrição
identifierIdentificador do módulo: URL Git, alias, nome do módulo ou chave completa (modulename@version)

Exemplos​

invowk module remove https://github.com/user/mod.invowkmod.git

Saída​

Remove Module Dependency

ℹ Removing https://github.com/user/mod.invowkmod.git...
✓ Removed mod@1.2.3

✓ Lock file and invowkmod.cue updated
observação

invowk module remove realiza duas ações automaticamente:

  1. Remove o módulo do lock file
  2. Autoedita invowkmod.cue para remover a entrada correspondente em requires

Arquivos de cache não são deletados.

invowk module deps​

Lista todas as dependências resolvidas no lock file.

Uso​

invowk module deps

Saída​

Module Dependencies

• Found 2 module dependency(ies)

✓ build-tools@2.3.1
Git URL: https://github.com/company/build-tools.invowkmod.git
Version: ^2.0.0 → 2.3.1
Commit: abc123def456
Cache: /home/user/.invowk/modules/github.com/company/build-tools.invowkmod/2.3.1

✓ deploy-utils@1.5.2
Git URL: https://github.com/company/deploy-tools.invowkmod.git
Version: ~1.5.0 → 1.5.2
Commit: 789xyz012abc
Cache: /home/user/.invowk/modules/github.com/company/deploy-tools.invowkmod/1.5.2

Sem Dependências​

Module Dependencies

• No module dependencies found

• To add modules, use: invowk module add <git-url> <version>

invowk module sync​

Sincroniza todas as dependências declaradas em invowkmod.cue. Lê o campo requires, resolve restrições de versão, baixa módulos e atualiza o lock file.

Uso​

invowk module sync

Saída​

Sync Module Dependencies

• Found 2 requirement(s) in invowkmod.cue

✓ build-tools@2.3.1 → 2.3.1
✓ deploy-utils@1.5.2 → 1.5.2

✓ Lock file updated: invowkmod.lock.cue

Sem Requirements​

Sync Module Dependencies

• No requires field found in invowkmod.cue

invowk module update​

Atualiza dependências para as versões mais recentes compatíveis com as restrições declaradas.

Uso​

invowk module update [identifier]

Argumentos​

ArgumentoDescrição
identifier(Opcional) Dependência específica para atualizar: URL Git, alias, nome do módulo ou chave completa (modulename@version)

Exemplos​

# Update all modules
invowk module update

# Update a specific module
invowk module update https://github.com/user/mod.invowkmod.git

Saída​

Update Module Dependencies

• Updating all modules...

✓ build-tools@2.3.1 → 2.4.0
✓ deploy-utils@1.5.2 → 1.5.3

✓ Lock file updated: invowkmod.lock.cue

Sem Atualizações​

Update Module Dependencies

• Updating all modules...
• No modules to update

invowk module tidy​

Verifica todas as dependências resolvidas e adiciona requisitos transitivos faltantes ao seu invowkmod.cue. Implementa o modelo de dependências explícitas: todo módulo na árvore de dependências deve aparecer no seu invowkmod.cue.

Uso​

invowk module tidy

O Que Ele Faz​

  1. Analisa seu invowkmod.cue para obter os requisitos declarados
  2. Resolve cada dependência e inspeciona seus próprios requires
  3. Identifica dependências transitivas não declaradas no seu invowkmod.cue
  4. Adiciona automaticamente as entradas faltantes ao invowkmod.cue

Após executar tidy, execute invowk module sync para atualizar o lock file.

Saída​

Tidy Module Dependencies
ℹ Found 3 requirement(s) in invowkmod.cue
ℹ Resolving dependencies to find missing transitive requirements...
✓ Added https://github.com/example/utils.invowkmod.git (^1.0.0)

✓ Added 1 missing transitive dependency(ies) to invowkmod.cue
ℹ Run invowk module sync to update the lock file

invowk module vendor​

Faz vendor das dependências no diretório invowk_modules/ para uso offline e distribuição.

Uso​

invowk module vendor [module-path]

Saída​

Vendor Module Dependencies

• Found 2 requirement(s) in invowkmod.cue
• Loading from lock file
• Vendor directory: /home/user/project/invowk_modules

✓ common@1.2.3
✓ deploy@1.5.4

✓ Vendored 2 module(s) successfully
observação

invowk module vendor resolve as dependências e as copia para invowk_modules/. Se invowkmod.lock.cue existir, o vendor usa por padrão as versões travadas. Use --update para forçar nova resolução e --prune para remover módulos vendorizados obsoletos.

Workflows Comuns​

Configuração Inicial​

# 1. Resolve dependencies
invowk module add https://github.com/company/build-tools.invowkmod.git ^2.0.0 --alias build
invowk module add https://github.com/company/deploy-tools.invowkmod.git ~1.5.0 --alias deploy

# 2. Add requires to invowkmod.cue manually or verify
cat invowkmod.cue

# 3. Sync to generate lock file
invowk module sync

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

Clone Novo​

# On a fresh clone, sync downloads all modules
git clone https://github.com/yourorg/project.git
cd project
invowk module sync

Atualizações Regulares​

# Update all modules periodically
invowk module update

# Review changes
git diff invowkmod.lock.cue

# Commit if tests pass
git add invowkmod.lock.cue
git commit -m "Update module dependencies"

Troubleshooting​

# List current dependencies to verify state
invowk module deps

# Re-sync if something seems wrong
invowk module sync

# Check commands are available
invowk cmd

Variáveis de Ambiente​

VariávelDescrição
INVOWK_MODULES_PATHSobrescreve o diretório de cache de módulos
GITHUB_TOKENAutenticação GitHub
GITLAB_TOKENAutenticação GitLab
GIT_TOKENAutenticação Git genérica

Códigos de Saída​

CódigoSignificado
0Sucesso
1Erro geral
1Módulo não encontrado (para remove)
1Nenhum invowkmod.cue encontrado (para sync)
1Falha na resolução de versão
1Falha ao clonar/buscar Git