Changelog

View Source

0.7.0

Breaking

  • Minimum supported Erlang/OTP version is now 25, inherited from shackle 0.7.0.

Changed

  • Replaced the granderl dependency with knot (in-house C NIF using wyrand). statsderl_sample:rate_scaled/2 now calls knot:uniform/1 — same signature, same range guarantees, no behavioural change at the sample-rate gate.
  • Bumped shackle from git ref 0.6.16 to the hex 0.7.0 release.
  • Bumped parse_trans from 3.0.0 to 3.4.2.
  • CI matrix now covers OTP 25, 26, 27, 28; actions/checkout upgraded to v5.
  • Documentation migrated from edown to rebar3_ex_doc (matching shackle 0.7.0). Generated doc/ directory removed from the repo; HTML docs are now published to hexdocs on release.

Why

granderl 0.1.5 on hex.pm fails to build on OTP 27+: its preamble.sh invokes erl -noshell -s init stop -eval ... with options in an order that causes the node to terminate before -eval runs, leaving ERTS_INCLUDE_DIR empty and the C compiler unable to find erl_nif.h. The fix exists in granderl's master but the hex package is not under our ownership. knot is a small in-house C NIF (~80 LOC) that implements the same uniform/1 primitive cleanly on every supported OTP.