Summer of Code
Thank you for your interest in Eclipse. Eclipse is a great place to spend time learning, coding, participating and contributing. We are an exciting open source project with a vibrant community, and we look forward to your application and your project ideas.
A good way to meet those involved with the program is to visit the #eclipse-soc and #eclipse IRC channels on Freenode.
The programme is administered by Philippe Ombredanne ( philippe dot ombredanne at eclipse dot org ) and Wayne Beaton (wayne dot beaton at eclipse dot org). More information about the programme can be found here.
Google Summer of Code
This project was inspired by the Google Summer of Code (GSoC) programme and we continue to be involved with that programme. If you are a student, you can apply for funding from Google to work on a summer project. Eclipse has been involved since 2006 and intends to continue its involvement as long as Google supports the programme.
Projects, Component, whatever
The word "project" has special meaning at Eclipse, so we have to be careful how we use it. Strictly speaking, SOC is itself a project. Things going on as part of SOC can't also be "projects" they manifest as "components" of the SOC project.
Bear in mind that this project exists to provide a home for interesting work done by (or for) students. Some of the work done in this project is undertaken as part of the GSoC programme, but not all. For that matter, all GSoC projects do not necessarily end up as components of this project. Some are managed as part of other Eclipse projects. Some find a home in our Source Forge "incubator" project.
You can propose a new component by discussing your ideas on the ICQ channels indicated above, or by creating a new Eclipse Bugzilla entry with your idea. Our mentors will discuss your proposal and—should one of them take interest in it—offer to mentor your work.
Here are some general guidelines for SOC component ideas:
- Be creative
- Be specific: what do you want to be implemented?
- Be reasonable: what do you reasonably believe you can implement?
Current (Ongoing) Projects
The following projects are being developed using SOC project resources (CVS, Wiki, etc.).
- Framework to develop simple Eclipse plugin using PHP. Create a framework that could support developing simple Eclipse plugin using a PHP To Java bridge (Like Caucho's Quercus and other JSR 223 emgines). Develop and document a sample plugin in PHP, so that PHP developers could create simple plugins.
- Add the ability to write plugins using jruby or groovy. First research and determine if this would make plugin writing noticeably easier. I think it would just because no compile is needed; you can change code on the fly Emacs Lisp style.
- Java Executable Wrapper Plugin for Eclipse. Develop a plugin for Eclipse to wrap compiled Java applications and give out a excutable file for launching. It is supposed to support both Windows and Unix-like Systems.
- Develop an eRCP based gadgets(as in google gadgets) or widgets (as in apple's dashboard widgets) infrastructure for mobile phones.
- Write a EPL'd protocol implementation for ECF. For example, ECF currently has an EPL'd MSN implementation and needs others.
- Develop GTK support for the eRCP project
- Develop a newsreader similar to Pan,Thunderbird but based on Eclipse
- Provide an Eclipse IDE generation environment derived from a language grammar (Eclipse IDE generator)
- Full-blown WebDAV client + corresponding Eclipse File System implementation
- Full-blown FTP client with sftp support + corresponding Eclipse File System implementation
- Ability to open a file in eclipse from the command line (see #4922)
- Add full refactoring support to CDT.
- Add call graph navigation to CDT. When cursor is in a function, allow user to jump to any function that calls this function, or any function that it calls. (within reason) bug 152847
- Consolidate all the color pickers into a single, well thought out color manager with the ability to save and share color themes. Think inheritance (the PHP editor inherits the HTML and Java editor colors by default, plus adds a few of its own). Extra points for adding custom backgrounds or transparency. Eclipse needs to be made a whole lot prettier.
- Add online documentation to CDT. Make it so I never need to shell out to read a manpage. I just type the first few letters of the function and it autocompletes and allows me to hit F2 (or whatever) to view full documentation.
- Add a focus-follows-mouse mode for those of us who don't like having to click all the time (a view is selected the moment the mouse enters it). Also maybe add a keypress to switch between editors when they are tiled.
- Support seamless debugging between JDT and CDT (Java <> JNI <> C). details
- Support for user-defined refactorings in JDT #144642
- More work on mercurial support 
- More work on git support 
- Joomla support for Eclipse, as a set of specific extension to PHPEclipse that are aware of Joomla framework specifics, and libraries.
- Drupal provider for ECF that implements the Bulletin Board API.
- Write an Eclipse plugin to integrate with the Online Marking Tool (OLM), so that students can view the detailed comments that graders have made about their code.
- A standalone Bugzilla client (RCP app, perhaps) using Mylar
- Fix the most popular bugs and feature requests: provide patches or fixes for any open bugzilla with at least 20 votes .
- Eclipse IDE generator: building on some previous research work (Chris Laffra), provide an Eclipse IDE generation environment derived from a language grammar. This project would allow the creation of basic support of new or existing languages in Eclipse rapidly.
- Eclipse Mono Development Environment: a feature rich .Net development platform for Eclipse. The Java development tool may provide a great starting point. As this may be a big project, providing a project that accomplishes some significant contributions towards that goal is fine.
- New Eclipse update manager: Eclipse current update manager is four years old and ridden with significant problems. This project would provide with a modern and original design for an automated software update for plugins and natives, if possible generic for OSGi based runtimes and could provide original inputs for a revamp of update in 3.3 to the platform team.
- NetBeans in Eclipse: netclipse: the plugins models for Eclipse and NetBeans are very similar yet different. This project would provide the ability to run and embed a minimal NetBeans environment within Eclipse -- as Eclipse plugins-- , and support running NetBeans plugins like Matisse (Swing UI painter) or Coyote (dynamic languages toolkit).
- Eclipse search plugin: provide an enhanced Eclipse search: better, faster, more relevant. Think Lucene or opengrok inside Eclipse.
- Eclipse RCP installer wizards: create Eclipse wizards to generate native graphical installers and packages for the major platforms: Windows , MacOSX, and Linux is, deb, emerge, rpms for an Eclipse Rich Client Platform application, extending the work started at last year SoC
- Eclipse Open Office Integration: provide OpenOffice as a set of minimal Eclipse plugins for each platforms integrated in Eclipse and packaged for RCP deployment
- Eclipse install based manager: provide application and support for managing a large deployment of Eclipse based RCP clients, including pushed updates and client configurations.
- Mylar Wiki integration, enabling context and embedded authoring for Wiki pages and tasks.
- Mylar and ECF integration, enabling task contexts to be shared synchronously between developers. Possibly using XMPP and Google Talk messaging service
- Voice-over-IP client implemented as RCP app using ECF call API and Google Talk call setup protocol (Jingle)
- RCP real-time collaboration based upon ECF and Google Talk XMPP-based messaging service
- Implementation of System-Tray API for Mac, allowing to control the Dock (See Bug 56116)
- An Eclipse plugin for discovering run-time components that other plugins may need. For instance on MacOS, all the installed Java runtimes are automatically added to the list of installed Java runtimes. Having a similar feature to flexibly discover Java runtimes on Windows and Linux would be very helpful, looking for well-known installations locations, marker files, registries, or using file system scans. It could be even more generic and provide extensions points to contribute discovered runtimes in other areas: a Ruby, PHP, Python, Perl or C++ language runtime for the available open source plugins, or the discovery of installed servers or database runtimes for MySQl, Apache, Tomcat and so on. Third party plugins could subscribe to those services and provide auto-configuration of their own preferences. An example implementation could be to provide embedded PHP runtimes for PHPEclipse and PHPDT or an embedded MinGW for CDT.
- For Mylar ideas see the the Mylar Contribution Ideas page.
- BIRT Report Google Palette Items: This would allow report users to very easily incorporate Google services into a BIRT report. For example, an BIRT Report Item for Google Maps that allows a report developer to drag a Google Map control from the report palette onto a report and set it's values (map coords, zoom, etc.) based on data values in the report. This would leverage the extension points in the BIRT Project and the services that Google provides. The BIRT Project Team are willing to provide mentors for this project. Contact the BIRT PMC - birt-pmc at eclipse.org.
- BIRT Chart Types: New chart types for visualizing data. This may leverage the Google AJAX libraries to create new types of rich user interactions with a report chart. The BIRT Project Team are willing to provide mentors for this project. Contact the BIRT PMC - birt-pmc at eclipse.org.
- BIRT Reports and Connectors for Ad Revenue: This one is very business focused -- provide connectors and reports that allow Google customers and users to build their own reports on their Google Ad Revenue etc. The BIRT Project Team are willing to provide mentors for this project. Contact the BIRT PMC - birt-pmc at eclipse.org.
- BIRT JPA Connector: A data connector for BIRT Reports that allows BIRT to easily access data via JPA. The BIRT Project Team are willing to provide mentors for this project. Contact the BIRT PMC - birt-pmc at eclipse.org.
- BIRT Google Widgets: Dashboard Widgets that allow users to incorporate BIRT reports in a Google Dashboard. The BIRT Project Team are willing to provide mentors for this project. Contact the BIRT PMC - birt-pmc at eclipse.org.
- Improved eclipse.org download stats: a database of committer-accessible grouped stats based on httpd traffic logs, in order to answer some basic usage questions. Willing to mentor: User:nickb. Some trafic questions:
- how many downloads (by zip, by jar, by bandwidth consumed) per month does my project get?
- what countries (top 20) are downloading my project? what companies/domains?
- how does my project's traffic compare to others?
- do people actually download Integration/Maintenance bits, or just Stables (Milestones) and Releases?
- do people care about zips, or do they prefer Update Manager jars?
- RSS build feed integration tools (eg., for web or as eclipse plugin); possibly to work with the above Mylar/ECF ideas in terms of alerting people when builds are done, etc. Willing to mentor: User:nickb.
- Create new Phoenix skin using Ajax (GWT?) for richer web experience. Willing to mentor: User:nickb.
- Implement ECF SIP Provider for VOIP. See thread on ECF mailing list.
- Use ECF Discovery API for publishing and discovering p2 meta-data and artifact repositories. See bug 218534
- Implement ECF gobby provider. See bug 219829.