UIMA project logo
Apache UIMA Contribution Policy
Apache UIMA

Search the site

 Apache UIMA Contribution Policy

Note: This is a working draft document.

Discussion of this document is occuring on the uima-dev mailing list.

The Apache UIMA™ Contribution Policy is summarized below:

  • We are working to ensure that we have broad participation from the community, at all experience levels and interests, but at the same time we are working to minimize any risks to the ASF, the project and our community due to inappropriate contributions of the intellectual property of others.
  • We adhere to the standard Apache process and contribution agreements.
  • We require every contributor to fill out the standard Apache Individual Contributors License Agreement.
    • Exception - very small contributions such as fixing spelling errors, where the content is small enough to not be considered intellectual property, can be submitted by a contributor as a patch, without an ICLA on file for that contributor. The contributor must check the the box on the patch submission form granting the ASF rights to the contribution under the Apache 2.0 license.

      The purpose of this exception is to lower the barrier for new contributors to make contributions.

Strict Limits on Committer Contributions

Committers can commit contributions to the repositories that they personally created specifically for contribution to Apache UIMA. This is the standard stream of fresh original work, small enhancements and patches that are the normal flow of project life.

Committers can commit contributions to the repositories that were created by another contributor that do not have commit access, and were created specifically for contribution to Apache UIMA, provided:

  • the contributor has a signed Contributors License Agreement listed with Apache
  • the contribution is made as an attachement to a UIMA Jira issue
  • the attachment is marked as "ASF Granted License", indicating that the contributer has granted a license for the attachment sufficient to enable the UIMA Project to incorporate the attachement and distribute the result under the Apache 2.0 license

The purpose of this rule is to explicitly prohibit re-purposed "bulk" code from being added to the codebase without explicit oversight and acceptance. We can still accept contributions like that, but will track them explicitly as Bulk Contributions.

Policy for Committers

Each committer is required to complete a standard Apache Individual Contributor License Agreement. This document asserts that the contributor is licensing their material to the ASF under the Apache license and is their original work (there's some other details). This document is maintained and managed by the Secretary of the Apache Software Foundation.

We encourage every committer, if appropriate, to have their employer execute a Apache Corporate Contributor License Agreement. Note that this is recommended, but not required.

Policy for Bulk Contributions

Any software or other contribution that was not created explicitly for Apache UIMA in the Apache UIMA project is considered to be a 'Bulk Contribution'. This status is independent of the purpose or author of said contribution. For example:

  • Personal utilities that a committer always uses on projects
  • Code from other open source projects that have a compatible license
  • Code from proprietary projects for which the donor has clear title
  • Larger pieces of Code being committed on behalf of other contributors, typically using a Software Grant

Any Bulk Contribution:

  1. Will be donated via the project bug tracking system (JIRA) as a contribution under the Apache License.
  2. Will be accompanied by a Software Grant (for large contributions) or ICLA (small contributions) which will be registered with the Apache Incubator
  3. done using a Software Grant will be registered in the Apache UIMA Bulk Contribution Repository via a Bulk Contribution Checklist

The Bulk Contribution Repository is a separate place in our administrative SVN in which records the Bulk Contribution Checklist and other checklist information, for each contribution. We do this to ensure that we have a clear and unambiguous record of any repurposed software that was contributed or brought into the project source tree.

We strongly urge any potential contributor to carefully examine their candidate for contribution (for instance, run code scans to insure the contributed code doesn't accidentally contain things that could cause licensing difficulties) before offering to the project. To that end, we have started collecting information on tools and other aids to help in this process, and it can be found on this page about code scan tools.