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

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>.invowkmod.zip
invowk module archive ./mytools.invowkmod

# Custom output path
invowk module archive ./mytools.invowkmod --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.invowkmod.zip

# Install to custom directory
invowk module import ./mytools.invowkmod.zip --path ./local-modules

# Overwrite existing
invowk module import ./mytools.invowkmod.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.invowkmod.zip

Saída:

Import Module

✓ Module imported successfully

• Name: mytools
• Path: /home/user/.invowk/cmds/mytools.invowkmod

• 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.invowkmod

• user modules (~/.invowk/cmds):
✓ com.company.devtools
/home/user/.invowk/cmds/com.company.devtools.invowkmod
✓ io.github.user.utilities
/home/user/.invowk/cmds/io.github.user.utilities.invowkmod

Métodos de Distribuição

Compartilhamento Direto

  1. Crie o arquivo: invowk module archive
  2. Compartilhe o zip (email, Slack, etc.)
  3. Destinatário importa: invowk module import

Repositório Git

Inclua módulos no seu repositório:

my-project/
├── src/
├── modules/
│ ├── devtools.invowkmod/
│ │ ├── invowkmod.cue
│ │ └── invowkfile.cue
│ └── testing.invowkmod/
│ ├── invowkmod.cue
│ └── invowkfile.cue
└── invowkfile.cue

Membros da equipe recebem os módulos quando clonam o repo.

GitHub Releases

  1. Crie o arquivo
  2. Anexe ao release no GitHub
  3. Compartilhe o URL de download
# Recipients install with:
invowk module import https://github.com/org/repo/releases/download/v1.0.0/mytools.invowkmod.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.invowkmod/

Disponível globalmente para o usuário.

Projeto Local

invowk module import mytools.zip --path ./modules
# Installed to: ./modules/mytools.invowkmod/

Disponível apenas neste projeto.

Caminho de Busca Personalizado

Configure caminhos adicionais:

// ~/.config/invowk/config.cue
includes: [
{path: "/shared/company-modules/tools.invowkmod"},
]

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 invowkmod.cue:

module: "com.company.tools"
version: "1.2.0"

Nome do Arquivo

Inclua a versão no nome do arquivo:

invowk module archive ./mytools.invowkmod --output ./dist/mytools-1.2.0.zip

Processo de Upgrade

# Remove old version
rm -rf ~/.invowk/cmds/mytools.invowkmod

# 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.invowkmod --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

  1. Valide antes de arquivar: invowk module validate --deep
  2. Use versionamento semântico: Acompanhe mudanças claramente
  3. Inclua README: Documente o uso do módulo
  4. Nomenclatura RDNS: Evite conflitos
  5. 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.invowkmod --deep

# 3. Create versioned archive
invowk module archive ./com.company.mytools.invowkmod \
--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