Next: , Previous: , Up: Принципы опакечивания   [Contents][Index]


20.4.10 Rust Crates пакеты

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

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

В экосистеме rust использование нескольких несовместимых версий пакета в любой момент времени является нормой, поэтому у всех пакетов должен быть версионный суффикс. Если пакет прошел версию 1.0.0, тогда достаточно только основного номера версии (например, rust-clap-2), в противном случае суффикс версии должен содержать как основную, так и вспомогательную версию (например, rust-rand-0,6).

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

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