Geas : (In Irish folklore) an obligation or prohibition magically imposed on a person.
By extension, obligation or prohibition imposed by an Erlang application or module, which may modify its scattering.
Overview
Geas is a tool detecting the runnable official Erlang release window for your project.
Geas will tell you also :
what are the offending functions in the beam/source files that reduce the available window.
if some beam files are compiled native.
the installed patches and recommend patches that should be installed depending your code.
For example , if a dependency is using application:ensure_all_started/1 your project can only be used starting R16B02 or if maps is used somewhere, starting 17.0. On contrary, pg module cannot be used after 17.5 but is back again in 23.0.
I hope you don’t mind Eric but I added some additional info to your post - I’m sure I wouldn’t have been the only one wondering what Geas was otherwise
Geas is perfect as a Rebar3 plugin.
This is one of the tools that “know” (or find out) for you, so that you don’t have to fill up your head with stuff (knowing about compatibility etc.)
Those are nice but not really same goal than geas.
Xref let you know unused exported functions of non Erlang core functions .
Otpbp add some new functions to old erlang releases .
Geas let you know if your code and all depencies (you are not always owner) is compatible with a range of erlang releases.
Rebar users should upgrade geas_rebar3 plugin to version 1.4.16
Note: Users using OTP-27 must imperatively upgrade to this version as ‘maybe’ is a now a reserved word, and older geas databases contains a non escaped ‘maybe’ atom as a MFA in its database.