Current section
Files
Jump to
Current section
Files
CHANGELOG.md
This is a history of changes to rulvio/taxo
## 0.2.0 (2026-08-31)
* `Taxo.CyclicDerivationError`, raised by `derive/3` in place of a bare `RuntimeError`.
Carries `:child` and `:parent`, so a caller can inspect what would have cycled instead
of parsing a message.
* Every public function now requires a `%Taxo{}` struct and raises `FunctionClauseError`
otherwise, rather than treating a bare map as an empty taxonomy.
* `@type t/0` and `@type tag/0`, and `@spec` on every public function.
* CI now runs on a version matrix (the declared floor, Elixir 1.18/OTP 27, and
the current release, 1.20/29), plus a `quality` job that runs
`mix format --check-formatted`, `mix credo --strict`, `mix deps.unlock
--check-unused`, and `mix dialyzer`. The workflow moved from
`.github/workflows/elixir.yml` to `ci.yml`.
* Added `credo`, with a strict `.credo.exs`, and tracked `mix.lock` so CI
dependency versions are reproducible.
* `is_a?/3` now returns `true` when `child` and `parent` are the same tag, matching
Clojure's `isa?`. Previously it only checked ancestry, so a tag was not `is_a?`
itself.
* New README and `docs/hierarchies.md`, and clearer docs and comments throughout
`lib/taxo.ex`.
## 0.1.0 (2025-03-17)
* Initial release