Chapter 5. Elm Tooling

The Elm platform consists of several executables that all help with Elm development. elm-make is the compiler, which can compile Elm either to a JavaScript file or to an HTML file with that JavaScript embedded. elm-repl, Elm’s REPL, is very useful, especially when you’re learning Elm.

This chapter provides a rundown of the other major Elm tools.

elm-package

Elm has its own package manager, elm-package, which is backed by GitHub.

Elm is able to calculate and enforce semantic versioning for all packages published through elm-package, which is fairly extraordinary. A version number that uses semantic versioning takes the form three numbers separated by periods. Each number indicates what sort of change has occurred compared to previous versions. Here’s what the three numbers mean, from left to right:

Major

A piece of the existing API has been changed or removed.

Minor

Something has been added, but nothing existing has changed.

Patch

Something has been changed which does not affect the API, such as documentation or an internal implementation detail.

It’s worth restating this: Elm enforces semantic versioning for all Elm packages. If you see an Elm package move from 2.0.4 to 2.0.5, for example, you are guaranteed that the API has not changed.

This is only possible because of static typing and is a direct result of being able to know the type signatures for every function that is exposed in the API of your package.

This also means that you can ask elm-package ...

Get Why Elm? now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.