Community:SummerOfCode17:Brainstorming
Mozilla community members - submit proposals here for 2017 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 9th.
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 | |
|---|---|---|---|---|---|---|
| TaskCluster JSON Parameterization | Build a powerful JSON parameterization system and use it everywhere | JavaScript, Python | :dustin | :dustin | The json-e language supports complex transformations of JSON data. The project involves completing the specification, implementation (in two languages), and documentation of this language, then using it to support Gecko action and decision task and users of taskcluster-github and taskcluster-hooks. Success here means that the language is complete and in active use in at least one of the listed contexts. | |
| Livelog Proxy | Write a server that privileged-clients can open a HTTPS connection to in-order to expose a webhook that http-clients can call.
When normal http-clients access the exposed webhooks the connection will be reverse proxied to the privileged-clients over their out-going connection. |
golang, github, http, web sockets, node.js | :jonasfj | :jonasfj | This is like to ngrok and localtunnel.me, read up on those. For performance reasons server should be written in golang, with client libraries in golang and node.js. |
Firefox
| Title | Details | Skills Needed | Reporter | Mentor(s) | Comments |
|---|---|---|---|---|---|
| about:telemetry redesign | about:telemetry is present on all builds of Firefox as a way for users to view the data being stored and sent via Telemetry. It was built before Firefox had multi-process Telemetry and without a clear design. This has resulted in a confusing HTML UI and barely-comprehensible JS. | webtech (HTML+CSS+JS) and Design | :chutten | :chutten | |
| Boost Session Restore performance | Session (Re)store is important as a key feature of Firefox. Many people rely on it to re-open a tab from the past or recover from an unfortunate power outage. But making it blazing fast has not been our primary focus, until now. Your goal will be to help us make restoring any session snappy and blazing fast. Expect to learn a lot about the Firefox internals and interact with many core engineers during the SoC course. | JavaScript | :mikedeboer | :mikedeboer, :dao |
Firefox Developer Tools
| Title | Details | Skills Needed | Reporter | Mentor(s) | Comments |
|---|---|---|---|---|---|
| Developer Tools for Designers | In Firefox Developer Tools, we're aiming to implement visual tools that will help developers and designers edit CSS properties visually. Since CSS is very declarative by nature, we can provide tools that are commonly found in designer tools in order to bridge the learning gap of new developers and designers learning CSS and allow them to edit complex CSS features such as CSS filters, blend, clip-path, layout, etc without knowing what the properties are. Going beyond editing CSS, we also need to think about how we can visually inspect the CSS style transformations that can impact the layout. Finally, we are looking for ways to better export and see the changes made in the Inspector tool so that we can take the work we have done in the Developer Tools and apply that to your local source files. | JavaScript, HTML, CSS, React, Redux | :gl | :gl | Starting meta bug for inspiration Bug 1258390 |
Firefox for Android
| Title | Details | Skills Needed | Reporter | Mentor(s) | Comments |
|---|---|---|---|---|---|
| Implement WebExtension APIs | WebExtensions are a cross-browser system for developing browser add-ons. Not all APIs are supported by Firefox for Android yet.
The goal of this project is to:
|
Java, JavaScript, Android | :sebastian | :sebastian |
Thunderbird
| Title | Details | Skills Needed | Reporter | Mentor(s) | Comments |
|---|
Instantbird
| Matrix protocol support | Matrix is an open, decentralized protocol for instant messaging (and more!) It has bridges to many other networks and protocol, e.g. IRC, Slack, and more. Initial support for Matrix was added in bug 1199855, but there's a lot to do still:
|
JavaScript, XPCOM, experience using HTTP APIs | Patrick Cloke [:clokep] | clokep | If you're interested in supporting a different protocol, please come talk to us. Protocols we're interested in: Matrix, Google Hangouts, Facebook, Bonjour, TextSecure/Signal, Telegram, or others! |
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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| JS static analysis | Bring some static analysis in our Firefox Javascript code | Javascript experience, FLOW(?) | Sylvestre | same | This project aims to evaluate and integrate more static analysis for Javascript code into some key sections of the Firefox code. We will focus on deploying FLOW on some part of the code as a proof of concept. Depending on the results, this will be extended to more components and/or integration in the developer workflow. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| C++ static analysis | Add new checkers specific to our base code | Strong C++ experience, clang | Sylvestre | Andi | In order to tackle issues during the development phase, Mozilla wrote a bunch of static analyzers checkers based on clang-tidy. In this project, we will focus on writing more checkers (either generic to C/C++ or specific to Gecko programming patterns). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JSON in Sqlite | Query JSON Documents stored in Sqlite | Database, SQL, Python | Kyle Lahnakoski | Kyle Lahnakoski | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| View details of performance test results | At the moment, Perfherder provides summarized views of results of Talos tests and others, but not the individual test results, athough the supporting data exists. This project will be about creating an easy-to-use web interface for visualizing this data that integrates well with the existing Perfherder views | HTML, CSS, JS, AngularJS | Will Lachance (:wlach) | Will Lachance (:wlach), Robert Wood (:rwood) | Perfherder wiki / bug (don't be fooled by the fact that there is just one bug, there is easily enough work here to fill a gsoc project) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Regression localization from stack traces | Tool to blame a patch for causing a newly introduced crash. | C++, Python | Marco | Marco | The project would involve creating a tool that analyzes a set of stack traces, performing the intersection with the Firefox call graph (which can be generated using Clang) and a set of recently committed patches. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Improvements for crash clustering | Build a tool to improve crash clustering, currently based on the top method of the stack trace. | Python, C++ | Marco | Marco | The project would involve finalizing https://github.com/marco-c/crashsimilarity; testing it more thoroughly; putting it in production. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GraphQL interface to Treeherder | This project would be about creating a GraphQL interface to Treeherder's datastore, as a complement to the existing REST API ! Django, MySQL, Graphene | Will Lachance (:wlach) | Will Lachance (:wlach) | }
Documentation
Mozilla Developer Network
Mozilla IT and Infrastructure
Sync / Services
Developer Tools
Add-on SDK
Foundation
OpenArt
Release Engineering
Emscripten
Rust
Servo
Security Engineering
Localization
Build system
Security Assurance
WADI
Mozilla Science Lab
MozVR
Connected Devices
Thimble
|