-
Notifications
You must be signed in to change notification settings - Fork 5
Erlang.mk plugin
Geas project is needed, but only as build tool and usually not in your relx release.
In your Makefile including erlang.mk, simply add :
BUILD_DEPS = geas
DEP_PLUGINS = geas
To perform all geas plugins, run the following command:
$ make geas
Example on a test project using cowboy :
R15 18.1 Geas database
---Min--------Arch-------Max----------------------------------------------------
R15B01 cowboy
cowlib
ranch
test
--------------------------------------------------------------------------------
R15B01 18.1 Global project
/home/eric/git/test/deps/cowboy/ebin/cowboy_websocket.beam
R15B01 crypto:hash/2
The global project can run starting R15B01 up to higher reference in geas database, 18.1 in such case.
First part table is the compatibility analyze of all elements of the project against geas database. This can be done alone by :
$ make geas_compat
Second part is a detailed information on which beam files are the cause of the release window reduction. It gives the offending function and it’s associated start (or stop) erlang release version.
This can be done alone by :
$ make geas_guilty
Note
|
As far Geas is using beam files, by default, compilation of source files will be done if necessary. |
Warning
|
Geas ignore beam files where abstract code is not available.
This may imply to not detect a break in the computed release window. However since version 2.0.3, geas extract abstract code from source file in such case, if available, as fallback.
|
Caution
|
Geas does not guarantee that your project will run correctly on the whole release window |
Some reasons :
-
Bugs may exists in older release, but fixed in newer
-
Returned values of some functions may have been changed, reduced or augmented in the release window