Skip to content

v4.0.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@tsloughter tsloughter released this 18 Apr 17:06
· 60 commits to 4.0.0 since this release
v4.0.0-rc1
e3b61cd

New Features

  • Actually removal of features:
    • No longer an escript
    • Functionality that is a duplicate of rebar3 has been removed
    • rebar3 is now able to pass a map of OTP Applications so relx does not need to do a discovery step
    • Releases are no longer discovered unless needed
  • Add support for exref, {exref, [Apps]} and src_tests
    • Neither form of exref will work if using rebar3 as an escript. Install with rebar3 local install in order to use this feature.
  • Add support for multiple mode types:
    • dev: Same as the old dev_mode option. Creates symlinks for applications and configuration.
    • minimal: Same as prod but does not include ERTS in the release.
    • prod: Strips debug info from beam modules, includes ERTS and excludes src
  • Extended start script no longer requires exact version of ERTS but attempts to use the one in the PATH if none is bundled in release
  • On OTP-23:
    • extended start script will use erl_call instead of nodetool
    • remote shell will not bind to a listen port making use of epmdless simpler

New Defaults

  • extended_start_script is true by
  • Automatically includes config/sys.config[.src] and config/vm.args[.src]
    • set {sys_config, false} and {vm_args, false} to force them to be left out
  • Release boot script is now always named start.boot

Bug Fixes

Backwards Incompatible Changes

Start Script

  • eval requires trailing period: bin/<release_script> eval "3."
  • rpcterms removed
  • rpc takes list of arguments, so to call foo:bar(1,2,3): bin/<release_script> foo bar "[1,2,3]."
  • start renamed to daemon
    • attach renamed to daemon_attach
  • remote_console has aliases remote and remsh

Release building

  • Provider support removed from relx
  • No support for goal restrictions like {appname, "> 1.1.1"}