Skip to content

Horus 0.2.4

Choose a tag to compare

@dumbbell dumbbell released this 21 Aug 09:27
· 59 commits to main since this release
v0.2.4

At this point, Horus should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.

What's new in Horus 0.2.4

This release focuses on bug fixes.

Fix the ability to bundle Horus in an Erlang release

Users who attempted to create an Erlang release that included Khepri or Horus got an error indicating Horus couldn't find the erlang module (at runtime, not when building the release). The problem was that the dependency to erts was implicit and not declared in horus.app.

This is fixed by #15.

Reduce the pressure on the Code server

code:is_loaded/1 is a synchronous call to the Code server up to and including Erlang/OTP 25. In the context of Khepri, if multiple processes tried to execute the same transaction at the same time, we could end up trying to load the transaction standalone module multiple times concurrently, putting load on the Code server by just trying to see if it was already loaded.

This new version uses another approach to avoid that pressure on the Code server.

This is fixed by #12.

Download

Horus 0.2.4 is available from Hex.pm: https://hex.pm/packages/horus/0.2.4

Upgrade

Using Rebar:

  1. Update your rebar.config:

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

Using Erlang.mk:

  1. Update your Makefile:

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

Documentation

The documentation for Horus 0.2.4 is available on Hex.pm.