Um módulo é uma coleção de pacotes go relacionados que estão versionados juntos, em unidade.
Módulos registram com precisão os requisitos das dependências e criam builds reproduzíveis.
Na maioria das vezes, um repositório com controle de versão contém exatamente um módulo definido na raiz.
Em suma, a relação entre repositórios, módulos e pacotes se dá da seguinte forma:
- Um repositório contém um ou mais módulos Go.
- Cada módulo contém um ou mais pacotes Go.
- Cada pacote go consiste em um ou mais arquivos fonte Go em um diretório.
Módulos precisam ser versionados semanticamente de acordo com semver
, geralmente na forma v(major).(minor).(patch)
, como v0.1.0
, v1.2.3
, or v1.5.0-rc.1
.
O "v" inicial é obrigatório. Se estiver utilizando git, adicione tags de versão aos seus commits.
É possível utilizar repositórios privados, ver Como usar libs privadas?.