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.

Im Rust-Ökosystem werden oft mehrere inkompatible Versionen desselben Pakets gleichzeitig benutzt, daher sollte allen Paketdefinitionen ein die Version angebendes Suffix gegeben werden. Das Versionssuffix besteht aus der am weitesten links stehenden Ziffer, die nicht null ist (natürlich mit allen führenden Nullen). Dabei folgen wir dem von Cargo gewollten „Caret“-Versionsschema. Beispiele: 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.