elm-street-0.2.1.0: CHANGELOG.md
# Changelog
`elm-street` uses [PVP Versioning][1].
The changelog is available [on GitHub][2].
## 0.2.1.0 - Aug 3, 2023
* Add GHC 9.4.5 and 9.6.2 to CI / tested-with
* Introduce CodeGenOptions to allow customizing record field names.
## 0.2.0.0 - Mar 29, 2022
* Remove GHC 8.4.4 and 8.6.5 from CI / tested-with
* Add GHC 8.10.7, 9.0.2 and 9.2.2 to CI / tested-with
* Support Json.Decode.Value as primitive
* Add primitive to represent NonEmpty lists as (a, List a) on elm side
* Add overlapping instance for Elm String, to ensure that Haskell `String`s are represented as `String` on Elm side (not as `List Char`)
## 0.1.0.4 - Jan 28, 2020
* Bump prettyprinter upper bound to allow building with lts-17.0
## 0.1.0.3 - Jun 29, 2020
* Update to lts-16.2
## 0.1.0.2 — Sep 13, 2019
* [#89](https://github.com/holmusk/elm-street/issues/89):
Regulate parenthesis on complicated types in encoder, decoder and type
generation.
## 0.1.0.1 — Sep 6, 2019
* Fix newtype qualified import bug in `Types.elm` generated module.
* Allow `pretty-printer-1.3` version.
## 0.1.0.0 — Sep 6, 2019
* [#80](https://github.com/holmusk/elm-street/issues/80):
**Important:** *All* encoders for constructors with fields now have `tag` due
to aeson decoder on Haskell side.
**Migration guide 1:** Rename fields that will have `tag` name on the Elm
side.
**Migration guide 2:** If you have manual `ToJSON` instances that communicate
with Elm via generated decoders, you need to add `tag` field with the
constructor name:
```haskell
data User = User { ... }
instance ToJSON User where
toJSON = [ "tag" .= ("User" :: Text), ... ]
```
* [#71](https://github.com/holmusk/elm-street/issues/71):
**Breaking change:** Remove **overlapping** instance for `String`.
**Migration guide:** Use `Text` instead of `String`.
* [#70](https://github.com/holmusk/elm-street/issues/70):
Use qualified imports of generated types and function in Elm generated files.
* [#74](https://github.com/holmusk/elm-street/issues/74):
Fix unit type `typeRef` encoder and decoder printers.
* [#72](https://github.com/holmusk/elm-street/issues/72):
Use consistent encoders and decoders for unary constructors.
* [#79](https://github.com/holmusk/elm-street/issues/79):
Implement cross-language golden tests.
* [#76](https://github.com/holmusk/elm-street/issues/76):
Support GHC-8.6.5. Use common stanzas.
* [#86](https://github.com/holmusk/elm-street/issues/86):
Refactor `Elm.Print` module and split into multiple smaller modules.
* [#73](https://github.com/holmusk/elm-street/issues/73):
Clarify the restriction with reserved words in documentation.
* [#90](https://github.com/Holmusk/elm-street/issues/90)
Support converting 3-tuples.
* [#6](https://github.com/holmusk/elm-street/issues/6):
Test generated Elm code on CI.
## 0.0.1 — Mar 29, 2019
* [#64](https://github.com/holmusk/elm-street/issues/64):
Fix indentation for the generated enums.
* [#66](https://github.com/holmusk/elm-street/issues/66):
Patch JSON encoders and decoders for sum types with a single field.
## 0.0.0
* Initially created.
[1]: https://pvp.haskell.org
[2]: https://github.com/Holmusk/elm-street/releases