OpenNTF
Contribution Process
1 Introduction and Participants
This document provides the details of the processes applicable to OpenNTF contributions and project development. It describes how to become involved, the roles and responsibilities of each of the various types of participants (Contributors, Committers, Technical Committee members) – and the details of submitting and clearing Projects.
It is recommended that participants in OpenNTF become familiar with the IP Policy. Many aspects of this Contribution Process are based on the IP Policy and if there are any discrepancies between the two documents, the IP Policy takes precedence.
2 Becoming A Contributor
Here are the steps to becoming a Contributor to a project:
If there are any questions as to whether your company has signed a CCA, and whether or not you are listed on it, you can contact IP-Manager at openntf dot org to find out.
3 Becoming a Committer
To become a Committer, you must first have completed the process of becoming a Contributor. You then need to send a request to IP-Manager at openntf dot org who will then set up an electronic vote of the existing Committers to accept or reject your application. Alternatively, the Steering Committee may appoint Committers.
4 Roles and Responsibilities for Contributors and Committers
Contributors form the backbone of OpenNTF. They are the ones who develop and manage the projects. Any Contributor may:
- apply to join an ongoing Project by sending a request to the Project Lead;
- initiate a Project – see below for a description;
- become a Committer (as described in Section 3 above).
Committers are the OpenNTF Release Managers. As described in the IP Policy, releases of ongoing OpenNTF Projects may be placed into the Catalog. This Release process is handled by Committers and the IP Manager.
5 Creation and Management of Projects:
While any Contributor may create new Projects, it is recommended that Project ideas first be posted to the OpenNTF Forum to canvas the opinions of other users. It is best to provide a relatively complete plan.
Before you get started, please consider the following:
1. If there is another similar project already on OpenNTF, consider teaming up with the folks running that project so that you can get more done in less time.
2. Only create projects and post code according to the terms of the IP Policy. If your project will include code that you (or other Contributors) did not develop, then you should consult IP-Manager-Apache at openntf dot org or IP_Manager-GPL at openntf dot org before posting it.
3. If you want to post your Application but not be responsible for managing it, either find somebody who can be a co-owner with you or post the application in the Code Bin instead.
4. By creating a project, you agree to the IP Policy and to provide the full source code for the application. This is after all an open source website!
Next, you must fill out the New Project Form. Once your proposal has been accepted, you will become the proud owner of a Project on OpenNTF. Your project will be added to the Project list.
Every Application has its own starting page which contains the Project overview, release information, news, discussion, feature requests and bug submissions for your project. You can start a discussion about your project or post any news at any time. If you have questions, don't worry - we're there to help you! Click on ”Contact us” near the bottom of the Get Involved page or feel free to post your questions on the Main Forum.
The OpenNTF website provides a set of tools and capabilities to manage the Projects including
- descriptions and screenshots
- releases that can be downloaded
- bug reports
- feature requests
- documentation
- project discussions
This page provides an active sample of these tools
The code is managed by the Project Leads. They coordinate work and, with the help of Project Contributors, merge the code from Contributors into the builds.
The Project Leads are required to monitor the developer Forums associated with all Projects for which they have commit privileges, and to monitor any emails linking to content related to their project.
6 Release Process
There are three levels of OpenNTF code. The Project Repository contains both Incubator and Visible Releases. Project Releases which have gone through an IP and Committer review may be released to the Catalog.
Projects may start out with an Incubator Release – where access is limited to those Contributors and Project Observers who have been approved by the Project Lead. The approved Contributors may post code, and the Project Observers may download the code. However, for others, the Project is not accessible.
When a Release meets the following conditions, it may be made Visible. There is a “% Complete” bar which indicates how close you are to making your Release Visible. Meeting each of the five conditions below will add 15% to the % Complete bar. When the bar reached 75%, the Release will be made Visible.
· Those contributing to the Project are covered by ICLAs or CCLAs;
· The license under which the contribution is to be made available is compatible with either OpenNTF’s Apache or GPL licensing models;
· The licensing and Notice information is clearly noted;
· The code was entirely written by the Contributor(s) or, if there is material from third parties, that the Contributor has written permission or a license to include such material;
· The Project Lead has the IP Manager's approval for any encryption code that is in the Project.
There is no need for subsequent Releases to go through the Incubator stage – as long as all the five above conditions continue to be met.
Once you have completed this step, your Release may be accessed, downloaded and used by anyone through the OpenNTF website. However, there is another step – the IP Review – that gives users more confidence that your code is less likely to have IP issues, and more likely to work properly. When the IP Review is successfully completed, your Release moving to the Catalog. To initiate this review, simply send a note to the IP Manager requesting it. The IP Manager and a Committer will then carry out an analysis of the Release. Issues that are found will be posted by the IP Manager to a Project area accessible to the Project Lead, the Project Contributors and the Project Observers. The items analyzed during the IP Review include:
• Verification that Contributors are covered by ICLAs or CCLAs
• All 3rd party code accounted for in Notice files
• Licenses are compatible
• Documentation complete
• Code appears to run properly
Completion of each of the above checks will add 5% to the % Complete Bar. If one of the conditions cannot be met, the Committer will work with the appropriate IP Manager to resolve the issues. The resolution may take the form of, without limitation, approving third party content in the Code, approving a license other than the OpenNTF approved licenses, ensuring that encryption code is handled according to appropriate laws, or rejection of the contribution from consideration for the Catalog.
7 License Process - Apache
This section provides a description of how to include the appropriate License and Notice information in an Apache-licensed Project. OpenNTF has approved the use of Apache and various GPL licenses. See Section 8 for information on GPL-based licenses.
It is the Project Lead’s responsibility to ensure that the appropriate license information is provided with each Component, Sample and Project. Where the code is original IP, it will be made available under the Apache License Version 2.0 (“Alv2”). Following the Apache approach, in the top level (root) directory for each OpenNTF software download, there must be the following files:
1. Apache License File. This file must be called “LICENSE” and must include a copy of the Apache license text.
2. Other License Files. At times Apache-licensed Projects include software from other open source projects licensed under other licenses. The license text for these components must be included under the names “LICENSE_Xxxx.txt” where Xxxx is the name of the License. Examples would be LICENSE_EPL.txt or LICENSE_Sax.txt.
3. Notice File. This file must be called “NOTICE”. The first few lines of each NOTICE file should include the following text, suitably modified to reflect the product name and year(s) of distribution of the current and past versions of the product:
[PROJECT_NAME]
Copyright [yyyy] [Copyright owner(s)]
This product includes software developed for
OpenNTF – (http://www.OpenNTF.org/)
The NOTICE file must also include a list of the 3rd party components, the name of the associated license, and any notices required by those components. All Notice files for Projects that include third party components (any components that you did not build from scratch) are subject to approval by the IP manager who can be contacted at IP-Manager at OpenNTF dot org.
Notice files may also contain credits for the Project Leads and Contributors.
All License and Notice files should be simple ASCII text files.
Posting the license information:
All applicable licenses should be detailed on the Project Page or Catalog entry page.
Software distributions that include several files packaged in a zip, jar or nar file must also include:
1. License: Include a copy of the license text files in the top level (root) directory of your distribution. Try to add the license files first in order to place it at the top of the archive. These should covers the collective licensing for the distribution.
2. Notice: You must add a “NOTICE” file, as described above, in the same directory as the LICENSE file.
Software distributions which only have one NSF or NTF:
1. License: To apply the ALv2 to a new software distribution, include one copy of the license text in the File Resources in the Design of the NSF or NTF (and optionally in the About Document).
2. License files included as File Resources in the Design can be linked to from the About Page
3. Notice: You must add a “NOTICE” file, as described above, in the About Document of the NSF or NTF.
For software distributions which have the extension.xml (widgets):
The License information should be specified in the Catalog entry page.
Headers:
All human-readable OpenNTF-developed files built from scratch must include the following source file header text, where feasible. This is necessary for example for Java source files for Eclipse features, but not for design elements in NSFs or NTFs. In the latter cases, reference to the license should be included in the same directory or in higher-level directories.
Copyright [yyyy] [name of copyright owner(s)]
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License
Note however, if you are creating source files that contain any third party code, such as building on a template from Eclipse, or including code from a Mozilla licensed function, do not use the above source file header. In this case, insert your own copyright statements (along with the original copyright statements of the content), and submit to OpenNTF along with documentation on the license under which you obtained the original code.
Do not, under any circumstances, remove copyright statements from any submission to OpenNTF.
8 License Process – GPL
The rules for including the appropriate headers and license information in GPL Contributions have not yet been defined. However, the Apache Process may be followed where applicable.
9 Project types
The OpenNTF Repositories contain three types of Projects, Rich Client Components, Reusable Controls and Applications.
9.1 Rich Client Components:
Target group: IBM Lotus Notes® end users, application assemblers and people who want to demonstrate the value of IBM Lotus Notes’®.
Description: Widgets and plugins that can be installed into the Notes client by browsing a catalog and dragging and dropping components into Notes. The components can show up in the Notes sideshelf, as pop up windows triggered by live text or any other more sophisticated Notes extensions (e.g. menu contributions).
Rich client components are stored in an Eclipse update site database on OpenNTF and are all listed in the catalog (see here for sample).
Target group: Developers.
Description: Controls that can be re-used in custom applications. The source of these controls can be downloaded and used in IDEs such as Domino Designer or Eclipse-based IDEs.
OpenNTF users can post simpler snippets of code in the OpenNTF code bin. New entries can be created on this page. Like Components, Reusable Controls in the catalog can be found by ranking, creation date, full text search and screenshots. Reusable Controls are essentially additions to the code that used to be under the “Code Bin” tab.
Target group: Developers and people who want to demonstrate he value of IBM Lotus Notes®..
Description: Templates (NTFs) and applications (NSFs) demonstrate sophisticated technical capabilities and value of Lotus Notes/Domino as application development platforms. These template Projects are made available as full, active open source projects allowing other people to contribute extensions. Projects can either be Notes templates or applications (NTFs or NSFs) or Eclipse Java projects or mixtures of both.
10 OpenNTF Participation without writing code.
There are also ways to get engaged with OpenNTF without contributing code.
- Anyone can suggest Projects that should be Released to the Catalog by sending mails to IP-manager-Apache at openntf dot org or IP-manager-GPL at openntf dot org with links to the existing projects or code bin entries on OpenNTF copying the Project Lead, and stating why you would like to see this Project in the Catalog.
- Any registered OpenNTF user can rate Projects and add comments as “Testimonials”.
- Registered OpenNTF users can also create new ideas and vote and comment on other ideas.
- General comments or questions can be posted in the OpenNTF forum;
- OpenNTF is always also looking for people to help extend and maintain the OpenNTF technical infrastructure, e.g. to update the UI of the web site. If you would like to help please contact the chair of the OpenNTF Technical Committee at TC-chairman at openntf dot org.