Nächste: Elm-Pakete, Vorige: Java-Pakete, Nach oben: Paketrichtlinien [Inhalt][Index]
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.