ninenines / erlang.mk

A build tool for Erlang that just works.
https://erlang.mk
ISC License
578 stars 241 forks source link

relx can't find app #991

Open rlipscombe opened 11 months ago

rlipscombe commented 11 months ago

See https://github.com/ninenines/cowboy/issues/1593.

The working directory has to match the application name. A dash followed by a version may be present. Without this, you get a hard-to-understand error:

init terminating in do_boot ({{error,{rlx_resolve,{app_not_found,middleware,undefined}}},
[{rlx_resolve,find_app_in_code_path,2,[{_},{_}]},{rlx_resolve,subset,6,[{_},{_}]},{rlx_resolve,solve_release,2, 

(wrapped for "readability"; the app is called middleware)

The important bit is {error,{rlx_resolve,{app_not_found,APPLICATION_NAME,undefined}}}.

This is particularly a problem if you're building inside a container (because it's common to use WORKDIR /build, and that's not gonna match).

FrancescoRestelli commented 6 months ago

this really needs some attention, i went and patched my own version of rlx_resolve.erl to solve this in the past, however that broke now with otp26 :)

please add a nice print

pavel-baturko-sb commented 5 months ago

this is an annoying issue, especially in CI environments

essen commented 5 months ago

Best I can do is a nicer error message. This is an expectation of OTP that the folder name matches the application name (with an optional dash followed by anything you want). A PR implementing the nicer error message is welcome.