Geas - a tool detecting the runnable official Erlang release window for your project

Guess Erlang Application Scattering

  • What is you usage?
  • what new features do you expect?

Guess Erlang Application Scattering

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.

6 Likes

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 :icon_redface: :lol:

2 Likes

Okay this is a pretty cool little scanner. ^.^

1 Like

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.)

@crownedgrouse Thanks for this helpful tooling!

2 Likes

Geas 2.7.7 (Erlang 24.2) was released!

3 Likes

Geas 2.7.8 (Erlang 24.3) was released !

3 Likes

This is the first I’m learning about Geas- what a cool project! I really like this

3 Likes

Geas 2.7.9 has been released !

Changelog :

  • Update for Erlang 25.0 detection and database

Rebar users should upgrade geas_rebar3 plugin to 1.4.9 to use this version.

Hex.pm:

4 Likes

To detect problems I use
rebar3 xref

To resolve problems I use otpbp

1 Like

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.

1 Like

Geas 2.7.10 has been released !

Changelog :

  • Update for Erlang 25.1 detection and database

Rebar users should upgrade geas_rebar3 plugin to 1.4.10 to use this version.

2 Likes

Geas 2.7.11 has been released !

Changelog :

  • Update for Erlang 25.2 detection and database

Rebar users should upgrade geas_rebar3 plugin to 1.4.11 to use this version.

Hex.pm: geas | Hex
geas_rebar3 | Hex

3 Likes

Geas 2.7.12 has been released !

Changelog :

Update for Erlang 25.3 detection and database

Rebar users should upgrade geas_rebar3 plugin to version 1.4.12

4 Likes

Geas 2.7.13 has been released !

Changelog :

  • Update for Erlang 26.0 detection and database.

Rebar users should upgrade geas_rebar3 plugin to version 1.4.13.

3 Likes

100 000 download reached on hex.pm with peak over 800 a day.
I’m very pleased that geas become a widely used tool.
Thank for your support.

PS: i’m working on other exciting tools !

5 Likes

Geas 2.7.14 has been released !

Changelog :

Update for Erlang 26.1 detection and database.

Rebar users should upgrade geas_rebar3 plugin to version 1.4.14.

1 Like

Geas 2.8.0 has been released ! (Oh Oh Oh !!!)

Changelog:

  • Update database and detection for OTP-26.2
    Fixes :
  • Prevent crash when min. is higher than max. in expected range
  • Don’t crash if a BEAM’s compile_info does not include options
  • A more specific error message when exiting with 1
    Thank to kivra-pauoli for PRs.

Rebar users should upgrade geas_rebar3 plugin to version 1.4.15

1 Like

Geas 2.8.1 has been released !

Changelog:

Update database and detection for OTP-27.0

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.

3 Likes