Next: , Previous: , Up: Руководство по упаковке   [Contents][Index]


22.8.12 Пакеты 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-, если имя уже на него не начинается.

Во многих случаях мы можем эвристически восстановить имя пакета Elm, но, поскольку преобразование в имя в стиле Guix связано с потерей информации, это не всегда возможно. Следует позаботиться о добавлении свойства 'upstream-name, когда это необходимо, чтобы ‘guix import elm’ работал правильно (see Вызов guix import). Наиболее заметными сценариями, когда необходимо явно указывать имя upstream, являются:

  1. Когда author является elm, а project содержит один или несколько дефисов, как в случае elm/virtual-dom; и
  2. Когда author содержит дефисы или заглавные буквы, как в Elm-Canvas/raster-shapes—если author не является elm-explorations, который обрабатывается как особый случай, поэтому такие пакеты как elm-explorations/markdown не not должны использовать свойство 'upstream-name.

Модуль (guix build-system elm) предоставляет следующие утилиты для работы с именами и связанными с ними соглашениями:

Procedure: 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")))
  ...)
Procedure: elm->package-name elm-name

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

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

Procedure: guix-package->elm-name package

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

Procedure: infer-elm-package-name guix-name

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


Next: Шрифты, Previous: Rust Crates пакеты, Up: Руководство по упаковке   [Contents][Index]