All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.4.0] - 2026-05-08
Changed
- Modernized
mix.exsconfiguration (renamed module toLuhn.MixProject, updated deps) - Made
double/3private — it was an internal implementation detail exposed publicly - Improved
@docand@specannotations across all public functions - Updated CI to test against Elixir 1.15–1.19 and OTP 26–28
- Minimum Elixir version bumped to 1.13
- Replaced ExCoveralls with Mix's built-in coverage; enforces 80% minimum threshold
- Fixed incorrect doctest expected values for
checksum/2andvalid?/2
Added
.formatter.exsfor enforced code formatting- Credo for static analysis (
mix credo --strict) - Dialyxir for type checking (
mix dialyzer) CHANGELOG.md(this file)- Doctest integration in test suite
- Edge case tests (single digit, error handling)
Removed
power_assertdependency (unmaintained, unused)benchfelladependency (replaced by standard benchmarking)excoverallsdependency (replaced by built-in Mix coverage)
[0.3.3] - 2019-08-18
Added
- Guard clause for base validation (
base >= 2) ex_docdependency for documentation generation
Changed
- Refactored to use
Integer.digits/2andEnum.reverse/1
[0.3.2] - 2016-09-01
Added
- Hexadecimal (base 16) support
- Arbitrary base support for Luhn validation
[0.3.1] - 2015-07-28
Added
- Support for integer input (in addition to strings)
[0.3.0] - 2015-07-03
Changed
- Performance improvements
[0.2.0] - 2015-06-29
Added
checksum/2function
[0.1.0] - 2015-06-26
Added
- Initial release
valid?/1function for Luhn number validation