Suivant: , Précédent: , Monter: Consignes d’empaquetage   [Table des matières][Index]


22.4.11 Paquets elm

Les applications Elm peuvent être nommée comme les autres logiciels : leur nom n’a pas besoin de mentionner Elm.

Les paquets au sens de Elm (voir elm-build-system dans Systèmes de construction) doivent utiliser un nom au format auteur/projet, où à la fois l’auteur et le projet peuvent contenir des tirets, et auteur contient parfois des lettres majuscules.

Pour former le nom de paquet Guix à partir du nom en amont, nous suivons une convention similaire à celle des paquets Python (voir Modules Python), en ajoutant le préfixe elm- à moins que le nom ne commence déjà par elm-.

Dans la plupart des cas on peut reconstruire le nom d’un paquet Elm en amont avec une heuristique, mais, comme la conversion vers le nom Guix implique une perte d’information, cela n’est pas toujours possible. Vous devrez faire attention à ajouter la propriété 'upstream-name si nécessaire pour que ‘guix import elm’ fonctionne correctement (voir Invoquer guix import). Les scénarios les plus importants où il faut spécifier explicitement le nom en amont sont :

  1. Lorsque l’auteur est elm et que le projet contient une ou plusieurs tirets, comme elm/virtual-dom et
  2. Lorsque l’auteur contient des tirets ou des lettres majuscule, comme Elm-Canvas/raster-shapes — à moins que l’auteur ne soit elm-explorations, qui est géré à part, donc un paquet comme elm-explorations/markdown n’a pas besoin d’utiliser la propriété 'upstream-name.

Le module (guix build-system elm) fournit les utilitaires suivants pour travailler avec les noms et les conventions associées :

Procédure Scheme :elm-package-origin elm-name version hash

Renvoie une origine Git en utilisant le nom et les tags du dépôts, requis pour publier un paquet Elm avec le nom amont elm-name à la version version avec la somme de contrôle sha256 hash.

Par exemple :

(package
  (name "elm-html")
  (version "1.0.0")
  (source
   (elm-package-origin
    "elm/html"
    version
    (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
  ...)
Procédure Scheme :elm->package-name elm-name

Renvoie le nom de paquet Guix pour un paquet Elm avec le nom amont elm-name.

Remarquez qu’il y a plus d’un elm-name possible pour un résultat de elm->package-name donné.

Procédure Scheme :guix-package->elm-name paquet

Étant donné un paquet Elm, renvoie le nom amont éventuellement inféré, ou #f si le nom amont n’est pas spécifié via la propriété 'upstream-name et qu’il ne peut pas être deviné par infer-elm-package-name.

Procédure Scheme :inferior-elm-package-name guix-name

Étant donné le guix-name d’un paquet Elm, renvoie le nom amont inféré, ou #f si le nom amont ne peut pas être inféré. Si le résultat n’est pas #f, l’envoyer à elm->package-name produirait guix-name.


Suivant: Polices de caractères, Précédent: Paquets Rust, Monter: Consignes d’empaquetage   [Table des matières][Index]