# Elm (/pipeline-sdk/reference/toolchains/elm)



{/* Generated by docs-site/scripts/generate-dsl-docs.ts — do not edit. */}

## `elm` [#elm]

Callable singleton for the Elm toolchain — access as `hm.elm`.

Supports both object form (`hm.elm()`) and bare form
(`hm.elm.make(target)`, `hm.elm.test()`, etc.).

```python
elm(*, path='.', elm_version='0.19.1', node_version='20', image=None, base=None) -> ElmProject
```

| Parameter                                               | Type           | Default    | Description                                              |
| ------------------------------------------------------- | -------------- | ---------- | -------------------------------------------------------- |
| `path`                                                  | `str`          | `'.'`      | Path to the Elm project root.                            |
| `elm_version`                                           | `str`          | `'0.19.1'` | Elm compiler version to download from GitHub releases    |
| (e.g. `"0.19.1"`).                                      |                |            |                                                          |
| `node_version`                                          | `str`          | `'20'`     | Node.js major version for npx-based tools                |
| (elm-test, elm-review, elm-format). Defaults to `"20"`. |                |            |                                                          |
| `image`                                                 | `str \| None`  | `None`     | Local-mode Docker base image override.                   |
| `base`                                                  | `Step \| None` | `None`     | Existing `Step` to attach to instead of emitting a fresh |
| apt-base step.                                          |                |            |                                                          |

**Returns** `ElmProject` — An `ElmProject` whose `installed` step is the elm-install step.

### `elm.fmt()` [#elmfmt]

```python
fmt(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

### `elm.make()` [#elmmake]

```python
make(target, *, output=None, **kw) -> Step
```

| Parameter | Type          | Default    | Description |
| --------- | ------------- | ---------- | ----------- |
| `target`  | `str`         | *required* | —           |
| `output`  | `str \| None` | `None`     | —           |
| `kw`      | `Any`         | `{}`       | —           |

**Returns** `Step`

### `elm.review()` [#elmreview]

```python
review(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

### `elm.test()` [#elmtest]

```python
test(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

## `ElmEntry` [#elmentry]

Callable singleton for the Elm toolchain — access as `hm.elm`.

Supports both object form (`hm.elm()`) and bare form
(`hm.elm.make(target)`, `hm.elm.test()`, etc.).

### `ElmEntry.fmt()` [#elmentryfmt]

```python
fmt(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

### `ElmEntry.make()` [#elmentrymake]

```python
make(target, *, output=None, **kw) -> Step
```

| Parameter | Type          | Default    | Description |
| --------- | ------------- | ---------- | ----------- |
| `target`  | `str`         | *required* | —           |
| `output`  | `str \| None` | `None`     | —           |
| `kw`      | `Any`         | `{}`       | —           |

**Returns** `Step`

### `ElmEntry.review()` [#elmentryreview]

```python
review(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

### `ElmEntry.test()` [#elmentrytest]

```python
test(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

## `ElmProject` [#elmproject]

Elm project install chain — constructed via `hm.elm()`.

`installed` is the elm binary download step. Action methods
(`make`, `test`, `review`, `fmt`) attach leaves to `installed`.

### Fields [#fields]

| Field       | Type   | Default    |
| ----------- | ------ | ---------- |
| `path`      | `str`  | *required* |
| `installed` | `Step` | *required* |

### `ElmProject.fmt()` [#elmprojectfmt]

```python
fmt(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

### `ElmProject.make()` [#elmprojectmake]

```python
make(target, *, output=None, **kw) -> Step
```

| Parameter | Type          | Default    | Description |
| --------- | ------------- | ---------- | ----------- |
| `target`  | `str`         | *required* | —           |
| `output`  | `str \| None` | `None`     | —           |
| `kw`      | `Any`         | `{}`       | —           |

**Returns** `Step`

### `ElmProject.review()` [#elmprojectreview]

```python
review(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`

### `ElmProject.test()` [#elmprojecttest]

```python
test(**kw) -> Step
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `kw`      | `Any` | `{}`    | —           |

**Returns** `Step`
