# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.2] - 2024-04-12

### Added
- Doc comments to all modules for docs.rs visibility
- SECURITY.md with vulnerability reporting policy
- Code coverage with tarpaulin + codecov integration
- Codecov badge to README

### Changed
- Enhanced GitHub Pages deployment using actions/deploy-pages

## [0.2.1] - 2024-04-12

### Added
- LICENSE file (MIT)
- CHANGELOG.md with release history
- README badges (crates.io, docs.rs, CI, license)
- Crate-level documentation in lib.rs

## [0.2.0] - 2024-04-12

### Added
- Module-level README documentation for str, arr, errors, fp, types, data
- Extensive Recipes section with common patterns
- CONTRIBUTING.md guide for developers
- GitHub Actions CI workflow with docs deployment
- Migration guide (docs/migration-0x-to-1.0.md)
- Comprehensive usage examples (docs/examples.md)

### Changed
- `#[non_exhaustive]` added to `RokError` enum
- MSRV set to 1.92
- `Lazy<T>` now uses `once_cell::sync::Lazy` internally
- `Str` and `Lazy<T>` implement `Send + Sync`

## [0.1.0] - 2024-04-12

### Added
- String utilities: case conversion, truncation, slug, pluralization
- Fluent builder: `Str::of()` chainable API
- Array utilities: map, filter, reduce, chunk, unique
- Error handling: `RokError` enum with AdonisJS-style codes
- Functional patterns: pipe, compose, tap, retry, lazy, memoize
- Data utilities: numbers, dates (feature: dates), hashing (feature: crypto), ids (feature: ids)
- Type guards: JSON type guards and dot-path access
- File system helpers: ensure_dir, find_files, copy_dir_all
- Path helpers: normalize, stem_ext, with_extension
