Próximo: , Anterior: , Acima: Diretrizes de empacotamento   [Conteúdo][Índice]


22.8.11 Rust Crates

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.