Nächste: , Vorige: , Nach oben: Paketrichtlinien   [Inhalt][Index]


16.4.10 Rust-Crates

Eigenständige Rust-Programme werden wie jedes andere Paket benannt, d.h. mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter.

Um Namensraumkollisionen vorzubeugen, versehen wir alle anderen Rust-Pakete mit dem Präfix rust-. Der Name sollte wie sonst in Kleinbuchstaben geschrieben werden und Bindestriche dort bleiben, wo sie sind.

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.

Weil die Verwendung von Rust-Paketen als vorab kompilierte Eingaben für andere Pakete besondere Schwierigkeiten macht, gibt es im Cargo-Erstellungssystem (siehe cargo-build-system) die Schlüsselwörter #:cargo-inputs und #:cargo-development-inputs als Argumente an das Erstellungssystem. Es ist hilfreich, sie sich ähnlich wie propagated-inputs und native-inputs vorzustellen. Was in Rust dependencies und build-dependencies sind, sollte unter #:cargo-inputs aufgeführt werden, während dev-dependencies zu den #:cargo-development-inputs gehören. Wenn ein Rust-Paket andere Bibliotheken einbindet, gilt die normale Einordnung in inputs usw. wie anderswo auch.

Man sollte aufpassen, dass man die richtige Version von Abhängigkeiten benutzt. Deswegen versuchen wir, Tests nicht mit #:skip-build? zu überspringen, wenn es möglich ist. Natürlich geht das nicht immer, vielleicht weil das Paket für ein anderes Betriebssystem entwickelt wurde, Funktionalitäten der allerneuesten „Nightly“-Version des Rust-Compilers voraussetzt oder weil der Testkatalog seit seiner Veröffentlichung verkümmert ist.