= How to contribute = This page is all about how you can contribute to VirtualBox. (If you are only looking for information on how to download and run !VirtualBox, see the [wiki:"Documentation"] page instead.) There are many ways how you can contribute to !VirtualBox. Even if you're not a programmer, you can help us with the '''documentation,''' or work on the '''design'''. For a start, we suggest you browse through our list with [wiki:"Suggestions for Contributions"]. On the other hand, if you know how to program C++, you are certainly welcome to '''contribute code''' of all sorts. == Allowing !InnoTek to incorporate your contributions == Even though !VirtualBox' source code is licensed to you under the GPL, it's not enough to submit your patches under the GPL. The [wiki:"Licensing FAQ"] will tell you more about how !InnoTek handles !VirtualBox licensing. In any event, if you like to contribute anything that is subject to copyright (text, media, or code), !InnoTek must be legally certain they can redistribute the code you have contributed to their own customers who have purchased closed-source editions of !VirtualBox. In order to be able to accept your contribution, we must therefore ask you to do one of two things: 1. Fill out the [wiki:"InnoTek Contributor's Agreement"] (ICA) and send it to !InnoTek. In the ICA, you give !InnoTek permission to use your contribution under licenses other than the main !VirtualBox license. This is a once-in-a-lifetime event: once we have your ICA, we will never again ask you to undergo any bureaucratic procedures, and all future contributions are covered. 2. If you don't want to sign such an agreement, you can alternatively submit your contribution under the [wiki:"MIT license"]. This is a liberal, wide-spread Open Source license that basically says "do as you wish". Basically, the main difference between the two options is this: With the ICA, a written statement is necessary, but then ''only'' !InnoTek is allowed to relicense your code (unless you give other people the same permission). With the MIT license, you save the paperwork, but everyone else can use your code as well. It's your choice. == The !VirtualBox development model == The source code of !VirtualBox resides in a public [wiki:"Subversion"] repository which is hosted on this site. Currently, only !InnoTek employees have write access to ensure that only reviewed and tested patches find their way to the repository. However, over time, we would like to extend the group of people with write access. Patches are always first applied to an !InnoTek internal subversion repository and then automatically synchronized to the public repository. A large test laboratory at !InnoTek's facilities and a dedicated test team in 24/7 operation ensures that the code quality remains excellent: dozens of test machines perform automated tests to spot regressions and monitor performance. Automated build servers for all supported platforms create ready-to-run !VirtualBox installers every time changes are made to the !VirtualBox source code. These development builds provide end users with the latest features but may not necessarily be well tested or stable. In addition to development builds, we also perform regular product releases based on a milestone plan. As we work hard to produce high quality software releases, it is important for all !VirtualBox contributors to respect these milestones. == How to submit your contributions ==