Add-ons/Outreachy2020
This is the FAQ for the addons.mozilla.org (AMO) engineering team's proposed Outreachy projects for 2020.
Contents
What is Outreachy, and who is eligible to apply?
See the Outreachy website to learn more about this program and to check your eligibility.
What projects have you proposed?
Our team has proposed 3 projects.
- AMO Homepage Curation Tool
- AMO Theme Generator
- Migrate Extension Workshop
Based on applicant interest and the quality of applications, only one project will move forward.
How do I get started contributing to these projects?
- Get onboarded and set up your development environment! Note: you don't need to fill out the code contributor survey.
- For the AMO Homepage Curation Tool and AMO Theme Generator projects, we'd like to see contributions to issues tagged `contrib: good first bug` or `contrib: welcome` on the addons frontend or addons-server repositories. We will also consider contributions made to the extensionworkshop, linter, or web-ext repositories as well.
- For the Extension Workshop, we would like to see contributions to issues tagged `contrib: good first bug` or `contrib: welcome` on the extensionworkshop repository. We will also consider contributions made to made to the addons frontend, addons-server, linter, or web-ext repositories as well.
- Note that for Extension Workshop, we are specifically looking for applicants who can propose a way to improve performance of Extension Workshop.
The application says I need to work with a mentor to develop a project timeline. How do I do that?
We've listed information about each project's milestones below. You should use this information together with your own calendar to create a timeline for your application.
Migrate Extension Workshop
The first two weeks of the internship will be spent planning the migration from Jekyll to Eleventy by (1) evaluating the currently used Jekyll plugins and finding solutions to replace their features in the Eleventy-based project, and (2) reviewing the current layouts/templates in order to simplify them (and hopefully improve overall performance). The intern should work with their mentors to finalize a plan (milestone 1).
With a solid plan in hand, the intern will spend up to two weeks creating a Proof of Concept with the minimal Eleventy configuration and required plugins (cf. (1)) (milestone 2). Once we are all confident enough, the actual migration will be performed in the main repository. This will take several weeks to complete (up to 6 weeks). Milestone 3 is complete once we have the new website deployed in -dev.
The rest of the internship will be dedicated to stabilizing the website, integrating new tools (to detect broken links for instance), writing test cases and maybe new features (Milestone 4). Of course this timeline may vary depending on the intern, the mentors, and unforeseeable circumstances.
AMO Homepage Curation Tool
During the first two weeks, the intern will be onboarded and work with the mentor to set expectations for the internship. The remainder of the internship will be focused on adding features to the AMO home page admin tool. We expect that the intern will focus on developing one feature at a time. Because it can be difficult to estimate how long it may take to complete a feature, we are not setting hard deadlines for feature implementation during the internship period.
By the end of the internship, we hope the intern will have shipped to production two main features and one minor feature:
- The ability to reorder or change the modules below the hero area on the AMO homepage. These are shelves that will appear below the secondary hero. These shelves can be for collections, categories, or a set of predefined shelves for extensions and themes based on query data (such as Recommended Extensions, popular, trending)
- The ability to upload hero area images for the primary hero.
- Update the admin tool to use thumbnails for images. (Minor issue.)
AMO Theme Generator
The initial 2* weeks should be spent analyzing how the existing theme generator works and fits into the overall site, and identifying other projects that also generate themes (e.g. Firefox Color, but not limited to it) to get ideas about what new features can be added. There should be a consideration of what features can be likely implemented in the time available, and some stretch goals. The intern should work with their mentors to finalize a plan. Milestone 1.
Once the plan is ready work should start on the first feature you decide to work on (e.g. Random colors, or expanding the UI elements rendered in the preview, etc). Where possible changes should be landed frequently - every few days - and where the change is large, turned off behind a feature flag. Milestone 2 is the first feature being ready - 2/3* weeks. With the first feature ready, and any initial problems behind you, the remainder of the features should be implemented. Milestone 3 would be all planned features implemented - 5/6* weeks. If you have time, the stretch goals can be worked on too.
Milestone 4 will be “launching” the new tool by enabling any features that are still turned off, and writing a blog post on https://blog.mozilla.org/addons/ to publicise the changes. The remainder of the internship will be for fixing any follow-up bugs.
- Any timescales are suggested - you can plan to spend more time on a milestone. And timescales may shift mid-project.
What if I have questions?
Ask in the public add-ons room on Matrix.