Well if we are talking about your application then you already know it. And if we are talking about a library then it is either documented in the configuration section of the documentation, if it exists, or you have to dive in the code:
Module that define macros call defmacro. Module that use macros call use SomeModule or require SomeModule.
I am not sure if import SomeModule also “requires” the module to be able to call its macros.
Unfortunately this only gets you so far…
That is why, when they say " if it can be set at runtime, it should be set at runtime", then I would say “yes, if it is environment dependent (a hostname, a port, a database connection string, anything that you would put in your .env files)”. Otherwise, if it is something that doesn’t change, the compile-time config is fine.


















