Outreachy: Difference between revisions

912 bytes added ,  13 September 2016
m
m (→‎Make WebExtension Development More Awesome: add mentor link, fix bullets)
Line 16: Line 16:
* Mentor: [https://mozillians.org/en-US/u/kumar/ Kumar McMillan] (kumar on IRC)
* Mentor: [https://mozillians.org/en-US/u/kumar/ Kumar McMillan] (kumar on IRC)


The WebExtension API lets anyone extend and customize their web browser, such as blocking ads on every website they visit. This is an exciting time for the API because it’s now possible to write a single extension that works in both Firefox, Chrome, Opera, and soon IE. At Mozilla we provide several tools and resources to make developing extensions fun and easy but we’d like to make this development experience even better.
[https://developer.mozilla.org/en-US/Add-ons/WebExtensions WebExtensions] let anyone extend and customize their web browser, such as blocking ads on every website they visit. This is an exciting time for the API because it’s now possible to write a single extension that works in both Firefox, [https://developer.chrome.com/extensions Chrome], [https://dev.opera.com/extensions/ Opera], and soon IE. At Mozilla we provide several tools and resources to make developing extensions fun and easy but we’d like to make this development experience even better.


The participant would improve the productivity of WebExtension developers in the following ways. Most of these tasks involve changing the web-ext command line tool but others may involve writing documentation or example code.
The participant would improve the productivity of WebExtension developers in the following ways. Most of these tasks involve changing the [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext web-ext] command line tool but others may involve writing documentation or example code.


* Utilize common web developer tools when building extensions
* Utilize common web developer tools when building extensions
** Craft examples that show how to use ES6 imports and other features that typically require code transpilation with babel or rollup
** Craft examples that show how to use [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import ES6 imports] and other features that typically require code transpilation with [http://babeljs.io/ babel] or [http://rollupjs.org/ rollup]
* Automatically keep the web-ext tool up to date to avoid bugs
* Automatically keep the web-ext tool up to date to avoid bugs
** Alert the developer if their version of web-ext is out of date
** Alert the developer if their version of web-ext is out of date
* Offer extension “linting” in code editors
* Offer extension “linting” in code editors
** Integrate web-ext's existing lint checking feature into popular editors such as Atom, Vim, and Emacs
** Integrate web-ext's existing [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext#Checking_for_code_lint lint checking feature] into popular editors such as [https://atom.io/ Atom], [http://www.vim.org/ Vim], and [https://www.gnu.org/software/emacs/ Emacs]
* Add a new web-ext command that lays out a directory structure for an extension
* Add a new web-ext command that lays out a directory structure for an extension
** This command would automatically generate a manifest.json file and other common files to help the developer get started on a new extension
** This command would automatically generate a manifest.json file and other common files to help the developer get started on a new extension
Line 35: Line 35:
Desired technical skills:
Desired technical skills:
* Intermediate experience with JavaScript, preferably with some ES6 experience
* Intermediate experience with JavaScript, preferably with some ES6 experience
* Familiarity with the command line environment for NodeJS development
* Familiarity with the command line environment for [https://nodejs.org/en/ NodeJS] development
* Ability to communicate in English, primarily in written form
* Ability to communicate in English, primarily in written form


How to familiarize yourself with the project:
How to familiarize yourself with the project:
* Try out the web-ext tool and file a bug if you find one
* Try out the [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext web-ext] tool and file a bug if you find one
* Look through WebExtension examples and try them out with web-ext run
* Look through [https://github.com/mdn/webextensions-examples WebExtension examples] and try them out with [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext#Testing_out_an_extension web-ext run]
* Search for good first bugs in the web-ext repository and submit a patch
* Search for [https://github.com/mozilla/web-ext/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+bug%22 good first bugs] in the web-ext repository and submit a patch


====Build a Library of Inclusion Best Practices and Case Studies====
====Build a Library of Inclusion Best Practices and Case Studies====
Confirmed users
324

edits