Working with 3rd Party Code
The Kuali software distribution(s) use 3rd party code and libraries developed by other individuals and organizations and licensed under specific terms deemed compatible with the ECL and the Kuali Foundation's policies.
The following workflow describes the process of evaluating new 3rd party source code or libraries for inclusion in the Kuali Project. The basic idea is that as developers identify code that would be useful in meeting development objectives, they must follow this process to ensure that the conditions of the new code's license are compatible with the Kuali license and distribution practices.
P1. Identify 3rd party code
A developer identifies code that would be useful to include in the project. The developer should request that this 3rd party code be discussed at the Lead Developers meeting.
P2. Lead Developer Review
Lead Developers will review the requested 3rd party code for value, appropriateness, and in part to ensure that the added functionality does not already exist in the project. The Leads can decline the request or recommend it to the Kuali Technical Council.
P3. Kuali Technical Council Review
Kuali Technical Council
The Kuali Technical Council will review the merits of the recommended 3rd party code. The KTC can reject the recommendation or approve it. This KTC process can be accomplished through email in lieu of a meeting.
P4. Initiate license assessment
It is important at this point to determine, in addition to how the code will be used, how it is licensed. Before beginning to use any 3rd party code, the developer must initiate a conversation with the Licensing Workgroup. The Licensing Workgroup will work with the developer to determine compatibility and any requirements that go along with using the new software. This conversation begins with the developer completing an initial KULLIC:checklist and including it in a Configuration Management JIRA issue.
D1. Ok to distribute?
P5. Initiate conversation with author
If the initial assessment determined that the terms are not acceptable, the Licensing Workgroup may wish to contact the author and request that the author grant Kuali the right to distribute the code under more acceptable terms. The best way to do this is by using a standard request email template asking the author to execute a contribution of the code to the Kuali Foundation. Other acceptable outcomes would be permission to use the work under the terms of the ECL, Apache 2.0 license, or another compatible license.
If negotiation with the author is successful, proceed to P7. If unsuccessful, proceed to P6 OR P8.
P6. Find alternative
P7. Document use and initiate any requirements
If the work in question is deemed acceptable to use. It's use must be documented on the KFS Library and Licensing Information (review and delete) page in the Licensing Space. Any requirements for licensing and attribution must also be put in place. Often this involves:
- Adding the 3rd party license(s) to the licenses folder at the top of the distribution.
- Adding proper attribution to the Acknowledgments screen.
P8. Use an alternative method of distribution
The Configuration Manager can decide to use an alternative method of distribution. It may be acceptable to have the end user download the work in question themselves, removing the Kuali Foundation from the chain of responsibility.
In all cases, be sure to obey the licensing constraints of the original author. See Applying the ECL for more information.