Development Resources/HOWTO/Pre-Proposal Phase
An individual or group of individuals declares their interest in, and rationale for, establishing a project. The EMO will assist such groups in the preparation of a project Proposal.
- The Pre-proposal phase ends when the Proposal is published by EMO and announced to the membership by the EMO.
- 1 (1) Project or Component or Contribution?
- 2 (2) The Purposes
- 3 (3) Project Name
- 4 (4) Clear, Concise, and Understandable Proposal
- 5 (5) Mentors
- 6 (6) Posting and Declaration
- 7 (7) Press and Publicity
- 8 (8) Legal Paperwork to Start Now
(1) Project or Component or Contribution?
One of the major purposes of the Eclipse Development Process is to ensure that the projects are open and transparent to the membership and ecosystem. Another major purpose is for the Councils to minimize duplication across the projects, i.e., we strive to have one official Eclipse framework for each technical area. Thus, as the first step in a new proposal, we ask four questions:
- Is there already a Project at Eclipse working the same technical area (i.e., a Project whose scope includes this area)? If so, would this proposal be more suited as a contribution to that project or a new sub-project or component of that existing project?
- Note that an overlap between projects is not prohibited but is strongly discouraged. The Eclipse membership has indicated that they are ok with multiple incubating projects in a given technical area, but would prefer a single project once the frameworks mature.
- In all "competing project" situations to date, the projects eventually realized that it would be in their best interest to work together and thus merged their projects before graduating.
- Is this new effort going to be managed as part of an existing project or is it going to be a separate entity?
Here we examine the interaction of the project leads and the synchronization (or lack thereof) of release schedules. For example, if the new effort is always going to release at the same time as another project and the leads of the new effort and the other project are regularly coordinating development plans, then perhaps this new effort is a component of the other project. Otherwise, if the new effort is more independent (in management and in release schedule), then perhaps it should be a separate project.
- Is this new effort within the scope of the enclosing Project or Top-Level Project? For example, a new "syntax highlighting editor for Pascal" would not be in scope of the "Web Standard Tools" project.
The new effort must be in scope with respect to it's enclosing Project(s).
(2) The Purposes
The other major question that we ask of all new efforts (components, contributions, or projects) is whether the effort is consistent with the Purposes. One of the common edge cases in new projects is the issue of Tools versus Run-times. The Eclipse Bylaws, section 1.1, state that "the Eclipse technology is a vendor-neutral, open development platform supplying frameworks and exemplary, extensible tools".
- The distinction between tools and run-times is not as black-and-white as one might like - for example, is the code generated by a tool consider a run-time? What about a library that must be linked to use the code generated by a tool? What about a framework that must be installed on a J2EE server in order to use a particular tool with that server? etc. - and yet the Eclipse organization is conscious of the issue.
- Currently, the policy is that "plumbing", or primitive, run-times are not acceptable whereas frameworks that work on top of existing run-times (e.g., works on top of J2EE) are acceptable.
- Frameworks that are in support of development tools are acceptable; frameworks that are application servers, database servers, operating systems, etc. are not acceptable. Projects that are more appropriate at other more server-centric open source organizations (such as Apache or ObjectWeb) are not.
- The easiest proposals, of course, are those with no ambiguity: for example, an Eclipse tool that generates configuration files for an Apache run-time to render.
The new effort must be consistent with the Purposes.
(3) Project Name
the project naming guidelines which effectively say:Naming and branding are challenging issues. In order to provide a consistent brand for Eclipse, projects must follow
- The best names are descriptive but at the same time memorable.
- The project name does not include "Eclipse" or "Project".
- The project name is not the name of an existing product and will not be used in the name of a product.
(4) Clear, Concise, and Understandable Proposal
The next step in establishing a new project at Eclipse is to contact the Eclipse Management Organization (EMO; email email@example.com) and work towards a clear, concise, and understandable Proposal.
The Proposal includes:
It is important that the description of the new project be understandable by the diverse Eclipse community and not just by specialists in the subject matter. It is also important that the description concentrate on the technical aspects of the project and avoid marketing buzzwords. Terms that are not in common use amongst the Eclipse membership must be defined, and references to standards should be linked to the corresponding URL.
Clear and concise description.
- A thought experiment for clarity and conciseness is "if I randomly choose five Committers from the entire Eclipse Committer pool, will those five people understand what this project is about?" The five may not agree with the proposal or even believe that it is feasible, but they need to understand what it is proposing.
- The Fit fit with Eclipse. How does this project fit with the other Eclipse projects? Does it build on top of other projects? What are the dependencies? Does it overlap with existing projects? Why are the needs this project meets are not met by existing Eclipse projects?
- Resources committed. Eclipse is a place for active projects, not a place for dumping unwanted code. Eclipse projects involve substantial on-going development activity. Thus proposals should be convincing about the resources that are being brought to the project in addition to any initial code contribution. The proposal should include a list of interested and committed persons and companies and their affiliations, but should not include corporate or group logos.
- Vendor neutral. Eclipse is place for vendor neutral projects which includes being operating system agnostic. If, as is usually the case, the proposal is coming from a single company, the proposal should explain how the resulting project will be vendor neutral. Similarly, the proposal should explain away any operating system dependencies.
(4.1) Previous Proposals to Emulate
(4.2) Proposal File Format and Submission
The proposal itself is a static HTML page (with a small fragment of PHP) using the standard Eclipse Proposal CSS style sheet (please use the template we provide). We have found that there are a number of problems with HTML generated by Microsoft Word and thus ask that proposers use some other tool to create the page. Sorry, but the EMO does not have the time or resources to convert other file formats to the correct static HTML.
Proposals must be zipped (to avoid problems with the Foundation's email anti-virus scanner) and emailed to firstname.lastname@example.org.
(6) Posting and Declaration
After the EMO receives and agrees the proposal is ready to post, the following steps are taken:
- The EMO modifies the proposal text to include the correct internal Foundation database record identifier and the correct discussion newsgroup.
- The proposal is placed at a hidden url on the eclipse.org website.
- The EMO drafts a declaration. The declaration is a short email message sent by the EMO to the Eclipse membership-at-large stating that X is proposing project Y at Eclipse. The declaration has the following form:
We are notifying the Eclipse Membership-at-Large of the intent of Person P (Company Q) to propose the XYZ Project as a EFG incubator. A brief description of the project is below. A draft project proposal has been posted on http://www.eclipse.org/proposals/xyz/ ------------------------------------------------------------------------ *Project Declaration for the "XYZ Project" The goal of this project is to add comprehensive support blah blah blah...
The EMO requires positive approval from at least three people before publicly posting the proposal and sending the declaration. All three people (or their appointed delegates) must reply that they are ok (+1) with the hidden-url proposal and the declaration before the proposal will be made public.
- The proposer, speaking for all the people and companies involved
- The Eclipse Foundation's Director of Committer Community
- The Eclipse Foundation's Executive Director
- The EMO updates the internal Foundation database, thus publishing the proposal on the website. At the same time, the EMO creates the corresponding discussion newsgroup.
- The EMO sends you an email reminding you to read and implement the Guidelines for the Proposal Phase
(7) Press and Publicity
History has shown that companies who are starting or joining their first open-source project, or perhaps merely their first Eclipse open-source project, want to carefully stage the press announcements. Because the Eclipse membership-at-large is large and includes press, the EMO works carefully with the proposers to ensure that news is not prematurely leaked.
A press release at this point is optional. Some companies and individuals like to have a press release when the project is proposed, while others prefer to wait until the project is approved/created, and then others do not issue one at all - it is completely up to the proposal team. Any release must include Q&A's, messages and preparation by the stakeholder spokespeople. The discipline of creating a press release ensures that all stakeholders have agreed on messages, positioning and have identified spokepersons.
If you do decide to issue a press release, the Eclipse Foundation Marketing Director must help you coordinate the announcement. (Email the EMO for further information.)
(8) Legal Paperwork to Start Now
Committer Agreements through their company's legal department as the paperwork always seems to take longer than one would like. The project cannot be provisioned (source code repository, bug repository, website, etc.) without completed legal paperwork.It is important for the proposers to begin moving the various
Similarly, the proposers will want to start gathering the required documentation for the initial code contribution questionnaire. The important information includes:
- Documentation of code ownership and the right of the proposer to contribute the code under the EPL
- Licenses, source code, and provenance of all third-party (non-EPL) code included or referenced in or by the EPL'ed initial code.
- And by all, we mean ALL the code: many third-party libraries include other third party libraries and those include others and so on and so on.
This page is moderated by Anne Jacko and Bjorn Freeman-Benson (Eclipse Foundation)