Overview: What is contribution?
To contribute is “to give or supply in common with others” (merriam-webster).
This term has become a strategy employed by open-source communities to initiate, develop and sustain projects. Apache Foundation, PHP, Fluid, Sakai, JA-SIG, Linux, GNU, WordPress, and Perl are examples of where like-minded individuals bound by a common goal supplied expertise and code to create a product.
At Kuali Student, our in common goal is to create the next generation Student Software System with our community members.
Kuali Foundation Guiding Principles
Kuali Student embraces the Kuali Foundation guiding principles for contributions:
- Keep the bar low for initial contributions. Encourage people to share the work that they have done, and do not overwhelm them with overly complex requirements and processes.
- Keep the bar high for obtaining Kuali's QA seal of approval. Kuali's QA Team assures that our core assets, which include source-code, documentation, configuration files, and other intellectual property, meet stringent quality standards. Contributions that are expected to become core Kuali assets must meet these same stringent QA standards.
- Ensure a minimum level of community support. While the Kuali Foundation is committed to facilitating collaboration, it has limited resources to support such efforts and must rely on the community to provide a minimum level of support for their projects. Contribution efforts require that the contributing party and the relevant Kuali Project play important roles in accepting and sustaining contributions.
- Encourage contributions at conception. By engaging the Kuali Foundation early on in contribution projects, the Foundation can help ensure that the community is aware of the contribution so that interested parties can collaborate and not duplicate the effort.
Kuali Foundation Minimum Requirements
Kuali Student contributions must adhere to the following minimum requirements:
- Source Code License: Licensing must be clean before the contribution code is moved into Kuali's source control system and/or put into a Kuali distribution. The license must not violate the policies set by the Kuali Foundation.
- Intellectual Property (IP) Audit: The contribution code has been through a source code license review audit and the results are consistent with the Kuali Foundation licensing policies.
With the understanding of the Kuali Foundation Requirements and the Guiding Principles, Kuali Student developed a local set of processes to operationalize the contribution process. (Note: as the Kuali Foundation process changes and matures, so will the Kuali Student processes).
The Kuali Student Contribution Process can be thought of as three separate phases: Incubation, Development and Support. Each phase is composed of a set of processes, roles and requirements.
There is an SVN available for housing code as necessary: https://svn.kuali.org/repos/student/contrib/unsupported/
Roles and Responsibilities
The roles vital to the contribution process are defined here:
Community Members are the people who use Kuali Student. People in this role aren't contributing code, but they are using the product, reporting bugs, making feature requests, etc. A member has an account on the Kuali Information System.
A Community Contributor is a member of the Kuali Student Community and may or may not be affiliated thru a Founding Institution, a Partner or other supporting group. Contributors are community members who write code or update documentation or contribute positively to the project in other ways.
The Kuali Student Project Team is responsible for the oversight and shepherding of all contributions thru the contribution process both at the project level and foundation level.
Per the chartered KS Roles and Responsibilities, the Functional Council is responsible for ensuring that Kuali Student meets the needs of the institution from a functional/ business requirements perspective. Council members are empowered to speak for their respective institutions. The Functional Council is responsible for reviewing enhancement submittals as well as advise the Kuali Student Product Manager on the suggested course of action for each enhancement.
The Kuali Communications and Collaboration Team, composed of the Kuali QA Director, Kuali Configuration Director and Member Liaison, is responsible for the oversight and coordination of Kuali Foundation Contribution process. The process extends across all Kuali projects and provides minimum rigor and support for community contributions.