Contribution Process

OpenNTF Alliance

Contribution Process


1 Introduction and Participants

This document provides the details of the processes applicable to OpenNTF Alliance 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:

1. Set up an OpenNTF account - If you don't have one already, create an OpenNTF user account for yourself: http://openntf.org/Internal/home.nsf;

2. If your employer is not a Member of the OpenNTF Alliance, then you need to execute the Individual Contributor License Agreement (“ICLA”).


1. print the agreement to create a hardcopy

2. sign the hardcopy

3. fax the signed hardcopy to +1-845-491-7347

4. or email a scan of the hardcopy to IP-manager@openntf.org

3. Or, if your employer is a Member of the OpenNTF Alliance, and has signed a Corporate Contributor License Agreement (“CCLA”), and that Agreement lists your name in the list of covered Contributors, then you are a Contributor. If the CCLA does not list you, you can either ask your company to add you to the list, or alternatively complete an ICLA. If your company has not signed a CCLA, then you need to complete an ICLA, following the process in #2 above.

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@openNTF.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@openNTF.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, snapshots of ongoing OpenNTF Projects may be “released” into the Release Repository. This Release process is handled by Committers.

5 Project types

The OpenNTF Repositories contain three types of Projects, Rich Client Components, Reusable Controls and Applications.

5.1 Rich Client Components:

Target group: IBM Lotus Notes® end users, application assemblers and people who want to demonstrate IBM Lotus Notes’® value.

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).

5.2 Reusable Controls:

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 Contols 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.

5.3 Applications:

Target group: Developers and people who want to demonstrate Notes/Domino value.

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.

6 Creation and Management of Projects:

While any Contributor may create new Projects, it is recommended that Project ideas first be posted to the OpenNTF Alliance 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 Alliance, 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 Alliance. 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 Help->Contact us in the menu or feel free to post your questions on the Main Bar.

The OpenNTF Alliance website provides a set of tools and capabilities to manage the Projects


- 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 monitoring any emails linking to content relating to their project.

7 Release Process

There are two major repositories at OpenNTF. The Project Repository into which Contributors may post and manage their Projects – and the Release Repository which only contains snapshots of Projects, where those snapshots have been subjected to a release process.

Before any contribution may be released to the Release Repository, the Project Lead should send a request to IP-manager-Apache at openntf dot org or IP-manager-GPL at openntf dot org (depending on whether the Project is under the Apache or GPL License), requesting that the project be put through the Release process. OpenNTF will then assign a Committer who, before the code is released, must be satisfied that the following conditions have been met:

a) the contribution has been submitted by Contributors who are covered by appropriate ICLAs or CCLAs;

b) there is no indication of that any portion of the contribution comes from a party other than the Contributor, and that either a visual scan or automatic code scan has been done to confirm this:

c) the appropriate license information has been included appropriately in the Code, as described below;

d) there is no encryption content in the Code.

If one of the conditions is not 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.

The Committers shall maintain a record, for each Project, and of each Contributor to that Project.

8 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 9 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 Alliance 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. Note that

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:

OpenNTF Alliance [PROJECT_NAME]


Copyright [yyyy] [Copyright owner(s)]

This product includes software developed for
OpenNTF Alliance – (http://www.OpenNTF.org/)

The NOTICE file must also include any notices associated with third party components, if any. 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 by IP-manager@OpenNTF.org.

Notice files may also contain credits for the Project Leads and Contributors.

All License and Notice files should be simple ASCII txt files.

Posting the license information:

All applicable licenses should be detailed on the Project Page or Catalog entry page.

For software distributions that includes several files that are packaged in a zip file, jar file or nar file:

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.

For 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 Document (and optionally the About Document) of the NSF or NTF.

2. . License files can be included as File Resources in the Design of the Application and linked to on 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 an extension.xml (widgets):

The License information should be specified in the Catalog entry page.

Headers:

All human-readable OpenNTF Alliance-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 Alliance 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 Alliance.

9 License Process – GPL

The rules for including the appropriate headers and license information in GPL Contributions have not yet been defined.

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 Release Repository 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 and the following:

o Descriptions: One liner plus one page plus 1 or 2 screenshots;

o Confirmation that this code works and on which platform;

- Any registered OpenNTF user can rate entries in the catalog and add comments as responses directly in the catalog;

- Registered OpenNTF users can also create new ideas and vote and comment 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@openntf.org.