A tool that detects the runnable Erlang/OTP release window for a project by analyzing dependencies and function usage.
Geas is a static analysis tool for Erlang that determines the range of Erlang/OTP releases a project can run on. It analyzes dependencies and function usage to identify compatibility constraints, helping developers avoid runtime errors due to version mismatches.
Erlang developers and teams managing projects with dependencies across multiple Erlang/OTP versions, especially those preparing releases or updating dependencies.
Geas provides automated, precise compatibility checking that goes beyond manual inspection, reducing the risk of deployment issues and saving time in CI/CD pipelines and release preparation.
Guess Erlang Application Scattering
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Calculates exact minimum and maximum Erlang/OTP releases based on function usage, as shown in output where it pinpoints releases like R16B03 for specific offending functions.
Identifies specific functions in beam or source files that limit compatibility, such as erlang:get_stacktrace/0 restricting to version 23.3, providing actionable feedback.
Offers plugins for erlang.mk and rebar, making it easy to integrate into existing Erlang project workflows without manual setup.
Suggests OTP patches to install based on modules used in code, aiding in security and stability, as indicated by the R tag in the output example.
Relies on an internal database of Erlang/OTP functions that may require manual updates via GEAS_UPDATE for new releases, adding maintenance overhead.
The detailed output with multiple tags (e.g., C, T, L) and lists can be overwhelming to parse without familiarity, as seen in the verbose example provided.
Focused solely on Erlang; does not address compatibility issues in Elixir code or dependencies, which is a gap for mixed-language or Elixir-centric projects.