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.
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 concept exercises must have an analyzer. 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.
See the list of open analyzer issues.
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 ~30-60 min for writing the analyzer.
- What is an analyzer?
- How to write an analyzer?
- Analyzer recipes
- Open analyzer issues
- Example PR adding an analyzer for the pacman-rules exercise
- Currently implemented analyzers
- Elixir's automated comments
Browse all the open issues in all the Elixir track repositories and choose something that sounds interesting! If an issue is tagged with "help wanted", that means it's well suited for all contributors interested in helping out. Issues without this label are meant for the regular track maintainers.
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.
There are no open issues for this type of task, but it can still be worked on.
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 .