rel(4)

πŸ“¦
version 29.1.1 Β· 3 versions
, in arch rolling, nixos 26.05, nixpkgs unstable, ubuntu stonking

✨ NAME ✨

ok so this is the manual page for rel β€” the Release resource file πŸ’– (yes bestie, it's an Erlang module definition page, and it's lowkey iconic)


🌸 DESCRIPTION 🌸

the release resource file is the girl who decides which applications are included in a release (system) based on Erlang/OTP. she's the guest list, she's the bouncer, she's everything πŸ’…

this file gets used by the functions in systools when generating start scripts (.script, .boot) and release upgrade files (relup). so like, she's not just pretty, she works.

πŸŽ€ File Syntax πŸŽ€

ok so the release resource file has GOT to be called Name.rel. that's the rule. no cap. πŸ¦‹

inside, the .rel file contains one single Erlang term, and that term is called a release specification. one term. that's it. and the file has this syntax:

{release, {RelName,Vsn}, {erts, EVsn},
  [{Application, AppVsn} |
   {Application, AppVsn, Type} |
   {Application, AppVsn, IncApps} |
   {Application, AppVsn, Type, IncApps}]}.

now lemme break down every single piece, because we do NOT skip details in this house πŸ™ˆβœ¨

  • RelName = string() β€” the release name. she's the title, the main character energy of the whole thing πŸ‘‘
  • Vsn = string() β€” the release version.
  • EVsn = string() β€” the ERTS version this release is intended for.
  • Application = atom() β€” the name of an application included in the release.
  • AppVsn = string() β€” the version of an application included in the release.
  • Type = permanent | transient | temporary | load | none β€” the start type of an application included in the release. and here's the tea β˜•:
    • if Type = permanent | transient | temporary, the application is loaded and started in the corresponding way β€” go peek at application for the deets.
    • if Type = load, the application is only loaded.
    • if Type = none, the application is not loaded and not started, although the code for its modules is loaded. (so like, she's at the party but she's not talking to anyone πŸ’€)
    • this defaults to permanent ✨
  • 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 overrides this value. defaults to the same value as in the application resource file. periodt.
⚠️ NOTE, and bestie this one MATTERS: the list of applications must contain the Kernel and STDLIB applications. like, mandatory mandatory. no Kernel, no STDLIB, no release. don't do it 🫢

πŸ’œ See Also πŸ’œ


that's the whole page bestie, you ate that 🌈⭐

Ericsson AB made this one β€” it's from sasl 4.4, and yeah it's the rel(4) page, so go forth and build your release, you absolute queen πŸŽ€πŸ‘‘πŸ’–

πŸ“¦ where this page comes from