Jump to: navigation, search

Difference between revisions of "Development Resources/HOWTO/Starting A New Project"

(Overview of the Project Creation Process)
 
(26 intermediate revisions by 6 users not shown)
Line 9: Line 9:
 
The EDP is mostly about community involvement. An Eclipse project is considered successful only if a vibrant community develops around it. While the reviews and processes described by the EDP may seem onerous, they are a necessary part of community development. You should anticipate spending a significant amount of time responding to questions posed in various forums ([http://www.eclipse.org/forums Eclipse Forums], [http://www.eclipse.org/mail/ mailing lists], or even [http://stackoverflow.com/questions/tagged/eclipse Stack Overflow]). You should plan on attending conferences (especially [http://eclipsesummit.org/ Eclipse Summit Europe] and [http://eclipsecon.org EclipseCon]), presenting webinars, writing papers, etc to support your project.
 
The EDP is mostly about community involvement. An Eclipse project is considered successful only if a vibrant community develops around it. While the reviews and processes described by the EDP may seem onerous, they are a necessary part of community development. You should anticipate spending a significant amount of time responding to questions posed in various forums ([http://www.eclipse.org/forums Eclipse Forums], [http://www.eclipse.org/mail/ mailing lists], or even [http://stackoverflow.com/questions/tagged/eclipse Stack Overflow]). You should plan on attending conferences (especially [http://eclipsesummit.org/ Eclipse Summit Europe] and [http://eclipsecon.org EclipseCon]), presenting webinars, writing papers, etc to support your project.
  
There is tremendous value in the Eclipse IP Policy, but that value comes at a cost. It is important that you understand what is involved. Code provenance tracking is critical (we need to know the source of all code that ends up in our repositories). To that end, all new projects are required to make an [[Development Resources/Initial Contribution | initial contribution]] before '''any''' code is committed to an Eclipse source code repository (one implication of this requirement is that we assume that a new project starts from pre-existing code). The Eclipse IP Team will review your initial contribution to ensure that the code can distributed through an eclipse.org property. In effect, we review to code to make sure that it hasn't been copied inappropriately, that licenses are being used correctly, and so forth. As part of this process, the IP Team will research the source of all code; depending on the size of your contribution, this can be a time-consuming process. Furthermore, any third-party libraries required by your code will have to be checked and approved by the IP Team. As an Eclipse project you are expected to maintain an [[Development Resources/IP Log | IP Log]] containing (among other things) information about all contributions and third-party libraries; you are required to submit this log for review and approval as part of the release process.
+
There is tremendous value in the Eclipse IP Policy, but that value comes at a cost. It is important that you understand what is involved. Code provenance tracking is critical (we need to know the source of all code that ends up in our repositories). To that end, all new projects are required to make an [[Development Resources/Initial Contribution | initial contribution]] before '''any''' code is committed to an Eclipse source code repository.
 +
 
 +
[[File:InitialContributionAndHistory.png|frame|center|600px|alt="Initial Contribution and History"|The initial contribution must be the first commit in your project repository. History must be collapsed into that single commit.]]
 +
 
 +
One implication of this requirement is that we assume that a new project starts from pre-existing code. Further, '''the initial contribution must be the first commit in the Eclipse Foundation-hosted repository.''' Existing history cannot be vetted by the IP team and cannot be included in the Eclipse repository. Projects that wish to host repositories on an approved external service ([[Social Coding/Hosting a Project at GitHub|like GitHub]]) must obscure their existing history.
 +
 
 +
The Eclipse IP Team will review your initial contribution to ensure that the code can distributed through an eclipse.org property. In effect, we review to code to make sure that it hasn't been copied inappropriately, that licenses are being used correctly, and so forth. As part of this process, the IP Team will research the source of all code; depending on the size of your contribution, this can be a time-consuming process. Furthermore, any third-party libraries required by your code will have to be checked and approved by the IP Team. As an Eclipse project you are expected to maintain an [[Development Resources/IP Log | IP Log]] containing (among other things) information about all contributions and third-party libraries; you are required to submit this log for review and approval as part of the release process.
  
 
'''A project cannot make a release until the due diligence on the IP contained in that release is complete.''' Please review the [[Development Resources/Initial Contribution|Initial Contribution]] page for more information.
 
'''A project cannot make a release until the due diligence on the IP contained in that release is complete.''' Please review the [[Development Resources/Initial Contribution|Initial Contribution]] page for more information.
Line 18: Line 24:
 
* [[Development Resources/HOWTO/Project Naming Policy | Project Naming Policy]] - Selecting a name for your project;
 
* [[Development Resources/HOWTO/Project Naming Policy | Project Naming Policy]] - Selecting a name for your project;
 
* [[Development Resources/HOWTO/Pre-Proposal Phase | Pre-Proposal Phase]] - The whole process for proposing a project;
 
* [[Development Resources/HOWTO/Pre-Proposal Phase | Pre-Proposal Phase]] - The whole process for proposing a project;
** [http://www.eclipse.org/proposals/templates/proposal-template.zip Proposal document Template (zip)] '''Do not use Microsoft Word to edit your proposal; it adds painful markup that messes up our stylesheets.'''
+
** [[#Proposal_Creation_Links|Create a new proposal]] on one of the Eclipse Foundation [[Forges]];
 
** Examples: [http://eclipse.org/proposals/technology.aether/ Aether], [http://eclipse.org/proposals/mpc/ Marketplace Client]
 
** Examples: [http://eclipse.org/proposals/technology.aether/ Aether], [http://eclipse.org/proposals/mpc/ Marketplace Client]
 
* [[Architecture Council]] - The role of the Architecture Council in a new project;
 
* [[Architecture Council]] - The role of the Architecture Council in a new project;
Line 29: Line 35:
 
=Overview of the Project Creation Process=
 
=Overview of the Project Creation Process=
 
[[Image:ProjectCreation.png|centre]]
 
[[Image:ProjectCreation.png|centre]]
# Use the provided [http://www.eclipse.org/proposals/templates/proposal-template.zip Proposal document Template] to assemble a proposal. Note that instructions are provided within the document. Send the completed draft of the proposal to the [mailto:emo@eclipse.org EMO].
+
# Use the online form ([[#Proposal_Creation_Links|see Proposal Creation Links]] below) to create a proposal to assemble a proposal. Note that instructions are provided within the document.  
 +
#* If you have any questions, please contact the [mailto:emo@eclipse.org EMO].
 
#* The EMO will review the document and provide feedback. If there are timing issues with respect to "going public" let the EMO know (we can, for example, coordinate the public disclosure of the proposal with your marketing efforts).
 
#* The EMO will review the document and provide feedback. If there are timing issues with respect to "going public" let the EMO know (we can, for example, coordinate the public disclosure of the proposal with your marketing efforts).
 
#* The EMO will post a draft copy and request your feedback on the "live" version. At the same time, the EMO will open a bug against [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;component=Proposals%20and%20Reviews;product=Community;classification=Eclipse%20Foundation Community/Proposals and Reviews] to track the proposal.
 
#* The EMO will post a draft copy and request your feedback on the "live" version. At the same time, the EMO will open a bug against [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;component=Proposals%20and%20Reviews;product=Community;classification=Eclipse%20Foundation Community/Proposals and Reviews] to track the proposal.
Line 36: Line 43:
 
#* If necessary, the EMO will [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=Architecture%20Council request mentors] from the Architecture Council via Bugzilla.
 
#* If necessary, the EMO will [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=Architecture%20Council request mentors] from the Architecture Council via Bugzilla.
 
#* After we've posted the proposal, we need to let it sit for a minimum of two weeks to let the community review it. During that period, you should try to get as many people to look at the proposal and comment as possible. You should use this time to identify interested parties.
 
#* After we've posted the proposal, we need to let it sit for a minimum of two weeks to let the community review it. During that period, you should try to get as many people to look at the proposal and comment as possible. You should use this time to identify interested parties.
#* After that minimum two-week period, you can request a creation review.
+
#* The EMO will set a tentative date for the creation review
 
# The EMO will initiate a trademark search on the project name.
 
# The EMO will initiate a trademark search on the project name.
 
#* The creation review cannot be started until after the trademark of the project name is secured
 
#* The creation review cannot be started until after the trademark of the project name is secured
Line 42: Line 49:
 
#* Your choice of project name and any existing trademark assertions on the name may increase the amount of time required (consider this when selecting your project's name)
 
#* Your choice of project name and any existing trademark assertions on the name may increase the amount of time required (consider this when selecting your project's name)
 
#* If you currently hold the trademark, you will be asked to complete a [http://www.eclipse.org/legal/Trademark_Transfer_Agreement.pdf_Transfer_Agreement.pdf  Trademark Transfer Agreement]
 
#* If you currently hold the trademark, you will be asked to complete a [http://www.eclipse.org/legal/Trademark_Transfer_Agreement.pdf_Transfer_Agreement.pdf  Trademark Transfer Agreement]
# Once the trademark search has been resolved, we'll schedule the creation review to run for a one-week (Thursday to Wednesday) period.  
+
# When both the community review period and the trademark search/assignment is complete, we'll finalize the date for the creation review, which will run for a one-week (Thursday to Wednesday) period.  
 
#* By this point, the review should really just be one more week for people to ask questions and comment.  
 
#* By this point, the review should really just be one more week for people to ask questions and comment.  
 
#* Creation reviews tend to always be successful (they should be considered low stress as the hard work has already been done).
 
#* Creation reviews tend to always be successful (they should be considered low stress as the hard work has already been done).
# When the review is declared successful, you'll be invited to provide provisioning information
+
# When the review is declared successful, you'll be invited to provide [http://www.eclipse.org/projects/project_provisioning_request.php provisioning information]
 
#* the webmaster and IP team will use this information to provision space on our servers, create committer records, etc.
 
#* the webmaster and IP team will use this information to provision space on our servers, create committer records, etc.
 
# When provisioning is complete, you can submit your [[Development Resources/Initial Contribution|initial contribution]] to the IP team for review
 
# When provisioning is complete, you can submit your [[Development Resources/Initial Contribution|initial contribution]] to the IP team for review
Line 55: Line 62:
 
#* Project committers are expected to abide by the terms of the [http://www.eclipse.org/projects/dev_process Eclipse Development Process]
 
#* Project committers are expected to abide by the terms of the [http://www.eclipse.org/projects/dev_process Eclipse Development Process]
 
Be sure to lean on your mentors for help, or for answers to questions. Make use of them, that's what they're there for.
 
Be sure to lean on your mentors for help, or for answers to questions. Make use of them, that's what they're there for.
 +
 +
==Proposal Creation Links==
 +
The Eclipse Foundation runs multiple open source software [[Forges|forges]]. If you're not sure which forge to choose, pick Eclipse.
 +
 +
Create a new project proposal for:
 +
=== Eclipse ===
 +
* [https://projects.eclipse.org/user/login/sso Login] first and then create an [https://projects.eclipse.org/node/add/project-proposal Eclipse] proposal;
 +
 +
=== LocationTech ===
 +
* [https://www.locationtech.org/people/login Login] first and then create a [https://www.locationtech.org/node/add/project-proposal LocationTech] proposal; or
 +
 +
=== PolarSys ===
 +
* [https://www.polarsys.org/user/login Login] first and then create a [https://www.polarsys.org/node/add/project-proposal PolarSys] proposal
  
 
=After Creation=
 
=After Creation=
Line 82: Line 102:
 
*[http://www.eclipse.org/projects/dev_process/development_process.php Eclipse Development Process (EDP)]
 
*[http://www.eclipse.org/projects/dev_process/development_process.php Eclipse Development Process (EDP)]
 
*[[Development Resources]]
 
*[[Development Resources]]
 +
 +
=Licensing=
 +
 +
If your project has special licensing requirements, you may need to make a presentation to the Eclipse board of directors to request their approval. The presentation need only briefly describe the project and why special licensing considerations are necessary.
 +
 +
Whether or not you require special consideration for project licenses is [[Forges|forge]] and top-level project-specific. As part of the project proposal period, we'll help you make sure that all the right things happen.
 +
 +
If you have questions regarding project licensing, please contact the [mailto:emo@eclipse.org Eclipse Management Organization (EMO)].
 +
 +
=Frequently Asked Questions=
 +
 +
''How do I find Architecture Council mentors?''
 +
 +
:You don't have to find them yourself. Focus on the content of the proposal. We can solicit mentors from the Architecture Council after the proposal has been opened for community review.
 +
 +
''Can I change the proposal after it is posted?''
 +
 +
:Yes. The proposal can be changed any time before the start of the start of the creation review.
 +
 +
''When do I submit my code for review by the IP team?''
 +
 +
:Submit your code (initial contribution) for review after the project has been provisioned. The Eclipse Webmaster will let you know via email when provisioning is complete.
 +
 +
''Does the new project have to use Git?''
 +
 +
:Yes. Git is the only source code management system that is currently permitted for new projects. Some of our existing projects do use SVN, but that support has been deprecated and those project are encouraged to migrate to Git.
 +
 +
''Can I host my project code on GitHub?''
 +
 +
:New projects can make use of GitHub. Official project repositories must be moved under the appropriate Eclipse Foundation-owned GitHub organization ([http://github.org/eclipse eclipse] for Eclipse projects, [http://github.org/locationtech locationtech] for LocationTech projects, or [http://github.org/polarsys polarsys] for PolarSys projects). Official repositories are subject to the same intellectual property due diligence rules and processes that all Eclipse project repositories must follow.
 +
:The Webmaster will create a copy (mirror) of GitHub-hosted repositories and maintain them on Eclipse Foundation hardware.
 +
<hr/>
  
 
''This page is moderated by the EMO.''
 
''This page is moderated by the EMO.''

Latest revision as of 11:06, 1 September 2014

Background

Code is very important at Eclipse. All Eclipse projects are expected to have code. But the responsibilities of an Eclipse project extend far beyond having code in an eclipse.org repository. Eclipse projects are responsible for developing a community of users, adopters, and contributors.

Before you bring your project over to Eclipse, you must have useful code and the beginnings of a community. Eclipse Labs provides a great place to host your project during this formative period. In fact, depending on the nature of your project, Eclipse Labs may be the right place to host your projects in perpetuity. If it is your intent to one day move the project to Eclipse, you should take the time to familiarize yourself with our processes to avoid surprises downstream (e.g. you should consider carefully tracking all contributions to the project).

Eclipse projects are expected to take necessary precautions to mitigate the risk to adopters; a company that integrates the code from your Eclipse project, for example, does so with confidence that the code in your project can legally be distributed under the agreed-to terms. The processes that we have in place are designed to support this. Ensure that you are familiar with the Eclipse Development Process (EDP), Eclipse IP Policy, and IP Due Diligence Process.

The EDP is mostly about community involvement. An Eclipse project is considered successful only if a vibrant community develops around it. While the reviews and processes described by the EDP may seem onerous, they are a necessary part of community development. You should anticipate spending a significant amount of time responding to questions posed in various forums (Eclipse Forums, mailing lists, or even Stack Overflow). You should plan on attending conferences (especially Eclipse Summit Europe and EclipseCon), presenting webinars, writing papers, etc to support your project.

There is tremendous value in the Eclipse IP Policy, but that value comes at a cost. It is important that you understand what is involved. Code provenance tracking is critical (we need to know the source of all code that ends up in our repositories). To that end, all new projects are required to make an initial contribution before any code is committed to an Eclipse source code repository.

"Initial Contribution and History"
The initial contribution must be the first commit in your project repository. History must be collapsed into that single commit.

One implication of this requirement is that we assume that a new project starts from pre-existing code. Further, the initial contribution must be the first commit in the Eclipse Foundation-hosted repository. Existing history cannot be vetted by the IP team and cannot be included in the Eclipse repository. Projects that wish to host repositories on an approved external service (like GitHub) must obscure their existing history.

The Eclipse IP Team will review your initial contribution to ensure that the code can distributed through an eclipse.org property. In effect, we review to code to make sure that it hasn't been copied inappropriately, that licenses are being used correctly, and so forth. As part of this process, the IP Team will research the source of all code; depending on the size of your contribution, this can be a time-consuming process. Furthermore, any third-party libraries required by your code will have to be checked and approved by the IP Team. As an Eclipse project you are expected to maintain an IP Log containing (among other things) information about all contributions and third-party libraries; you are required to submit this log for review and approval as part of the release process.

A project cannot make a release until the due diligence on the IP contained in that release is complete. Please review the Initial Contribution page for more information.

The Eclipse Foundation holds the trademark for all Eclipse projects. Trademark assignment is undertaken prior to the creation of any new project. If you already have a trademark on your project name, that trademark must be assigned to the Eclipse Foundation. Be advised that trademark assignment can be a time-consuming process (it can take hours, days, or weeks depending on the circumstances surrounding the name).

Here are some other links that should help you with the process:

This should sound like a lot of work. For many projects, the investment is worthwhile.

Overview of the Project Creation Process

ProjectCreation.png
  1. Use the online form (see Proposal Creation Links below) to create a proposal to assemble a proposal. Note that instructions are provided within the document.
    • If you have any questions, please contact the EMO.
    • The EMO will review the document and provide feedback. If there are timing issues with respect to "going public" let the EMO know (we can, for example, coordinate the public disclosure of the proposal with your marketing efforts).
    • The EMO will post a draft copy and request your feedback on the "live" version. At the same time, the EMO will open a bug against Community/Proposals and Reviews to track the proposal.
  2. The proposal will be posted for community review
    • It will appear on the "What's New" page.
    • If necessary, the EMO will request mentors from the Architecture Council via Bugzilla.
    • After we've posted the proposal, we need to let it sit for a minimum of two weeks to let the community review it. During that period, you should try to get as many people to look at the proposal and comment as possible. You should use this time to identify interested parties.
    • The EMO will set a tentative date for the creation review
  3. The EMO will initiate a trademark search on the project name.
    • The creation review cannot be started until after the trademark of the project name is secured
    • It is difficult to estimate the amount of time required for a trademark search
    • Your choice of project name and any existing trademark assertions on the name may increase the amount of time required (consider this when selecting your project's name)
    • If you currently hold the trademark, you will be asked to complete a Trademark Transfer Agreement
  4. When both the community review period and the trademark search/assignment is complete, we'll finalize the date for the creation review, which will run for a one-week (Thursday to Wednesday) period.
    • By this point, the review should really just be one more week for people to ask questions and comment.
    • Creation reviews tend to always be successful (they should be considered low stress as the hard work has already been done).
  5. When the review is declared successful, you'll be invited to provide provisioning information
    • the webmaster and IP team will use this information to provision space on our servers, create committer records, etc.
  6. When provisioning is complete, you can submit your initial contribution to the IP team for review
    • The IP team must give you approval before anything can be committed to any Eclipse VCS or download server. Your mentors can help you at this stage.
  7. With IP Team approval, you can push your initial contribution to Git
  8. You're off to the races
    • Projects must create a plan at the beginning of each development cycle
    • Projects must engage in a release review for all major/minor releases
    • Project committers are expected to abide by the terms of the Eclipse Development Process

Be sure to lean on your mentors for help, or for answers to questions. Make use of them, that's what they're there for.

Proposal Creation Links

The Eclipse Foundation runs multiple open source software forges. If you're not sure which forge to choose, pick Eclipse.

Create a new project proposal for:

Eclipse

LocationTech

PolarSys

After Creation

Before you commit any code into your eclipse.org repository, you must submit your project's initial contribution for review by the IP team.

Your project will start in the Incubation phase. Ensure that your project conforms to incubation branding requirements and you can take advantage of the parallel IP process.

Ongoing Responsibilities

Community development is a big part of life at Eclipse. It is strongly recommended that you identify somebody on your team to be responsible for community development activities. To cultivate a vibrant community of users, adopters, and committers, a project has to have somebody who is responsible for community development. Somebody has to own it. Everybody on the project team has to dedicate some significant amount of their time to community development, but one person on the team has to be responsible for it. For some projects, this may be a full time job; for others, it may be a huge part of one. In fact, may open source projects have more than one full time person working on community development. In some circles, this role might be called the project's evangelist, or maybe it's the project lead that manages community development. Whatever the title, the role should be that of making everybody else successful in community development activities. Please see Community Development for Eclipse Projects.

Projects must conform to the legal documentation requirements, naming conventions, and version numbering rules.

Projects must maintain their metadata. This information is used to drive our automated processes. Kept up-to-date, project metadata can reduce your overall project maintenance burden by allowing our automated processes (e.g. project summary pages, project summaries, Dash data, etc.) to generate and disseminate correct information about your project.

Before an Eclipse project can release any software, they must undergo a release review. This is a well-defined formal process.

Projects in the incubation phase can only do pre-1.0 releases (e.g. 0.7). Before creating a >=1.0 release, a project must undergo a graduation review and enter the mature phase. A graduation review is typically combined with a release review. Note that a project may make 1.0 milestone releases (e.g. 1.0.0M1) in the time leading up to their graduation review. Note also that projects may select a >1.0 number for their first Eclipse release if that makes sense for the project and their community (you might consider this if your already-established project has moved to Eclipse).

If you have any questions, or are unsure of your responsibilities as a project lead or committer, please contact your project mentors or EMO.

Reference Material

Here are some valuable links:

Licensing

If your project has special licensing requirements, you may need to make a presentation to the Eclipse board of directors to request their approval. The presentation need only briefly describe the project and why special licensing considerations are necessary.

Whether or not you require special consideration for project licenses is forge and top-level project-specific. As part of the project proposal period, we'll help you make sure that all the right things happen.

If you have questions regarding project licensing, please contact the Eclipse Management Organization (EMO).

Frequently Asked Questions

How do I find Architecture Council mentors?

You don't have to find them yourself. Focus on the content of the proposal. We can solicit mentors from the Architecture Council after the proposal has been opened for community review.

Can I change the proposal after it is posted?

Yes. The proposal can be changed any time before the start of the start of the creation review.

When do I submit my code for review by the IP team?

Submit your code (initial contribution) for review after the project has been provisioned. The Eclipse Webmaster will let you know via email when provisioning is complete.

Does the new project have to use Git?

Yes. Git is the only source code management system that is currently permitted for new projects. Some of our existing projects do use SVN, but that support has been deprecated and those project are encouraged to migrate to Git.

Can I host my project code on GitHub?

New projects can make use of GitHub. Official project repositories must be moved under the appropriate Eclipse Foundation-owned GitHub organization (eclipse for Eclipse projects, locationtech for LocationTech projects, or polarsys for PolarSys projects). Official repositories are subject to the same intellectual property due diligence rules and processes that all Eclipse project repositories must follow.
The Webmaster will create a copy (mirror) of GitHub-hosted repositories and maintain them on Eclipse Foundation hardware.

This page is moderated by the EMO.