zx_rebar_plugin
Copyright (c) 2025 QPQ AG
A rebar plugin for assisting rebar3-enabled applications that also support zx.
Build
$ rebar3 compile
Use
Add the plugin to your rebar config:
{plugins, [
{zx_rebar_plugin, {git, "https://git.qpq.swiss/QPQ-AG/zx_rebar_plugin.git", {tag, "0.1.0"}}}
]}.
In order to add zx as a dependency:
{deps, [
...,
{zx, {zx, "https://gitlab.com/zxq9/zx", {ref, "2a0437f4"}, "0.14.0"}}
]}.
The third element (e.g. "0.14.0") is the application version of zx.
Note that the given version must be reachable through the specified commit reference.
Currently, this plugin only registers a resource callback that fetches and organizes
the zx application as a rebar3 dependency.
In the future, we may add utility commands to simplify creation of zx packages from
within rebar3.
Technicalities
The zx git repository has an organization that isn't directly rebar3 compatible,
and the source is found under e.g. zomp/lib/otpr/zx/0.14.0. While rebar3
supports a git_subdir fetch method, it makes assumptions about the path that won't
work with zx. The resource plugin also ensures that there is a rebar.config file
(generating one if necessary).
While zx relies on make all for the compilation, rebar3 lacks support for this,
and instead uses the erlc compiler. At the moment, this isn't a problem, and if it
should become one later, this plugin can be extended to adapt.