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


22.4.11 Elm-Pakete

Sie dürfen Elm-Anwendungen Namen geben wie bei anderer Software: Elm muss nicht im Namen vorkommen.

Die Namen dessen, was bei Elm als Paket bekannt ist (siehe elm-build-system im Unterabschnitt Erstellungssysteme), müssen dagegen diesem Format folgen: Autor/Projekt, wo sowohl im Autor als auch im Projekt Bindestriche vorkommen können, und manchmal im Autor sogar Großbuchstaben enthalten sind.

Um daraus einen Guix-Paketnamen zu bilden, folgen wir einer ähnlichen Konvention wie bei Python-Paketen (siehe Python-Module), d.h. vorne kommt ein Präfix elm-, außer der Name beginnt ohnehin mit elm-.

In vielen Fällen lässt sich der Name eines Elm-Pakets, den es beim Anbieter trägt, heuristisch rekonstruieren, aber nicht immer, denn bei der Umwandlung in einen Namen im Guix-Stil geht Information verloren. Also achten Sie darauf, in solchen Fällen eine Eigenschaft 'upstream-name anzugeben, damit ‘guix import elm’ funktionieren kann (siehe Aufruf von guix import). Insbesondere ist es nötig, den Namen beim Anbieter ausdrücklich anzugeben, wenn:

  1. Der Autor gleich elm ist und in Projekt ein oder mehrere Bindestriche auftauchen, wie bei elm/virtual-dom, oder wenn
  2. In Autor Bindestriche oder Großbuchstaben auftauchen, z.B. Elm-Canvas/raster-shapes — sofern Autor nicht elm-explorations ist, was eine Sonderbehandlung bekommt, so dass Pakete wie elm-explorations/markdown die Eigenschaft 'upstream-name nicht zu haben brauchen.

Im Modul (guix build-system elm) finden Sie folgende Werkzeuge, mit denen Sie mit den Konventionen für Namen und Ähnliches umgehen können:

Scheme-Prozedur: elm-package-origin Elm-Name Version Hash Liefert einen Git-Paketursprung nach den Regeln für

Repository-Name und Tags, die für öffentliche Elm-Pakete vorgeschrieben sind. Der Name für den Paketursprung ergibt sich aus Elm-Name, das ist der Name beim Anbieter, mit der Version Version und SHA256-Prüfsumme Hash.

Zum Beispiel:

(package
  (name "elm-html")
  (version "1.0.0")
  (source
   (elm-package-origin
    "elm/html"
    version
    (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
  )
Scheme-Prozedur: elm->package-name Elm-Name

Liefert den Paketnamen im Guix-Stil für ein Elm-Paket, das dort Elm-Name heißt.

Achtung, elm->package-name kann unterschiedliche Elm-Name auf dasselbe Ergebnis abbilden.

Scheme-Prozedur: guix-package->elm-name Paket

Für ein Elm-Paket Paket wird ermittelt, welchen Namen es beim Anbieter trägt, oder #f, wenn dieser Anbietername weder in den unter properties aufgeführten Paketeigenschaften steht noch sich mit infer-elm-package-name ableiten lässt.

Scheme-Prozedur: infer-elm-package-name Guix-Name

Liefert für den guix-name eines Elm-Pakets den daraus abgeleiteten Namen beim Anbieter oder #f, wenn er sich nicht ableiten lässt. Wenn das Ergebnis etwas anderes als #f ist, können wir es an elm->package-name übergeben und bekommen wieder guix-name heraus.


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