Community:SummerOfCode19:Brainstorming

From MozillaWiki
Jump to navigation Jump to search

Once again, Mozilla intends to apply to participate in Google's Summer Of Code.

Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the official list.)

Our application for summer of 2019 goes into Google on February 4th, so get those project ideas in well ahead of time.

Are you a student looking to apply to GSoC with Mozilla? Your first stop should be the official list of ideas. This page is full of weird ideas, only some of which will make the cut. 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, though they do need to be mostly focused on code. If there is no category below for your corner of Mozilla, add one!

Here is the template for adding project proposals. Feel free to add new proposal to existing general categories, or add new categories as appropriate.

2019 Proposed Project List

Title Details Skills Needed Reporter Mentor(s) Additional Comments
Improve Python in the browser The pyodide project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there. Python and JavaScript. Can learn the WebAssembly parts as you go. Michael Droettboom Michael Droettboom There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib's display on top of Web APIs (HTML5 Canvas, etc.) This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide's list of issues for additional ideas. About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.
ReSpec ReSpec is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ years of development, it's heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec's code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec's UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor's better. JavaScript, HTML, CSS. Marcos Caceres Marcos Caceres ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the list of issues you could work on. It's a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student.
Ship Public Suffix List (PSL) over Remote Settings The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.

Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL. The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file)

JavaScript and some Python basics Mathieu Leplatre Mathieu Leplatre https://bugzilla.mozilla.org/show_bug.cgi?id=1083971
Support AdBlock Plus-style ad blocklists As of today, Gecko and GeckoView support ad blocking using a custom JSON format for blocklists and entitylists. The current blocklist format lacks regex pattern matching and the ability to block only images, scripts, or other specific resources from a page. The Fenix project would like first party support for the industry-standard blocklists used by other ad blockers, so we can benefit from the work of community-updated blocklists with our own custom ad blocking solution. C++? Colin Lee Seeking a mentor https://bugzilla.mozilla.org/show_bug.cgi?id=1519197
bugbug A platform for machine learning projects applied on Bugzilla, VCS and other software development data. Python Marco Castelluccio (FIRST_NAME@mozilla.com) Marco Castelluccio (FIRST_NAME@mozilla.com) The project will involve one or more of:

i) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug, and so on);

ii) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks);

iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.

Make the Firefox WebAuthn Soft Token a Real Thing The Web Authentication Soft Token provides second-factor login support without needing a Security Key dongle. It would be very usable if the Soft Token were a) synchronized across an account using Sync, b) could be controlled via a Web Extension, and perhaps c) had some UI. If these things were true, most people could get quality authentication support without buying another device. C++, Javascript, Basic cryptography J.C. Jones J.C. Jones https://wiki.mozilla.org/Security/CryptoEngineering#Web_Authentication
Improve 3rd party deployment experience of Pontoon Pontoon is Mozilla's localization tool, used by hundreds of contributors and critical to shipping Firefox, mozilla.org, and many other Mozilla products to as many users as possible, all around the world.


This year, we would like to improve the experience for third-party installations of Pontoon.

Django, Python, documentation writing. Matjaž Horvat (Mozilla) Matjaž Horvat (Mozilla) While used internally at Mozilla, Pontoon is a general purpose TMS with good support for popular localization file formats, ready to localize a variety of open source projects, apps or websites.


Deployment itself is documented and straightforward, but the first step that follows (setting up projects for localization) isn't. We've identified some of the post-deployment issues in bug 1497572:


Your task will be to address these issues and implement other ideas you may have.

WebSocket Monitor The project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualization data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.). JavaScript/React Jan Odvarko Jan Odvarko This project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualizing data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.).
Helpful crash reporter The crash reporter only allows users to send crash reports but in some cases it might help the user diagnose the crash and solve it on his/her own C++, Javascript Gabriele Svelto Gabriele Svelto There's a few things that could be implemented:
  • A quick test of the memory owned by the crashed process (such as those in memtest86+) might catch faulty memory, a common cause for crashes
  • The crash reporter client might try and validate Firefox files which can sometimes become corrupted (usually because of hardware issues). If they are it can prompt the user to re-install Firefox
  • Many crashes are caused by buggy graphics drivers, while we blacklist the most egregious offenders we can't cover them all. The crash reporter might identify a faulty driver (if a bug for it has already been filed) and point the user to up-to-date drivers
  • For crashes caused by known bugs it should be possible to point the user to the bug filed on bugzilla
Debugger Inline Variable Preview When the Firefox DevTools debugger is paused, users can hover over variables to get a useful tooltip that details the variable's value at that time. While this popup is very informative, one valuable enhancement would be displaying relevant contextual variables values alongside the variable inline, alleviating the need for tooltips and allowing the user to more quickly get the information they need. The applicant will work alongside the Debugger's team to implement this feature based on UX mockups and be given space to share and implement ideas of their own. Javascript David Walsh David Walsh
GitHub Checks Support Improvements Taskcluster currently supports reporting results to the GitHub Checks API, but only reports success or failure. Let's add support for showing annotations - snippets of log output, more detailed results, images, and so on. We can even add support for additional "actions" on the task, such as re-running with debugging enabled. Server-side JS Dustin Mitchell Irene Storozhko, Dustin Mitchell
Support GitHub Logins in Taskcluster Taskcluster currently supports logging in with Auth0, the Mozilla login system. We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution. This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account. Server-side JS Dustin Mitchell Irene Storozhko, Dustin Mitchell
..your next idea here!