Community:SummerOfCode18:Brainstorming: Difference between revisions
(Add servo project) |
m (url formatting) |
||
Line 58: | Line 58: | ||
| [https://github.com/servo/servo/ Servo] is a web rendering engine written in Rust. One specific module contains a huge amount of code that is expensive to compile all at once. This project is intended to explore ways of splitting it into separate modules to achieve better build performance without breaking the complex set of interdependencies that exist in the code. | | [https://github.com/servo/servo/ Servo] is a web rendering engine written in Rust. One specific module contains a huge amount of code that is expensive to compile all at once. This project is intended to explore ways of splitting it into separate modules to achieve better build performance without breaking the complex set of interdependencies that exist in the code. | ||
| Candidates should be familiar with Rust, in particular using it in projects made of multiple crates and relying on features like traits and associated types. | | Candidates should be familiar with Rust, in particular using it in projects made of multiple crates and relying on features like traits and associated types. | ||
| [ | | [https://mozillians.org/en-US/u/jdm/ Josh Matthews] (Mozilla) | ||
| [ | | [https://mozillians.org/en-US/u/jdm/ Josh Matthews] (Mozilla) | ||
| [Full project description page](https://github.com/servo/servo/wiki/Prototype-ways-of-splitting-the-script-crate) | | [Full project description page](https://github.com/servo/servo/wiki/Prototype-ways-of-splitting-the-script-crate) | ||
|- | |- |
Revision as of 18:49, 17 January 2018
Mozilla community members - submit proposals here for 2018 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.) Our application for summer of 2018 goes into Google on January 23rd, so get those project ideas in quickly.
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 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!
Here is the template for adding project proposals. Feel free to add new proposal to existing general categories, or add new categories as appropriate.
General category or project name
Title | Details | Skills Needed | Reporter | Mentor(s) | Comments |
---|---|---|---|---|---|
Title of your proposal | A few sentences describing the project. | Languages or skills needed | Project submitter's info | Project mentor's info | Anything else people might need to know about this submission. |
ReSpec | ReSpec is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 5+ 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. | Languages or skills needed: JavaScript, HTML, CSS. | Marcos Caceres (Mozilla) | Marcos Caceres (Mozilla) | 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. |
D3D11 backend for gfx-rs HAL | gfx-rs is a graphics abstraction library written in Rust and currently used for prototyping and investigation of Vulkan Portability and WebGPU by Mozilla. The Hardware Abstraction Layer (HAL) of gfx-rs currently supports Vulkan, D3D12, Metal, and OpenGL. We want it to be powering WebRender for Firefox Quantum and Servo, and since WebRender currently runs on D3D11 (through Angle), we need to provide a native D3D11 backend. The implementation can be based off the existing D3D11 backend of gfx-rs pre-HAL, and the main challenge is porting the code, optimizing, and testing it. | Candidates should be familiar with Rust as well as low-level graphics development. Not having D3D11-specific experience is acceptable, given the willingness to learn it and a properly setup Windows development environment. | Dzmitry Malyshau (Mozilla) | Dzmitry Malyshau (Mozilla) | gfx-rs is one of the foundational projects in Rust gamedev/graphics, with rich history and wide range of users. We have an active community that encourages learning and curiosity in how graphics works down to the hardware. This is not a Mozilla project, but it may become a key component in Firefox Quantum for the ability to run natively on different platforms, while utilizing the fine-grained control of the graphics/compute workloads exposed by the low-level APIs. |
Servo: Prototype ways of splitting up the script crate | Servo is a web rendering engine written in Rust. One specific module contains a huge amount of code that is expensive to compile all at once. This project is intended to explore ways of splitting it into separate modules to achieve better build performance without breaking the complex set of interdependencies that exist in the code. | Candidates should be familiar with Rust, in particular using it in projects made of multiple crates and relying on features like traits and associated types. | Josh Matthews (Mozilla) | Josh Matthews (Mozilla) | [Full project description page](https://github.com/servo/servo/wiki/Prototype-ways-of-splitting-the-script-crate) |
Another proposal, etc. |