Problem
When project A depends on project B, recompiling project B is only possible by first unloading project A manually. This becomes a larger issue if more projects depend on project B.
Proposal
- Add a
c (compile) flag argument to the recompile command that, when set, will automatically recompile direct and indirect dependents.
When a recompile on a project (including dependents) fails, nothing should be unloaded or replaced.
- Add a
r (reload) flag argument to the recompile command that, when set, will automatically unload and load direct and indirect dependents (unload before unloading B and load after loading B).
This could cause incompatibilities if API methods in B change, but this is the responsibility of the programmer.
These solutions allow the programmer to recompile any project with the choice to reload or recompile and reload dependents using a single command, while maintaining availability for players and without missing synchronized events.