jc00ke

jc00ke

Before I propose this to the core team via mailing list, does anyone know of the incantation to get the exact OTP version? I’ve found otp_version and I see that –short-version will land in 1.13, but I’d really like to see the actual OTP_VERSION.

iex(1)> System.version()
"1.12.1"
iex(2)> System.otp_release()
"24"
iex(3)> System.build_info()
%{
  build: "1.12.1 (compiled with Erlang/OTP 24)",
  date: "2021-05-28T16:00:08Z",
  otp_release: "24",
  revision: "42807d2",
  version: "1.12.1"
}
iex(4)> :erlang.system_info(:otp_release)
'24'

My motivation is that there can be a discrepancy between what I have in .tool-versions and what’s installed in a Docker container and I’d like CI to fail if versions don’t match. Ideally CI would fail quickly with a bash script in the test pipeline instead of needing to compile the whole project.

Thanks!

Showing Posts 1 to 4

wojtekmach

wojtekmach

Hex Core Team
moogle19

moogle19

Here is some documentation about it:
Retrieving current OTP version

The elixir version would look something like this:

[:code.root_dir(), "releases", :erlang.system_info(:otp_release), "OTP_VERSION"] 
|> Path.join() 
|> File.read!() 
|> String.trim()
jc00ke

jc00ke OP

Thanks, that should work for now. Is there any appetite for having this exposed via elixir --otp-version?

wojtekmach

wojtekmach

Hex Core Team

You’d have to ask the core team but I’m pretty sure the answer would be no unless there’s a proper API in OTP for it, I imagine something like :erlang.system_info(:otp_version) would be one idea how this could be exposed. But yeah, the versioning is tricky as described in one of the links above.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews