Elm applications can be named like other software: their names need not mention Elm.
Packages in the Elm sense (see
elm-build-system under 构建系统) are required use names of the format
/project, where both the author and the
project may contain hyphens internally, and the author sometimes
contains uppercase letters.
To form the Guix package name from the upstream name, we follow a convention
similar to Python packages (see Python模块), adding an
prefix unless the name would already begin with
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:
elmand the project contains one or more hyphens, as with
Elm-Canvas/raster-shapes—unless the author is
elm-explorations, which is handled as a special case, so packages like
elm-explorations/markdowndo not need to use the
(guix build-system elm) provides the following utilities
for working with names and related conventions:
regime required for a published Elm package with the upstream name elm-name at version version with sha256 checksum hash.
(package (name "elm-html") (version "1.0.0") (source (elm-package-origin "elm/html" version (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a"))) ...)
Returns the Guix-style package name for an Elm package with upstream name elm-name.
Note that there is more than one possible elm-name for which
elm->package-name will produce a given result.
Given an Elm package, returns the possibly-inferred upstream name, or
#f the upstream name is not specified via the
property and can not be inferred by
Given the guix-name of an Elm package, returns the inferred upstream
#f if the upstream name can’t be inferred. If the result is
#f, supplying it to
elm->package-name would produce