Skip to content

Latest commit

 

History

History
57 lines (43 loc) · 3.75 KB

CONTRIBUTING.md

File metadata and controls

57 lines (43 loc) · 3.75 KB

Contributing

Want to contribute to the Toit language? Great! First, read this page.

Code of conduct

Contributing code to a community is a great way to engage. Make sure to read our code of conduct; the foundation for our community interactions.

Individual contributions

Before we can use your code, you must sign Toitware's individual contributor license agreement (CLA). Toitware is the startup company that originally developed the Toit language and it continues to be the maintainer of the associated open source projects. Requiring a CLA is a common and well-accepted practice in open source. Major open source projects require CLAs such as Apache Software Foundation projects, Facebook projects (such as React), Google projects (including Go), Python, Django, and more.

The CLA is based on Google's CLA for individuals, which in return is based on the Apache CLA for individuals. Send an email to [email protected] indicating your request to sign the CLA and we will respond with a document ready for your electronic signature. Please include a link to your GitHub user profile page in the request to make it easier to identify your contributions going forward.

The CLA makes it explicit that contributions are licensed under the project's respective open source licenses, that contributors give permission to use the contributions indefinitely, and provides Toitware the right to include the contributions in commercial products. The license also makes clear that contributors are not assuming any warranty or support obligations for any contributions. Agreeing to the CLA is not a transfer of ownership. You do not lose or change any of your rights to use your own contributions for any other purpose.

The CLA is necessary mainly because you own the copyright to your changes, even after your contributions become part of our codebase, so we need your permission to use and distribute your code. We also need to be sure of various other things - for instance that you‘ll tell us if you know that your code infringes on other people’s patents. Importantly, the CLA also gives Toitware the right to sublicense your contributions, which means that Toitware can use your work in commercial products and distribute them under other licenses, including proprietary ones; see dual licensing.

You don‘t have to sign the CLA until after you’ve submitted your code for review and a member has approved it, but you must do it before we can put your code into our codebase. Before you start working on a larger contribution, you should get in touch with us first through the issue tracker with your idea so that we can help out and possibly guide you. Coordinating up front makes it much easier to avoid frustration later on.

Dual licensing

Toitware uses the Toit programming language and its open source implementation to build the full Toit platform. The Toit platform is a closed source derivative of the open source code base and it is licensed under a proprietary commercial license. This implies that the language implementation uses dual licensing since the same code is offered under two different licences. By granting Toitware the right to sublicense your contributions, the CLA ensures that Toitware can continue to use this setup to build a business around the Toit language.

Corporate contributions

Contributions made by corporations will be covered by a different agreement than the one above. If you work for a corporation, do let us know up front so we can get the right agreement in place.