Skip to content
This repository has been archived by the owner on Feb 5, 2020. It is now read-only.

Project: Elixir

tmbb edited this page Feb 25, 2019 · 64 revisions
  • Website:
  • Responsible: José Valim, Eric Meadows-Jönsson
  • If you have any questions, send an e-mail to beam-community AT googlegroups DOT com

Ideas are listed in no particular order. Students providing their own ideas are also welcome!

Idea #1: Two-Factor Authentication for Hex

Implement Two-Factor Authentication for package publishing.

Expected results: 2FA implementation for (server), Hex (client), possibly rebar3 (via hex_core)

Knowledge prerequisites: Elixir, Erlang (hex_core)

Possible Mentors: Eric Meadows-Jönsson, Wojtek Mach

Idea #2: Package vulnerability disclosure for Hex

Add the ability to report vulnerabilities in Hex packages via a form on the website. A group of trusted moderators will be notified that will either accept or reject the report, if accepted the package owners will be notified. After the fix is released, or after a deadline passes, a security advisory will be posted for the package. A good proposal would describe what other features could be part of the project.

Expected results: A website form to report vulnerabilities and an interface for the moderators to triage reports and post security advisories.

Knowledge prerequisites: Elixir

Possible Mentors: Eric Meadows-Jönsson

Idea #3: Make BEAM debugger work for Elixir

This Erlang debugger bug has been around for years - it is possible to debug Elixir code but requires a workaround and the GUI doesn't really understand it very well. It would be great for developer UX if the visual debugger worked seamlessly with Elixir code.

Expected results: Make the debugger work

Knowledge prerequisites: Elixir, Erlang, wxWidgets

Possible Mentors: Bryan Hunt

Idea #4: Dead code detection - generate code coverage information for a running system

The Erlang tool cover can be used to generate code coverage information. Several projects have used this tool in order to generate code coverage information for tests, e.g alfert/coverex and parroty/excoveralls.

Expected results: A tool, library, or mix task by which the user could run and use their system in a normal manner - perhaps subjecting it to a series of integration tests, manual testing, or even put it into production. Then, perhaps a couple of days later, issue a command, and receive a detailed report of unused code.

Knowledge prerequisites: Elixir / mix / cover

Possible Mentors: Bryan Hunt

Idea #5: Extend Makeup (the syntax highlighter used by ExDoc) with support for new languages

ExDoc supports syntax highlighting thanks to the Makeup package. The way to add support for new language is to write new lexers (one lexer per language). Currently the only supported language is Elixir.

The goal of this idea is to implement lexers with support for new languages. The suggested languages are:

  • Erlang (partial lexer already exists)
  • HTML
  • Javascript
  • CSS
  • LFE (Lisp Flavoured Erlang)

Other languages may be added. Implementing lexers is relatively time-intensive, and someone working full time for one or two months can probably make impressive progress.

Expected results:

  1. Be able to use ExDoc to document projects written in other BEAM languages (e.g. Erlang and LFE). This is now possible as the BEAM provides a standard documentation chunk where language compilers can dump documentation information
  2. Make it easy to document projects that deal with the web, by supporting syntax highlighting of the following languages: HTML, Javascript, CSS, HTML+EEx

Knowledge prerequisites: Elixir

Mentors: Tiago Barroso (primary mentor), José Valim (backup mentor)