So you want to help out with the Elixir track on Exercism? That's awesome! 💜
There are plenty of tasks that you can help with. Below you will find a list of tasks with which the Elixir track needs your help, sorted by importance in descending order (most important first).
If you have any questions, if you're unsure where to start or you're stuck, do not hesitate to ask for help in our #maintaining-elixir Slack channel.
Check open issues and PRs in this repository tagged with the concept-exercise label to see which concepts need a new exercise or an improvement.
You can read through existing concepts and concept exercises, and suggest improvements. Even a fixed typo or a grammar error will be highly appreciated!
To prepare for this task, make sure to read the documentation about concept exercises. They are different from the exercises you already know from Exercism.
Creating a new exercise doesn't need to be done all at once. We would suggest starting with a story and an example solution. Once you have that, you can open a draft PR to get early feedback.
Everyone that has interest in the Elixir programming language.
One-time ~1h investment to learn how a concept exercise is structured, and then from 15 min for a review/improvement, to ~4h for creating a new exercise.
- Open issues and PRs for Elixir for v3
- V3 Elixir concept exercises
- V3 Elixir concepts
- V3 staging
- The features of v3
- Rationale for v3
- What are concept exercise and how they are structured?
An analyzer is a tool that analyzes the AST of an exercise solution looking for specific features. Based on the results, it can leave helpful comments for the student.
Some v3 concept exercises must have an analyzer. They won't be mentored, and their goal is to teach how to use specific features of the language, so we need to look out for solutions that pass the tests, but don't use the taught features.
You will recognize the exercises that need an analyzer by their design.md
file containing an "analyzer" section that outlines what features of a desired solution need to be checked for
(example)
.
You can choose any exercise that doesn't already have an analyzer and try to implement one.
This task isn't as difficult as it might sound! We already have the tool for this job. It's all about using it to describe the desired features of a good solution. See the example PR in links.
Everyone that has interest in the Elixir programming language. Concept exercises are supposed to have a single desired solution that every student should strive for, and thus writing an analyzer for them is much easier than for practice exercises.
One-time ~30 min investment to get familiar with how existing analyzers are written and the concept exercise in question, and then ~1-2h for writing the analyzer.
- What is an analyzer?
- V3 Elixir concept exercises
- Currently implemented analyzers
- How to write an analyzer?
- Example PR adding an analyzer for the pacman-rules exercise
- Elixir's automated comments
To launch v3, we need a well-working analyzer, test runner, and representer. All of those projects are already created and functional, but they might still need some improvements.
V3 is our current focus, but really don't want to get involved with it at the moment, you can also check if the current Elixir track has open issues or PRs that could benefit from more attention.
People that already have some experience contributing to Exercism. Maintaining a language track requires knowledge of how the Exercism platform works, e.g. every track should adhere to the cross-track problem specifications that define practice exercises. Maintaining the tools (analyzer, tests runner, representer) requires some knowledge of how the Exercism platform works, how the Elixir track is structured, and how the specific tools work.
Anything from 15 minutes to many hours, depending on the specific issue.
- What is track tooling?
- Open issues and PRs in the Elixir analyzer
- Open issues and PRs in the Elixir test runner
- Open issues and PRs in the Elixir representer
- Open issues and PRs in the Elixir track
- Open issues and PRs in all the four repos listed above
- Problem specifications repo
Almost all existing practice exercises could use an analyzer. It would decrease the work load of the mentors.
People that already have some experience mentoring the specific Elixir exercise. Writing an analyzer well requires anticipating a lot of different approaches to the same exercise.
One-time ~30 min investment to get familiar with how existing analyzers are written, and then at least a few hours to think through all possible approaches to the exercise .
- What is an analyzer?
- Currently implemented analyzers
- How to write an analyzer?
- Two-fer analyzer
- Elixir's automated comments
- General Exercism docs
There are still a few practice exercises on the platform that the Elixir track hasn't implemented yet. You can find one in the problems specification repo and port it to Elixir.
People that already have some experience maintaining the Elixir track.
A few hours.