CHANGELOG.md

# Changelog

## URL v2.0.0

This is the changelog for URL version 2.0.0 released on August 4th, 2023.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

**URL version 2.0.0 is supported on Elixir 1.13 and later only.**

### Breaking Change

* `URL.new/1` now always returns a tuple of the form `{:ok, t:URL.t/0}` or `{:error, {module(), String.t()}}`. The previous versions embedded error tuples in the return structure making is too complex to determine if there was a parsing error on the path data.  This approach also makes it more straight forward to implement tests that return errors.

### Deprecations

* Hard deprecates `URL.parse/1`

### Bug Fixes

* Remove warnings for unused variables when neither `ex_phone_number` or `ex_cldr` are configured (these are both optional dependencies). Thanks to @shahryarjb for the report. Closes #5.

## URL v1.5.0

This is the changelog for URL version 1.5.0 released on July 28th, 2023.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

`URL` version 1.5.0 is supported on Elixir 1.11 and later only.

### Bug Fixes

* Change to `import Config`, not `import Mix.Config`

* Make `Jason` dependency optional.

## URL v1.4.0

This is the changelog for URL version 1.4.0 released on October 30th, 2021.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Deprecations

* Soft deprecated `URL.parse/1` in line with Elixir 1.13's deprecation of `URI.parse/1`

### Enhancements

* Add `URL.new/1` and `URL.new!/1` in line with the preferred API in Elixir 1.13

## URL v1.3.1

This is the changelog for URL version 1.3.1 released on May 12th, 2021.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Updates `nimble_parsec` dependency to `~> 1.0`. Thanks to @ghry5

* Make `ex_doc` available only in `:dev` and `:release`

## URL v1.3.0

This is the changelog for URL version 1.3.0 released on November 1st.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Support [CLDR 38](http://cldr.unicode.org/index/downloads/cldr-38)

### Bug Fixes

* Correct some types to use `map()`

* Fix error resulting from inconsistent use of territories as atoms and strings

## URL v1.2.0

This is the changelog for URL version 1.2.0 released on January 23rd, 2020.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Executes `String.trim/1` on parsed elements of URI's so that "https://     google.fr" will return "google.fr" as the host, not "    google.fr".

## URL v1.1.0

This is the changelog for URL version 1.1.0 released on April 7th, 2019.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Update to `NimbleParsec` version 0.5

## URL v1.0.0

This is the changelog for URL version 1.0.0 released on November 25th, 2018.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Supports [ex_cldr version 2.0.0](https://hex.pm/packages/ex_cldr).  This is an optional dependency.

* Add `URL.parse_query_string/1`

## URL v0.4.0

This is the changelog for URL version 0.4.0 released on October 18th, 2018.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Adds support for the `uuid` URL type.  See `URL.UUID`

## URL v0.3.0

This is the changelog for URL version 0.3.0 released on October 16th, 2018.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Adds support for the `mailto` URL type.  See `URL.Mailto`

### Bug Fixes

* Now correctly uses the `phone-context` parameter when formatting a telelphone number in a `tel` URL.

## URL v0.2.0

This is the changelog for URL version 0.2.0 released on October 13th, 2018.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Add specs to public functions

* Make several functions private including the `defparsec` definitions

## URL v0.1.0

This is the changelog for URL version 0.1.0 released on October 13th, 2018.  For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/url/tags)

### Enhancements

* Initial release of URL