Skip to end of metadata
Go to start of metadata

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.

Icon

Note: Email licensing@kuali.org with any questions or concerns on the licensing process for 3rd party libraries.

Process Overview

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.

Process Detail

P1. Identify 3rd party code

Developer
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
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

Developer
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?

Licensing Workgroup
The Licensing Workgroup will work with the developer to determine whether the terms of use for the 3rd party code are compatible with Kuali's distribution practices and the best approach to including the new code in the project. If the Licensing Workgroup determines that the code is acceptable to distribute then the process moves on to P7. If it is not acceptable, the process leads us to P5. If the developer disagrees with the Licensing Workgroup, the escalation process will be to the Project Manager, and then, if necessary, to the Board.

P5. Initiate conversation with author

Licensing Workgroup
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.

D2. Re-license?

Licensing Workgroup
If negotiation with the author is successful, proceed to P7. If unsuccessful, proceed to P6 OR P8.

P6. Find alternative

Developer
If the terms of use for the work in question are deemed unacceptable, the developer can find an alternative file or library that has more acceptable licensing requirements.

P7. Document use and initiate any requirements

Licensing Workgroup
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:

  1. Adding the 3rd party license(s) to the licenses folder at the top of the distribution.
  2. Adding proper attribution to the Acknowledgments screen.

P8. Use an alternative method of distribution

Configuration Manager
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.