erlware / relx

Sane, simple release creation for Erlang
http://erlware.github.io/relx
Apache License 2.0
697 stars 232 forks source link

add check_for_undefined_functions option using xref on release #815

Closed tsloughter closed 4 years ago

tsloughter commented 4 years ago

systools exref feature has no good way of setting the xref library path so I've added our own feature for this. A use can still enable exref if they desire but in docs we will focus on this new option.

It only adds project apps that are in the release (even if they are not listed directly but are a dependency of another project app listed in the relx release applications list) and sets the library path to only include applications in the release.

This is important for helping catch when a user forgets to include an application in the release that is used -- like forgetting to add a runtime dependency to .app.src .

Question I want considered before we merge this: Should it be on by default?

I'm learning towards making it on by default.

Future work that should be done:

tsloughter commented 4 years ago

Since this seems to be checking by default

We aren't checking by default. It is default set to false.

ferd commented 4 years ago

Since this seems to be checking by default

We aren't checking by default. It is default set to false.

Yeah sorry, I meant "since this seems to be checking only undefines by default". I feel that's generally safe and good, and for a good while regretted not having it as a default in Dialyzer. I feel it's safer / less annoying to see for releases than dialyzer all of a sudden too.