Mozilla community members - submit proposals here for 2016 Google Summer of Code projects with Mozilla. (If this page looks empty, it's because accepted ideas have already been transferred to the official list.) The absolute last deadline for submitting ideas in time to help us get accepted by Google is February 19th.
Are you a student looking to apply to SoC with Mozilla? Your first stop should be the official list of ideas. This page is full of weird and whacky ideas, some of which are still on here for a reason - it could be that they are not properly defined, the wrong size, or don't have a mentor. That makes them less likely to get accepted. You can, of course, also submit your own ideas - you don't have to put an idea on this page and get it 'made official' in order to send in a proposal for it.
How To Write A Good Project Proposal
Before adding an proposal to this list, please consider the following:
- Be specific. It's hard to understand the impact of, or the size of, vague proposals.
- Consider size. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.
- Do your research. Support the idea with well-researched links.
- Don't morph other people's ideas. If you have a related idea, place it next to the existing one, or add a comment.
- Insert only your own name into the Mentor column, and then only if you are willing to take on the responsibility. If you think the SoC admins won't know who you are, leave contact details.
- Check back regularly. The administrators may have questions about your idea that you will need to answer.
- Know when to give up. If you've added the same idea for the last three years and it hasn't made it to the official page, perhaps you can predict what will happen this time.
Suggestion List
Here are the ideas lists from previous years.
Proposals can be in almost any part of the Mozilla project - don't be fooled by the "Code" in "Summer of Code". If there is no category below for your part of Mozilla, add one!
Mozilla Platform (Gecko)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Support OpenGL graphics acceleration on Linux
|
bug 594876
|
C/C++
|
marco
|
|
|
Firefox
Firefox Developer Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox for Android
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox OS / Boot2Gecko
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Group MMS proper support
|
See the meta bug 1106663
|
CSS, JavaScript
|
|
Julien Wajsberg
|
For this feature, the mentoree will need to change mostly Gaia code, but also likely fix some Gecko code. All the code is in JavaScript. The mentoree will need a Firefox OS device (we can likely supply one though).
|
Thunderbird
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Update to mozmill 2.0
|
We are currently using an older version of Mozmill, a framework for automated UI tests similar to Selenium. In order to stay future proof we need to update to the latest version, which requires some API changes. You will get hands on experience in creating automated tests and your debugging skills will certainly imprve. See bug 930732 for additional details.
|
JS and python coding, debug mozmill tests
|
aceman
|
|
|
Finish remaining maildir features
|
bug 845952
|
C++ coding, JS coding, some tests
|
aceman
|
|
|
Add UI for creating boolean filter expressions in filter editor
|
bug 297852
|
JS+XUL coding, some tests, maybe a bit of C++ coding
|
aceman
|
|
Supposedly this mostly needs creating the UI. The backend should be ready for such expressions. But it needs checking if it still works as it wasn't exercised so far.
|
Integrate pdf.js support
|
bug 810815
|
JavaScript
|
marco
|
|
|
Tabbed Composition
|
bug 449299
|
JavaScript
|
marco
|
|
|
Instantbird
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Redesign libpurple integration
|
Currently Thunderbird can have additional protocols added to them via libpurple. This is distributed separately because of licensing compatibilities. There is a shim later (called purplexpcom) which translates from Thunderbird's chat interfaces to libpurple's interfaces. Unfortunately this is:
- Time consuming to maintain
- Difficult to compile
- Requires re-compilation for each Thunderbird version
- Is not binary compatible with system libpurples
It is desirable to experiment with different ways to interact with libpurple to redesign this interface. Potential experiments include:
- Using js-ctypes to interact with the libpurple binary component (instead of C++ XPCOM code)
- Spawn a separate sub-process and use IPC to communicate with libpurple
- Compile libpurple to JavaScript with emscripten
Requires understanding of: C, C++, XPCOM, JavaScript
|
C, C++, XPCOM, JavaScript
|
Patrick Cloke
|
|
|
OTR (Off-the-Record) Integration
|
Tor Messenger, which is based on Instantbird, has support for end-to-end encrypted instant messaging using OTR (via an extension). The goal of this project would be to upstream these changes from Tor Messenger into Instantbird while incorporating UI changes designed by the Instantbird team.
|
c-types, XPCOM, JavaScript, XUL
|
arlolra
|
Patrick Cloke [:clokep]
|
|
Calendar
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
SeaMonkey
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Bugzilla
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox Support (SUMO)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
QA
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Automation & Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Debugging failures seen in CI Infrastructure
|
there are many things we can do to make the developer experience better when investigating a test job. From retriggering a job to collecting verbose logging or profiling data, to using a 1 click loaner to not only reproduce but to debug and fix issues, there are many parts of the CI system that we can make small improvements upon to simplify and make dealing with test jobs in CI more enjoyable. Full details available here
|
python, javascript
|
Joel Maher
|
Joel Maher
|
|
Documentation
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla Developer Network
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla IT and Infrastructure
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Sync / Services
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Developer Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Add-on SDK
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Foundation
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
OpenArt
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Release Engineering
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Emscripten
Rust
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
SemVer policy checker
|
Rust's library ecosystem works with "semantic versioning" (semver), which allows the version numbers of libraries to signify backwards-compatibility constraints. Roughly speaking, if your code works with version `X.Y` of some library, it should work with `X.(Y+1)` -- a new "minor release" -- as well.
In practice, actually ensuring compatibility is quite subtle, and in Rust, there are some library changes that could theoretically break client code, but which we want to allow anyway. Our full stance on semantic versioning is written up in an RFC: https://github.com/rust-lang/rfcs/pull/1105
The goal of this project is to build a tool that can tell whether a set of changes to a library is valid under Rust's semver rules. Building this tool will likely require some hacking on the compiler itself (to produce the necessary information), and will hopefully result in some reusable infrastructure that can be applied to other projects as well.
|
Familiarity with Rust
|
Aaron Turon
|
Brian Anderson, Aaron Turon
|
|
Servo
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Security Engineering
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Localization
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Build system
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Security Assurance
WADI
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Add Service Workers to forum
|
https://github.com/mozilla/wadi/issues/54
|
HTML5, JavaScript
|
Salvador de la Puente
|
|
|
Make Hatnote progressive
|
https://github.com/mozilla/wadi/issues/51
|
HTML5, JavaScript
|
Salvador de la Puente
|
|
|
Best of Planet stream
|
https://github.com/mozilla/wadi/issues/44
|
HTML5, JavaScript, some server side technology
|
Salvador de la Puente
|
|
|
Create a (broccoli/ember)-oghliner addon
|
https://github.com/mozilla/wadi/issues/43
|
HTML5, JavaScript
|
Salvador de la Puente
|
Salva
|
|
Add SW functionalities to Phaser (or other HTML5 game engine)
|
https://github.com/mozilla/wadi/issues/32
|
HTML5, JavaScript
|
Salvador de la Puente
|
Salva
|
|
Use a service worker with Firefox Accounts
|
https://github.com/mozilla/wadi/issues/30
|
HTML5, JavaScript
|
Salvador de la Puente
|
|
|
Implement Service Workers on the MDN
|
https://github.com/mozilla/wadi/issues/21
|
HTML5, JavaScript
|
Salvador de la Puente
|
David Walsh
|
|
App for watching air.mozilla video podcasts
|
https://github.com/mozilla/wadi/issues/11
|
HTML5, JavaScript
|
Salvador de la Puente
|
|
|
Add offlining to Shower
|
https://github.com/mozilla/wadi/issues/3
|
HTML5, JavaScript
|
Salvador de la Puente
|
|
|
Webmaker
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla Science Lab
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
MozVR
Title
|
Details
|
Reporter
|
Mentor(s)
|
Comments
|