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


16.4.10 Rust Crates пакеты

Rust programs standing for themselves are named as any other package, using the lowercase upstream name.

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

In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all package definitions should have a versioned suffix. The versioned suffix is the left-most non-zero digit (and any leading zeros, of course). This follows the “caret” version scheme intended by Cargo. Examples 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), или тесты могли устареть с момента выпуска.