Próximo: Pacotes Elm, Anterior: Pacotes Java, Acima: Diretrizes de empacotamento [Conteúdo][Índice]
Os programas Rust que se autodenominam são nomeados como qualquer outro pacote, usando o nome original em letras minúsculas.
Para evitar colisões de namespace, prefixamos todos os outros pacotes Rust
com o prefixo rust-
. O nome deve ser alterado para minúsculas
conforme apropriado e os traços devem permanecer no lugar.
No ecossistema rust é comum que várias versões incompatíveis de um pacote
sejam usadas a qualquer momento, então todas as definições de pacote devem
ter um sufixo versionado. O sufixo versionado é o dígito diferente de zero
mais à esquerda (e quaisquer zeros à esquerda, é claro). Isso segue o
esquema de versão “caret” pretendido pelo Cargo. Exemplos
rust-clap-2
, rust-rand-0.6
.
Devido à dificuldade em reutilizar pacotes rust como entradas pré-compiladas
para outros pacotes, o sistema de construção Cargo (veja cargo-build-system
) apresenta as palavras-chave
#:cargo-inputs
e cargo-development-inputs
como argumentos do
sistema de construção. Seria útil pensar nelas como semelhantes a
propagated-inputs
e native-inputs
. Rust dependencies
e
build-dependencies
devem ir em #:cargo-inputs
, e
dev-dependencies
deve ir em #:cargo-development-inputs
. Se um
pacote Rust vincular a outras bibliotecas, o posicionamento padrão em
inputs
e semelhantes deve ser usado.
Deve-se tomar cuidado para garantir que a versão correta das dependências
seja usada; para esse fim, tentamos evitar pular os testes ou usar
#:skip-build?
quando possível. Claro que isso nem sempre é possível,
pois o pacote pode ser desenvolvido para um sistema operacional diferente,
depender de recursos do compilador Nightly Rust ou o conjunto de testes pode
ter se atrofiado desde que foi lançado.