Distribuindo Módulos
Compartilhe seus módulos com colegas de equipe, entre organizações ou com o mundo.
Criando Arquivos
Crie um arquivo zip para distribuição:
# Default output: <module-name>.invkmod.zip
invowk module archive ./mytools.invkmod
# Custom output path
invowk module archive ./mytools.invkmod --output ./dist/mytools.zip
Saída:
Archive Module
✓ Module archived successfully
• Output: /home/user/dist/mytools.zip
• Size: 2.45 KB
Importando Módulos
De Arquivo Local
# Install to ~/.invowk/cmds/
invowk module import ./mytools.invkmod.zip
# Install to custom directory
invowk module import ./mytools.invkmod.zip --path ./local-modules
# Overwrite existing
invowk module import ./mytools.invkmod.zip --overwrite
De URL
# Download and install
invowk module import https://example.com/modules/mytools.zip
# From GitHub release
invowk module import https://github.com/user/repo/releases/download/v1.0/mytools.invkmod.zip
Saída:
Import Module
✓ Module imported successfully
• Name: mytools
• Path: /home/user/.invowk/cmds/mytools.invkmod
• The module commands are now available via invowk
Listando Módulos Instalados
invowk module list
Saída:
Discovered Modules
• Found 3 module(s)
• current directory:
✓ local.project
/home/user/project/local.project.invkmod
• user commands (~/.invowk/cmds):
✓ com.company.devtools
/home/user/.invowk/cmds/com.company.devtools.invkmod
✓ io.github.user.utilities
/home/user/.invowk/cmds/io.github.user.utilities.invkmod
Métodos de Distribuição
Compartilhamento Direto
- Crie o arquivo:
invowk module archive - Compartilhe o zip (email, Slack, etc.)
- Destinatário importa:
invowk module import
Repositório Git
Inclua módulos no seu repositório:
my-project/
├── src/
├── modules/
│ ├── devtools.invkmod/
│ │ ├── invkmod.cue
│ │ └── invkfile.cue
│ └── testing.invkmod/
│ ├── invkmod.cue
│ └── invkfile.cue
└── invkfile.cue
Membros da equipe recebem os módulos quando clonam o repo.
GitHub Releases
- Crie o arquivo
- Anexe ao release no GitHub
- Compartilhe o URL de download
# Recipients install with:
invowk module import https://github.com/org/repo/releases/download/v1.0.0/mytools.invkmod.zip
Registro de Pacotes (Futuro)
Versões futuras podem oferecer:
invowk module install com.company.devtools@1.0.0
Locais de Instalação
Comandos do Usuário (Padrão)
invowk module import mytools.zip
# Installed to: ~/.invowk/cmds/mytools.invkmod/
Disponível globalmente para o usuário.
Projeto Local
invowk module import mytools.zip --path ./modules
# Installed to: ./modules/mytools.invkmod/
Disponível apenas neste projeto.
Caminho de Busca Personalizado
Configure caminhos adicionais:
// ~/.config/invowk/config.cue
search_paths: [
"/shared/company-modules"
]
Instale lá:
invowk module import mytools.zip --path /shared/company-modules
Gerenciamento de Versão
Versionamento Semântico
Declare a versão do módulo em invkmod.cue:
module: "com.company.tools"
version: "1.2.0"
Nome do Arquivo
Inclua a versão no nome do arquivo:
invowk module archive ./mytools.invkmod --output ./dist/mytools-1.2.0.zip
Processo de Upgrade
# Remove old version
rm -rf ~/.invowk/cmds/mytools.invkmod
# Install new version
invowk module import mytools-1.2.0.zip
# Or use --overwrite
invowk module import mytools-1.2.0.zip --overwrite
Distribuição em Equipe
Local de Rede Compartilhado
# Admin publishes
invowk module archive ./devtools.invkmod --output /shared/modules/devtools.zip
# Team members import
invowk module import /shared/modules/devtools.zip
Servidor Interno de Pacotes
Hospede módulos em um servidor HTTP interno:
# Team members import via URL
invowk module import https://internal.company.com/modules/devtools.zip
Melhores Práticas
- Valide antes de arquivar:
invowk module validate --deep - Use versionamento semântico: Acompanhe mudanças claramente
- Inclua README: Documente o uso do módulo
- Nomenclatura RDNS: Evite conflitos
- Changelog: Documente o que mudou entre versões
Exemplo de Workflow
# 1. Create and develop module
invowk module create com.company.mytools --scripts
# ... add commands and scripts ...
# 2. Validate
invowk module validate ./com.company.mytools.invkmod --deep
# 3. Create versioned archive
invowk module archive ./com.company.mytools.invkmod \
--output ./releases/mytools-1.0.0.zip
# 4. Distribute (e.g., upload to GitHub release)
# 5. Team imports
invowk module import https://github.com/company/mytools/releases/download/v1.0.0/mytools-1.0.0.zip
Próximos Passos
- Visão Geral - Conceitos de módulos
- Criando Módulos - Monte seu módulo
- Validando - Garanta integridade do módulo