You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CONTRIBUTING.md 2.2KB

1234567891011121314151617181920212223242526272829
  1. VCV Rack is [open-source](https://opensource.org/osd) but not [open-contribution](https://opensource.guide/how-to-contribute/).
  2. VCV is unable to accept free code contributions to Rack for the following reasons.
  3. - **Quality.**
  4. Most contributions to open-source projects typically only contain code, but writing code is just a small percentage of the effort required to maintain a large software project.
  5. Additional tasks for fully supporting a feature include
  6. - debating the best design before any code is written
  7. - considering all use cases and corner cases of the implementation
  8. - generalizability to allow other features to be built on top if needed
  9. - backward compatibility with Rack's plugin [API/ABI](https://vcvrack.com/manual/Version) and user patches.
  10. - testing across all supported operating systems and hardware
  11. - dedication to support the feature for >4 years
  12. - **Time.**
  13. In the past, free code contributions have cost far more time to review, iterate, fix, and test than writing the implementation from scratch.
  14. There have been exceptions to this, but they are rare.
  15. - **Legal.**
  16. A proprietary fork of VCV Rack is planned (see [*Rack for DAWs*](https://vcvrack.com/manual/FAQ.html#is-vcv-rack-available-as-a-vst-au-aax-plugin-for-daws)), so VCV must own all GPL-licensed code that is included in Rack.
  17. To accept a contribution, all authors of the contribution need to either
  18. - declare the patch under the [CC0](https://creativecommons.org/publicdomain/zero/1.0/) license.
  19. - complete a copyright reassignment form.
  20. - perform the work under a paid agreement.
  21. Except in exceptional circumstances, contributions are only accepted as paid work under detailed guidelines.
  22. However there are several areas you may volunteer to benefit the Rack project.
  23. - Create proper [bug reports and feature requests](https://vcvrack.com/manual/Issues).
  24. - Answer questions in the [VCV communities](https://vcvrack.com/manual/Communities).
  25. - Develop and maintain your own [Rack plugins](https://vcvrack.com/manual/PluginDevelopmentTutorial).
  26. - Contribute to Rack's open-source dependencies, such as [GLFW](https://www.glfw.org/), [nanovg](https://github.com/memononen/nanovg), [RtAudio](https://www.music.mcgill.ca/~gary/rtaudio/), and [RtMidi](https://www.music.mcgill.ca/~gary/rtmidi/).