lib/pages/changelog.md

# Changelog for v0.9

## v0.9.0 (2025-03-31)

### BREAKING CHANGES

This release introduces breaking changes as the library is still under heavy development. The
locale configuration and option values now use `Atom` instead of `String`.

#### Changes in `config.exs`

```elixir
# Before
config :neo_faker, :default_locale, "en_us"

# After
config :neo_faker, :default_locale, :en_us
```

#### Changes in function options

```elixir
# Before
iex> NeoFaker.App.description(locale: "id_id")
"Pustaka Elixir untuk menghasilkan data palsu dalam pengujian dan pengembangan."

# After
iex> NeoFaker.App.description(locale: :id_id)
"Pustaka Elixir untuk menghasilkan data palsu dalam pengujian dan pengembangan."
```

### Refactor Locale Data Map Values

The function `NeoFaker.Helper.Locale.read_locale_file!/3` has been refactored to return a map with
shuffled values, increasing randomness in the generated output.

### New Locale Generators

This release introduces new locale-specific generators.

#### `NeoFaker.IdId.Person`

The `NeoFaker.IdId.Person` module provides functions for generating person-related data specific
to the Indonesian locale. Currently, it includes the `nik/0` function.

#### `NeoFaker.EnUs.Person`

Similar to `NeoFaker.IdId.Person`, but for the EN-US locale. At this stage, it includes only the
`ssn/0` function.

### New Date, Time, and DateTime Generators

This release also introduces new generators for date.

#### `NeoFaker.Date`

- `NeoFaker.Date.add/2` - Generates a random date within a specified range.
- `NeoFaker.Date.between/3` - Generates a random date between two specified dates.