I (Andrew Belt) generally do not accept unpaid contributions to the Rack codebase itself due to time costs.
Writing code is easy. Instead, the difficulty of changing Rack’s source code involves
- research to devise the best solution with a convincing argument
- acceptance of API/ABI change proposals
- generalizability to solve similar issues, and flexibility for solving future solutions without an entire rewrite
- future-proofing to avoid unnecessarily breaking patches or API/ABI in the near future
- testing on relevant platforms, hardware devices, plugins, etc.
- dedication to maintain the code in the future
- sometimes legal review
Unpaid contributions typically omit many of the above tasks, making the code more expensive for me to accept than simply writing it myself. Instead, there are many other areas where contributions are much appreciated.
- Dependencies of Rack. Especially nanovg’s performance, rtaudio/rtmidi’s stability and compatibility, and maybe even touch support in GLFW. You would be helping many more projects than just Rack.
- Your own Rack plugin
- Maintaining the Rack plugin ecosystem by curating, updating, and reviewing plugins
- Edits to the VCV Rack manual.
I will consider your contribution to Rack if you first open a GitHub issue with a detailed design proposal, which may create an open discussion before the change is implemented. By submitting code through a pull request, you agree to assign the copyright of your code to Andrew Belt to be licensed under the BSD-3-Clause (see Licenses).