This is a new feature in Rebar3 3.7.0, to write custom compilers to be used with it. It is useful whenever you have files of a different language that you want to build alongside Erlang resources. Starting with Rebar3 3.14.0, the interface was enhanced to allow better tracking of files in a directed acyclic graph (DAG), which lets you annotate build artifacts and allows Rebar3 to track dependencies across applications. This interface is currently used internally for .xrl, .yrl, and .mib files...| Rebar3 – Extending Rebar3
Resources Compatible with versions 3.7.0 and Above Starting with version 3.7.0, Rebar3 published a new API for custom resources, which gives access to the project’s local configuration to enable more powerful custom dependency formats. They can use contextual information from the current build to customize how dependencies might be fetched. 🚧 The new Interface is not backwards compatible This new interface is unknown and unsupported in versions prior to 3.| www.rebar3.org
This tutorial shows you how to write plugins that provide wholesale new compilers. This is something you should use if you want to be compatible with Rebar3 prior to version 3.7.0, or when your compiler requires features outside of the scope of what is provided by the compiler plugin behaviour. Often applications have non-Erlang code that needs compiling, such as DTL templates, C code for generating parsers from PEG files, etc.| www.rebar3.org