The Linux SCSI Target Wiki
This entry is all about contributing to targetcli.
How to contribute
If you are only looking for information on how to download and run targetcli, see the Downloads page instead. If you first want to find out how to get the source code, build it and setup a storage system, have a look at the technical documentation in this wiki.
There are many ways how you can contribute to targetcli. Even if you're not a programmer, you can help us with the documentation, or work on the design.
On the other hand, if you know how to program Python and/or C, you are certainly welcome to contribute code of all sorts.
Allowing RisingTide Systems (RTS) to incorporate your contributions
Even though the targetcli source code is licensed to you under the GNU Affero General Public License (AGPL), it's not enough to submit your patches under the AGPL. The Licensing FAQ will tell you more about how RTS handles licensing considerations.
In any event, if you like to contribute anything that is subject to copyright (text, media or code), RTS must legally ascertain that they can redistribute the code you have contributed to their own customers who have purchased closed-source editions of targetcli. In order to be able to accept your contribution, we must therefore ask you to do one of two things:
- Fill out the Contributor Agreement (CA) and send it to RTS. With the CA, you give RTS permission to use your contribution under licenses other than the main targetcli license. This is a once-in-a-lifetime event: once we have your CA, we will never again ask you to undergo any bureaucratic procedures, and all future contributions are covered.
- If you don't want to sign such an agreement, you can alternatively submit your contribution under the MIT License. This is a liberal, wide-spread Open Source license that allows RTS (and anyone else) to use your contribution in both open-source and closed-source projects.
Basically, the main difference between the two options is this: With the CA, a written statement is necessary, but then only RTS 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 targetcli development model
The source code of targetcli resides in a public git repository which is hosted on risingtidesystems.com/git. Currently, only RTS 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 internal RTS repository and then automatically synchronized to the public repository. A large test laboratory at RTS's facilities and a dedicated test team in 24x7 operation ensure that the code quality of targetcli and LIO-Target 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 targetcli installers every time changes are made to the targetcli 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 targetcli contributors to respect these milestones.
How to submit your contributions
If you have developed a patch for targetcli that you think might be useful for others and fits within the product's architecture, then you should submit it for inclusion. As a first step, you should execute the Contributor Agreement (CA) as described above, which is a very straightforward and risk-free process. Then you should submit your patch to the targetcli mailing list (see the Support page) along with a description of what it does. In case you have not signed the CA, please explicitly state that you are licensing the patch under the MIT license.
Please keep in mind that it might take some time to review your patch and integrate it. Also, please expect feedback from other developers on how to improve your patch and address potential issues. We can only incorporate your patch if it does not harm product stability.
Please contact RTS if you have any questions:
- Phone (US): +1.650.384.6366 (US)
- Phone (EMEA): +49.172.7277920 (EMEA)
- Email: firstname.lastname@example.org
- Web: risingtidesystems.com
Please see Support for more information.
- Licensing FAQ
- LIO Target, targetcli
- Wikipedia entries: GPL, AGPL, MIT License, Contributor License Agreement (CLA)