Skip to content

Khepri 0.17.6

Choose a tag to compare

@dumbbell dumbbell released this 23 Mar 14:33
· 100 commits to main since this release
v0.17.6
5d7b696

At this point, Khepri should be considered Beta. The API will likely evolve and future releases will likely introduce breaking changes.

What's new in Khepri 0.17.6

The release comes with several non-critical bug fixes:

  • Fix use of patterns when we want to handle several expired nodes in a single pass in remove_expired_nodes1/2 (#376).
  • Handle exception from ra:trigger_election/2 when we expand a Khepri cluster; it was already the case when starting a Ra server (#369).
  • Cache effective machine version after recovery (#373).
  • Allow the use of ?LOG_*() macros in transactions (#377).

The remaining changes are related to docs, Dialyzer fixes or small no-op refactors:

  • Refactor the code that needs to know the Ra leader when khepri_machine wants to remember if the latest command was local or remote (#361).
  • Fix type specs (#363, #368).
  • Use the correct guard to check if an argument is a store ID (#370).
  • Fix typo if "maple" (#365).

Download

Khepri is available from Hex.pm: https://hex.pm/packages/khepri/0.17.6

Upgrade

Using Rebar:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri, "0.17.6"}]}.
  2. Run rebar3 upgrade khepri.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri = hex 0.17.6
  2. Remove the deps/khepri directory. The new version will be fetched the next time you build your project.

Documentation

The documentation for Khepri is available on Hex.pm.