Next: , Previous: , Up: Принципы опакечивания   [Contents][Index]


22.4.11 Пакеты Elm

Приложения Elm могут называться так же, как и другие программы: в их именах не обязательно упоминать Elm.

Packages in the Elm sense (see elm-build-system under Системы сборки) are required use names of the format author/project, where both the author and the project may contain hyphens internally, and the author sometimes contains uppercase letters.

Для формирования имени пакета Guix из исходного, мы придерживаемся конвенции, похожей на конвенцию для пакетов Python (see Модули Python), добавляя префикс elm-, если имя уже на него не начинается.

In many cases we can reconstruct an Elm package’s upstream name heuristically, but, since conversion to a Guix-style name involves a loss of information, this is not always possible. Care should be taken to add the 'upstream-name property when necessary so that ‘guix import elm’ will work correctly (see Запуск guix import). The most notable scenarios when explicitly specifying the upstream name is necessary are:

  1. When the author is elm and the project contains one or more hyphens, as with elm/virtual-dom; and
  2. When the author contains hyphens or uppercase letters, as with Elm-Canvas/raster-shapes—unless the author is elm-explorations, which is handled as a special case, so packages like elm-explorations/markdown do not need to use the 'upstream-name property.

The module (guix build-system elm) provides the following utilities for working with names and related conventions:

Процедура Scheme: elm-package-origin elm-name version hash Возвращает Git origin используя формат именования репозитория и

метки, необходимые для опубликованного пакет Elm с оригинальным именем elm-name в версии version с контрольной суммой sha256 hash.

Например:

(package
  (name "elm-html")
  (version "1.0.0")
  (source
   (elm-package-origin
    "elm/html"
    version
    (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
  ...)
Процедура Scheme: elm->package-name elm-name

Возвращает название пакета в стиле Guix для Elm пакета с оригинальным названием elm-name.

Обратите внимание, что существует более одного возможного elm-name, для которого elm->package-name выдаст заданный результат.

Процедура Scheme: guix-package->elm-name package

Получив имя пакета Elm package, возвращает (возможно выведенное) оригинальное имя, или #f, если оригинальное имя не указано через свойство 'upstream-name и не может быть выведено с помощью infer-elm-package-name.

Процедура Scheme: infer-elm-package-name guix-name

Получив через guix-name имя пакета Elm, возвращает выведенное оригинальное имя, или #f, если его вывести нельзя. Если результат не #f, то передача его в elm->package-name вернёт обратно guix-name.


Next: , Previous: , Up: Принципы опакечивания   [Contents][Index]