Community:SummerOfCode16:Brainstorming

From MozillaWiki
Jump to: navigation, search

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

Title Details Skills Needed Reporter Mentor(s) Comments
File Watcher This is the bug topic - Bugzilla 958280. Using pipes, create a XPCOM component for Mac file watching (Window and GTK are done) or and complete the js-ctypes version. For XPCOM: Windows topic - Bugzilla 992894, this is the GTK topic - Bugzilla 992895, this is the Mac topic - Bugzilla 992896. This is the preliminary js-ctypes file watcher, but it uses timeout instead of pipes to interrupt/cancel a watch: https://github.com/Noitidart/jscFileWatcher. C/C++/Javascript Noit Noit
Modernize Library (Bookmarks, History, Downloads) UI and move its window to a tab bug 697359 Javascript marco
RFC7512 URI support (PKCS #11 URI) bug 1162897

and bug 248722

C rrelyea and dwmw2 Already entered Community:SummerOfCode16

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

Title Details Skills Needed Reporter Mentor(s) Comments
Port LibreOffice to the Web https://wiki.documentfoundation.org/Development/Emscripten C/C++/JavaScript marco

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

Title Details Skills Needed Reporter Mentor(s) Comments
ZAP Bug tracker support https://github.com/zaproxy/zaproxy/issues/440 Java Simon Bennetts Simon Bennetts
ZAP Auto login detection and configuration https://github.com/zaproxy/zaproxy/issues/2251 Java Simon Bennetts Simon Bennetts
Zest text representation and parser https://github.com/mozilla/zest/issues/23 Java Simon Bennetts Simon Bennetts

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