Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "CDT/contributing"

< CDT
m
(33 intermediate revisions by 16 users not shown)
Line 3: Line 3:
 
To make changes to the CDT, whether it be code, docs, JUnits, etc., you will need to send patches to the source stored on eclipse.org. Here is the process for sending patches.
 
To make changes to the CDT, whether it be code, docs, JUnits, etc., you will need to send patches to the source stored on eclipse.org. Here is the process for sending patches.
  
# Create a workspace in Eclipse for your work. Check out the CDT plugins you'd like to work on into it. The plugins are on dev.eclipse.org, /cvsroot/tools. The plugins are under folders org.eclipse.cdt-*. Make sure you check out the plugins and not these top level folders.
+
* To fix anything in CDT first you need to create or find an existing [https://bugs.eclipse.org/bugs/ bugzilla] report for this particular problem/enhancement
# Edit and test your change. This is all basic Eclipse plugin development. There are a number of resource on the web and in the Eclipse help system on how to do this.
+
* Setup your eclipse SDK and check out source code, see [[Getting started with CDT development]] article.
# Use the Eclipse Team menu to create a patch. Eclipse 3.2 now lets you do it for your whole workspace. If you are stil on Eclipse 3.1, you will need to create a patch for each plugin you've changed.
+
* Fix the source code
# Attach the patch or patches to a bugzilla entry. Make sure you check off the patch box to help us find patches.
+
* Comment your changes in the code
# Send a mail to the cdt-patch list to let the committer's know there is a patch ready.
+
* If the changes are significant add your name and company in the contributor list in the file header. For new files you must add copyright header: http://wiki.eclipse.org/CDT/policy#Copyright
 +
* Follow [[CDT/policy|CDT Guidelines]] for code formating and java warnings/errors
 +
** Externalize strings (excluding exception arguments, tests and special identifiers)
 +
** Check for API errors (you have to setup API tooling, see [[CDT/policy#Using_API_Tooling]])
 +
** Code with any of the warnings/errors mentioned in the policy, including strings externalization and API errors will not be accepted.
 +
* To minimize the change, do not re-format the source code you edited (except changed lines). Do not fix any warnings in the code you are not changing
 +
* If you really want to do formatting or styling (such as converting to java 1.7) - create another bug for that and attach a patch(it is good to fix warnings but it would clutter the patch, you want to solve one problem at a time).
 +
* To speed up process of applying your changes you should create one or more junit tests as well and include it in your change
 +
* Gerrit is now used by the CDT project for contributions, follow the steps [[CDT/git#Using_Gerrit_for_CDT|here]] to submit your changes to Gerrit.
 +
* Post a new comment in the bug report containing a link to the Gerrit so that people watching the bug know the a change has been posted for review, for example https://git.eclipse.org/r/#/c/8327/
 +
* Check size of the contribution, if it adds more than 1,000 lines see copyright section below
 +
* Make sure bug report has a clear reproducible scenario, if not add one
 +
* Normally committers are watching new Bugzilla/Gerrit activity and somebody would look at your contribution in a few days
 +
* If it has not received attention in a week or so, some nagging can help. Send email to mailto:cdt-dev@eclipse.org asking committers to look at the contribution. Continue sending e-mails until somebody would give up and look :)
  
One of the fundamental rules that Eclipse follows it the ability to trace back who contributed what code and that the person who contributed it has ownership of the code, or has permission from their employer to contribute the code (since employers tend to own everything you write). To help keep this IP integrity going, please ensure your contributions are "clean".
 
  
== Tips ==
+
One of the fundamental rules that Eclipse follows is the ability to trace back who contributed what code and that the person who contributed it has ownership of the code, or has permission from their employer to contribute the code (since employers tend to own everything you write). To help keep this IP integrity going, please ensure your contributions are "clean".
 +
* If you copy ANY code or images from somewhere else please clearly state it
 +
* If you copy GPL code we cannot take it
 +
* If you copy EPL code, preserve the original copyright and contributors
 +
* If your changes add more than 1,000 lines, the patch has to go through IP review process, unless it can be applied by the committer from the same company as you are. Nobody wants to do it so please avoid it. Try to fix one bug at a time.
 +
** The 1,000 lines include code, comments and even whitespace.
  
* If you are behind a firewall, you can use the proxy server at eclipse.org to access the CVS repository using pserver on the proxy.eclipse.org and port 80.
+
== Signing your Contribution License agreement (CLA) ==
 +
 
 +
The CLA is a short document that essentially asks The Three Questions required for each contributions.  It is mandatory to electronically sign a CLA before any contributions can be accepted.  To sign your CLA:
 +
 
 +
* Obtain an Eclipse Foundation userid. Anyone who currently uses our Bugzilla or Gerrit systems already has one of those. If they don’t, they need to [https://dev.eclipse.org/site_login/createaccount.php register].
 +
* Login into the [https://projects.eclipse.org projects portal], select “My Account”, and then the “Contributor License Agreement” tab.
 +
* If you use Gerrit you might have to wait about an hour until CLA is available in Gerrit.
 +
 
 +
[[Category:CDT]]

Revision as of 09:52, 27 October 2014

Sending Patches

To make changes to the CDT, whether it be code, docs, JUnits, etc., you will need to send patches to the source stored on eclipse.org. Here is the process for sending patches.

  • To fix anything in CDT first you need to create or find an existing bugzilla report for this particular problem/enhancement
  • Setup your eclipse SDK and check out source code, see Getting started with CDT development article.
  • Fix the source code
  • Comment your changes in the code
  • If the changes are significant add your name and company in the contributor list in the file header. For new files you must add copyright header: http://wiki.eclipse.org/CDT/policy#Copyright
  • Follow CDT Guidelines for code formating and java warnings/errors
    • Externalize strings (excluding exception arguments, tests and special identifiers)
    • Check for API errors (you have to setup API tooling, see CDT/policy#Using_API_Tooling)
    • Code with any of the warnings/errors mentioned in the policy, including strings externalization and API errors will not be accepted.
  • To minimize the change, do not re-format the source code you edited (except changed lines). Do not fix any warnings in the code you are not changing
  • If you really want to do formatting or styling (such as converting to java 1.7) - create another bug for that and attach a patch(it is good to fix warnings but it would clutter the patch, you want to solve one problem at a time).
  • To speed up process of applying your changes you should create one or more junit tests as well and include it in your change
  • Gerrit is now used by the CDT project for contributions, follow the steps here to submit your changes to Gerrit.
  • Post a new comment in the bug report containing a link to the Gerrit so that people watching the bug know the a change has been posted for review, for example https://git.eclipse.org/r/#/c/8327/
  • Check size of the contribution, if it adds more than 1,000 lines see copyright section below
  • Make sure bug report has a clear reproducible scenario, if not add one
  • Normally committers are watching new Bugzilla/Gerrit activity and somebody would look at your contribution in a few days
  • If it has not received attention in a week or so, some nagging can help. Send email to mailto:cdt-dev@eclipse.org asking committers to look at the contribution. Continue sending e-mails until somebody would give up and look :)


One of the fundamental rules that Eclipse follows is the ability to trace back who contributed what code and that the person who contributed it has ownership of the code, or has permission from their employer to contribute the code (since employers tend to own everything you write). To help keep this IP integrity going, please ensure your contributions are "clean".

  • If you copy ANY code or images from somewhere else please clearly state it
  • If you copy GPL code we cannot take it
  • If you copy EPL code, preserve the original copyright and contributors
  • If your changes add more than 1,000 lines, the patch has to go through IP review process, unless it can be applied by the committer from the same company as you are. Nobody wants to do it so please avoid it. Try to fix one bug at a time.
    • The 1,000 lines include code, comments and even whitespace.

Signing your Contribution License agreement (CLA)

The CLA is a short document that essentially asks The Three Questions required for each contributions. It is mandatory to electronically sign a CLA before any contributions can be accepted. To sign your CLA:

  • Obtain an Eclipse Foundation userid. Anyone who currently uses our Bugzilla or Gerrit systems already has one of those. If they don’t, they need to register.
  • Login into the projects portal, select “My Account”, and then the “Contributor License Agreement” tab.
  • If you use Gerrit you might have to wait about an hour until CLA is available in Gerrit.

Back to the top