We welcome contributions to CasADi from the community. For any contributions, please be aware of the following:
- Any contributions must be made in the form of a pull request to the
main
branch of CasADi. - Any pull requests must follow CasADi's coding principles and style. It must also pass all existing unit tests and examples. We enforce google-style C++ using
cpplint
, which can be run locally usingmake lint
. The unit tests and linter is run automatically on all pull requests and we will only merge if the testing comes back green. - The code will retain the same license as before after any commits and the implicitly to give the CasADi maintainer copyright of the updated code. We will not in general accept any changes to the copyright statement in each file. Note that the CasADi C runtime is licenced more permissively (MIT-0) than the rest of CasADi, which is LGPL.
- Pull requests for simple bug fixes and omissions - a few lines of code - or corrections to the user documentation can be made directly without coordination with the CasADi maintainers. For more major changes, including new features or interfaces, we strongly urge you to coordinate with the developers. We in general do not have the resources to review or asssist with such changes unless we have funding to work on them. You can maintain such changes yourself in your own fork of CasADi, but unsolicited pull request to merge them with the mainline are likely to be rejected or left unmerged indefinitely. The main developers of CasADi can be reached for paid consulting services via [email protected].