This is a history of changes to rulvio/taxo
0.2.0 (2026-08-31)
Taxo.CyclicDerivationError, raised byderive/3in place of a bareRuntimeError. Carries:childand:parent, so a caller can inspect what would have cycled instead of parsing a message.- Every public function now requires a
%Taxo{}struct and raisesFunctionClauseErrorotherwise, rather than treating a bare map as an empty taxonomy. @type t/0and@type tag/0, and@specon 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
qualityjob that runsmix format --check-formatted,mix credo --strict,mix deps.unlock --check-unused, andmix dialyzer. The workflow moved from.github/workflows/elixir.ymltoci.yml. - Added
credo, with a strict.credo.exs, and trackedmix.lockso CI dependency versions are reproducible. is_a?/3now returnstruewhenchildandparentare the same tag, matching Clojure'sisa?. Previously it only checked ancestry, so a tag was notis_a?itself.- New README and
docs/hierarchies.md, and clearer docs and comments throughoutlib/taxo.ex.
0.1.0 (2025-03-17)
- Initial release