Difference between revisions of "Nebula/Contributions"
(→Add Documentation to the Wiki)
Revision as of 10:46, 14 February 2012
- 1 New Contributions
- 1.1 Introduce Yourself
- 1.2 Code Quality and Citizenship
- 1.3 File a bug to request your contribution
- 1.4 Provide Legal Information
- 1.5 We will assess your contribution
- 1.6 Start a Committer vote for you
- 1.7 Create a Contribution to the Example View
- 1.8 Organize your Code
- 1.9 Checkin your code
- 1.10 Provide Build information
- 1.11 Add Component to the Website
- 1.12 Add Documentation to the Wiki
Hi, welcome to the Eclipse Nebula project. We love new contributions. We aim to provide the Eclipse community with a rich set of rich UI compoments. So thank you for considering your contribution.
Before you decide to contribute your code to Eclipse, keep in mind that your code must follow the EPL, Eclipse's Public License. This means that committers and contributors need to follow some rules.
A good overview of what this entails and how this affects you can be read here.
If we don't know you, please take the time to introduce yourself to the Nebula mailing list. Be elaborate. Tell about your contributions, the bugs that you have filed, the patches that you committed. We need to know that you are a good Eclipse Citizen (Although this is not really necessary if you have a killer UI component to contribute ;).
You can subscribe to the mailing list by writing a mail to the mailing list administrator. How this is done is all explained on this page. Tell us what your plans are and what your UI component does. Then wait for the discussion. If nothing happens for a while: be patient and persistent. We love new contributions.
Code Quality and Citizenship
Once part of the Nebula project, your code is visible to thousands of developers. Make sure that you provide quality code. Also make sure that your widget is stable even if your API is not. The work that you provide represents the complete Nebula community. Ask on the list if you are not sure. Take a look at the widget author tips. The user interface is a very important part of any application.
Once you are in the project, take care of your bug reports and make sure that they are followed up. We require that you do not only take care of your own component but also look after the greater Nebula together with the other active committers.
File a bug to request your contribution
You will be instructed by one of the project leads to file a bug against Nebula core in bugzilla. Before you can do that, you need to get an Eclipse account. This can be done on the Bugzilla landing page. Once the account has been created you need to file a bug against Nebula Core.
Here are some example bugs of previous contributions:
You need to include the source code and additional resources like images and stuff like that (one or more plug-in projects) as an attachement. Only the code that you own and have the copyright. Each source member needs to have the standard EPL header like you see in every Eclipse source. Do not include any third party code. Do not include any zip files in the projects. Just your sources and other resources. You can include somoe additional information like links to the working product or links to screenshots.
In addition, You need to declare that:
- I authored 100% of the content
- I have the right to contribute the content to Eclipse
- I contribute the content under the EPL
Once you are ready, file the bug against Nebula/Core.
Provide Legal Information
If your code is to be distributed from Eclipse, we need to you comply to some legal rules. One of the rules is the inclusion of copyright notices in source code and legal documents in features and plug-ins.
Information about this is described in A Guide to the Legal Documentation for Eclipse-Based Content which is linked from here.
We will assess your contribution
We will take a look at your code to assess the quality. If we have problems with it we will let you know on the bug. We will also do a preliminary check on any IP (Intelectual Property) issues. After this is done, one of the project leads will file a new bug in a separate Bugzilla system known as IPZilla. This bug is called a CQ (Contribution Questionnaire).
Here an automatic scanning of the source will take place. It will be examined on foul words, religious statements, terroristic information and all that. You will also need to declare that you have the rights to the code.
One of the Eclipse PMC members will do some magic and authorize the CQ. After this has been done, we have to wait on the Eclipse legal team to do a triage on the code and give their final OK.
Start a Committer vote for you
Roughly during the same time, you will be voted into the Nebula committer community. This is a process of the community and is in general a formality but you cannot have any votes against you. Once you are voted in, you will be provided with an Eclipse committer ID by the Eclipse Webmasters.
Create a Contribution to the Example View
Nebula contains an overall Example View that provides an extension point. With this extension point you can contribute a Tab to the view that shows all the details of your widget.
All Nebula Widgets are required to contribute to this extension point in a separate bundle.
Organize your Code
You will get your own personal slot in the Nebula git repository. we are forked on github and your component will be included into this folder. The official repository is hosted at Eclipse. If you have a really big project, it is also possible to become a sub project of the greater Nebula. You will then operate semi-independent from Nebula and take care of your own builds and repository.
If you are not your own sub project then you will first start in the Nebula incubation area. You will need to provide several components to become part of the Nebula code.
Lets take a look at the structure of the Oscilloscope widget.
- This is the main code of this widget. It is included in one project but your UI component can span more than one project. Please follow the namespace and discuss on the mailing list what the best name of the component can be.
- This is the contribution to the Example view. Every component is required to contribute to the example view. Here you can showcase your widget. Make it as fancy as possible.
- The feature project that will contain only your UI component. Please take a look at the contents of other features for inspiration. Make sure to provide the correct naming and descriptions in the feature and follow the same pattern as the other features.
- This contains the snippets for your code. Snippets contain short code examples on how to use your widget. This is mandatory. See other snippet projects for some inspiration.
- This contains the unit tests for your component. Obviously this is also mandatory. Please provide a code coverage of at least 80%.
Checkin your code
With your committer account you can check-in your code into git. You will need the ssh link as provided on this page. Once your code is checked in, we have to add you to the build. If you are comfortable with it, see the releng section of the repository and add your component, otherwise drop a line on the list and we are happy to help you with it.
Provide Build information
We use tycho to build the Nebula after every commit. Please take a look at the pom.xml files in the other widgets and apply a copy and paste to your projects. Once you think your product is ready for the main stage, give the list a signal. We will then include your widget in the incubation build. It needs to stay there until it is API stable. If you break the build you break everything. So be careful with what you commit, take a keen eye on the build and fix any build errors as soon as possible.
Here are the links to our current build jobs:
Once you are a committer you have access to the build configuration.
Add Component to the Website
Once you are a committer, you are able to checkout the website. If you checkin, the new code is published within 5 minutes. How to check out the Nebula website and make changes is explained here. If you have questions please ask them on the list.
Add Documentation to the Wiki
Your component needs to be documented on the main Nebula wiki page.