In order for hmxmilohax/rock-band-3-deluxe#499 to be viable, we should re-implement the major tools we depend on. Otherwise, we are just adding more complexity to our repo setup process. Ideally, these tools should have no dependencies other than what's listed in the Cargo.toml files meaning the only thing contributors will need to install is the Rust compiler.
The big thing we should focus on here is keeping the codebase as easy to navigate as possible. We should move shared code into libraries, and keep binaries as single-purpose as reasonably possible. Mackiloha is an example of what not to do here as its actually really hard to find things in that codebase and it depends on an entire runtime. (.NET)
Anyway, to start with we should probably re-implement the following:
We probably will not need to re-implement these tools although it would be nice to not depend on them if possible:
-
dtab - This tool is well made as it is and we'd get little benefit from rewriting it.
-
ninja - Same reason as dtab, although we could retool our build script to not depend on it.
In order for hmxmilohax/rock-band-3-deluxe#499 to be viable, we should re-implement the major tools we depend on. Otherwise, we are just adding more complexity to our repo setup process. Ideally, these tools should have no dependencies other than what's listed in the
Cargo.tomlfiles meaning the only thing contributors will need to install is the Rust compiler.The big thing we should focus on here is keeping the codebase as easy to navigate as possible. We should move shared code into libraries, and keep binaries as single-purpose as reasonably possible. Mackiloha is an example of what not to do here as its actually really hard to find things in that codebase and it depends on an entire runtime. (.NET)
Anyway, to start with we should probably re-implement the following:
superfreq- Specifically the image conversion part. This tool is really slow as it is, and we would likely get a massive reduction in build times from doing so.arkhelper- Re implementing this in addition tosuperfreqwill remove our .NET dependency entirely.We probably will not need to re-implement these tools although it would be nice to not depend on them if possible:
dtab- This tool is well made as it is and we'd get little benefit from rewriting it.ninja- Same reason as dtab, although we could retool our build script to not depend on it.