Next: , Previous: , Up: Руководство по упаковке   [Contents][Index]


22.8.11 Rust Crates пакеты

Самостоятельные программы на Rust именуются как и любой другой пакет, используя исходное имя в нижнем регистре.

Чтобы предотвратить конфликты пространства имен, мы используем префикс rust- для всех остальных пакетов Rust. Имя должно быть изменено на строчные буквы, если необходимо, и дефисы должны остаться на месте.

В экосистеме rust использование нескольких несовместимых версий пакета одновременно является нормой, поэтому у всех пакетов должен быть версионный суффикс. Версионный суффикс — самая левая ненулевая цифра, включая все предыдущие нули. Это следует системе назначения версий “caret”, используемой в Cargo. Примеры: rust-clap-2, rust-rand-0.6.

Из-за трудности повторного использования пакетов rust в качестве заранее скомпилированных входных данных для других пакетов, система сборки Cargo (see cargo-build-system) предоставляет ключевые слова #:cargo-input и cargo-development-input в качестве аргументов для системы сборки. Их полезно представлять подобно propagated-inputs и native-inputs. dependencies и build-dependencies из Rust должны идти в #:cargo-input, а dev-dependencies должен идти в #:cargo-development-input. Если пакет Rust линкуется с другими библиотеками, то следует использовать стандартное размещение в input и т.п.

Следует позаботиться о том, чтобы была использована корректная версия зависимостей; с этой целью мы стараемся обойтись без пропускания тесты или использования #:skip-build?, когда это возможно. Конечно, это получается не всегда, так как пакет может разрабатыватьтся для другой операционной системы, зависеть от функций ежедневной версии компилятора Rust для разработчиков (Nightly), или же тесты могут быть устаревшими с момента выпуска.