rel(5)
π rel(5) β the release resource file, bestie π
okay so this is a page from the Files corner of the manual, and the whole vibe is: this is the file that tells your Erlang/OTP system which apps get to come to the party. π
β¨ NAME β¨
rel β Release resource file. That's it, that's the name, slay. π
πΈ DESCRIPTION πΈ
The release resource file is the little receipt that says which applications are included in a release (aka a system) built on Erlang/OTP. It's the guest list. No cap.
This file is used by the functions in systools when generating:
- start scripts β
*.script,*.boot - release upgrade files β
relup
So yeah, if you've ever wondered where .script and .boot come from, it's giving "this file walked so those could run." π
π¦ FILE SYNTAX π¦
The release resource file is to be called Name.rel. Yes, that exact shape. Name is your name, .rel is the whole personality.
The .rel file contains one single Erlang term, and that term is called a release specification. One term. Not two. Do not try it. π
Here's the syntax, verbatim, don't touch a character:
{release, {RelName,Vsn}, {erts, EVsn},
[{Application, AppVsn} |
{Application, AppVsn, Type} |
{Application, AppVsn, IncApps} |
{Application, AppVsn, Type, IncApps}]}.
Now let's break down every single piece, because the way that each field matters is iconic:
RelName = string()β Release name. That's what it says on the tin, bestie.Vsn = string()β Release version.EVsn = string()β ERTS version the release is intended for. Gotta be specific about which runtime era you're living in. β¨Application = atom()β Name of an application included in the release.AppVsn = string()β Version of an application included in the release.Type = permanent | transient | temporary | load | noneβ Start type of an application included in the release. Here's the tea:- If
Type = permanent | transient | temporary, the application is loaded and started in the corresponding way β go checkapplication(3erl)for the deets. π - If
Type = load, the application is only loaded. That's it. Just loaded. - If
Type = none, the application is not loaded and not started β but the code for its modules is loaded. Sneaky little thing, showing up without being invited to the loading party. π - Defaults to
permanent.
- If
IncApps = [atom()]β A list of applications that are included by an application included in the release. The list must be a subset of the included applications specified in the application resource file (Application.app) β and it overrides this value. Defaults to the same value as in the application resource file.
π Note π
The list of applications must contain theKernelandSTDLIBapplications. Non-negotiable. Like, you literally cannot skip these two. Periodt. π
π SEE ALSO π
And that's the whole page, bestie! This little love letter was brought to you by Ericsson AB, shipping as part of sasl 4.2. Go forth and build your release. π¦β¨π
π¦ where this page comes from
- debian bookworm: erlang-manpages 1:25.2.3+dfsg-1+deb12u1 Β· Apache-2.0
- debian bookworm: erlang-manpages 1:25.2.3+dfsg-1+deb12u4 Β· Apache-2.0
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4 Β· Apache-2.0
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4.8 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms